Excelで文字列を数値として認識させる方法

このQ&Aのポイント
  • Excelで数値として認識されない文字列を数値として認識させる方法について解説します。
  • 数値を表す文字列を数値として扱うためには、数値として認識させる関数を使用する必要があります。
  • 自動入力された文字列を数値として集計に反映させる方法についても説明します。
回答を見る
  • ベストアンサー

文字列を数値として認識させる方法

Excelで次のような表を作っています。 項目A 1 項目A 1 項目B 2 項目A 1 項目C 1 このように並んでいる表を集計して、次のようにまとめます。 項目A 3 項目B 2 項目C 1 最初にデータを入力するとき、ほとんどの数値は「1」なので、項目を入力したら数値「1」が自動的に入力できるよう次の関数を使っています。 =IF(ISTEXT(A1),"1","") そして、2以上の数値が必要な場合は、「1」と自動入力されたところに、正しい数値を上書きして入力しています。 このとき、上書きした数値は数値として集計に反映されていますが、自動入力された「1」は文字列と判断されているようで、集計に反映されていません。 自動入力された「1」を数値として認識させるには、どのようにしたらいいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • moon00
  • ベストアンサー率44% (315/712)
回答No.1

=IF(ISTEXT(A1),1,"")でOKです。 "1"としていることで、「文字」だとわざわざ認識させています。

diving_gogo
質問者

お礼

ありがとうございます。 これで思った通りのことが出来ました。

その他の回答 (2)

noname#195146
noname#195146
回答No.3

 間違えた、と思ったらANo.1 moon00様が文字列判定の場合に、正しくて最低限で済む回答をなさっておられる。それでも、己が間違いの訂正だけをば。  すみません、「=IF(ISTEXT(A1),"1","")」では数字扱いされない点が駄目だということを失念していました。  数字扱いにするにはmoon00様が仰るように、文字列の「"1"」ではなく数字の「1」として、「=IF(ISTEXT(A1),1,"")」ですね。もし空白セルに対応するのが0が都合よければ、「=IF(ISTEXT(A1),1,0)」となります。  大変申し訳ありません。m(_ _)m

diving_gogo
質問者

お礼

ありがとうございます。 変に混乱させてしまうような質問で申し訳ありませんでした。

noname#195146
noname#195146
回答No.2

>=IF(ISTEXT(A1),"1","")  これを、=IF(A1="","",1)にするのでは駄目でしょうか。  文字列判定が必要なら、とりあえずB列(=IF(ISTEXT(A1),"1","")が入っている列)の書式設定を「数値」にする手もあります。  ただ、数字を入れると自動入力の「1」と位置はずれてしまうので、書式を「ユーザー設定」にして「0」とし、「位置」を「右詰め」にしておくと、位置が揃います。  もし「それでは都合が悪い」などありましたら、補足欄で仰せつけください。無い知恵絞り直してみます。

関連するQ&A

  • Excel関数  A列の値とC列の値の間であればD列の値が抽出される関数

    いつもお世話になっております。 F1にある数値を入れ、その数値が一覧表の中の範囲にマッチすればその数値を集計表シートのセルG1に反映したいのです。 例えば A B C D E F G 1    1 ~ 1000  70 1200 ? 2  1001 ~ 1500  85 3  1501 ~ 2000  92 というような表があるとします。 F1に「1200」と入力するとG1には「85」と出るようにするにはG1にどのような関数を入れたらいいでしょうか。 必要があれば左の数値と~、右の数値は便宜上3列に分けて入力しています。 宜しくお願い致します。

  • 入力した数値を元にその他の数値を効率よく求める方法

    お世話になります。 Excelの関数について質問させていただきます。 図を見て頂ければ早いかとは思いますが、元の量(A2~A5)を基準に、 現在ある量を入力する事でその他の量が自動で計算できる式を作りたいと思っています。 現時点で試しているのは IF関数を使い、数値の入っているセルを見つける →数値が入っていれば割合を求め数量を出す →数値がなければ次のセルに移動、以下繰り返し 具体的にD2のセルには以下のような計算式が入っています。 IF(ISNUMBER($C$2),$C$2/$A$2*A2,IF(ISNUMBER($C$3),$C$3/$A$3*A2, IF(ISNUMBER($C$4),$C$4/$A$4*A2,IF(ISNUMBER($C$5),$C$5/$A$5*A2, IF(ISNUMBER($C$6),$C$6*B2," "))))) 今は5行しか入っていないので動きますが、実際はもっとある為ネストの制限に引っかかりそうです。 なにより計算式が長くて修正するにも一苦労してしまいます。 ここまで来て行き詰ってしまいました。 既出でしたら申し訳ありません。知恵を貸して下さい。よろしくお願いします。

  • Excelで列の項目を固定して集計するには?

    以下のような集計元の表(1)から、集計表(2)を作成することはできないでしょうか? このとき、集計表の列の項目(a、b、c)は固定したいのです。 (Lotus1-2-3では、dsum関数(と何かの機能)を使うとうまく作成できたような気がするのですが・・・) 集計元の表(1) b 100 c 50 c 200 a 25 b 300 集計表(2) a 25 b 400 c 250  

  • 関数整列で、数値の0は拾われないで計算されるようにしたい。

     初めまして、よろしくお願いします。  以前  エクセルでランダムに入力されていく数値ごとの価格帯別で集計をとれる関数式を知りたいのですが、どのようにすればいいのでしょうか。よろしくお願いします。 例)     A   B    1 102  1 2 106  8 3 110  3 4 102  2 5 105  9 6 103  6 7 105  2 8 102  6 9 111  4 10  11  12  入力されたA列の数値の最小値から最大値までを自動で順に整列させ、入力されたB列の数値を集計する。     A    B 1  102  9 2  103  6 3  104  0 4  105 11 5  106  8 6  107  0 7  108  0 8  109  0 9  110  3 10 111  4 11 12 13  よろしくお願いします。  と言う質問に対して、 ★Sheet2のA1 A1=MIN(Sheet1!A:A) A2=IF(A1="","",IF(MAX(Sheet1!A:A)<A1+1,"",A1+1)) ★A2の式を下にコピー B1=IF(A1="","",SUMIF(Sheet1!A:A,A1,Sheet1!B:B)) ★下にコピー  と言う答えをいただきました。しかしこの関数式ですと、A列整理番号に0が入っていると、0から整理番号がふられてしまいます。何とか0は拾われないで整列させる方法は無いでしょうか。よろしくお願いします。

  • エクセル 一つのセルで数値入力と数式を有効にできませんか?

    エクセル2002を使っています。   A B 1 b 150 2 b 120 3 a ― 4 c 160 A列に入る文字がa以外であればB列に数値入力でき、aであれば”-”が自動的に表示されるようにしたい。 IF関数を使うと-表示は可能です。=IF(A1="a","-","") しかし数値を入力すると関数が消えてしまいます。 両方を有効にする方法はないのでしょうか? どなたかご存知の方、ご教授お願いします。

  • 列に指定文字が合えば合計値を入力

    Excel2013使用で簡略に作成したのですが集計表の文字Aの1、セルC15にリスト表Aの○合計個数2を入力したい、集計表文字A、B、Cそれぞれの行にリスト表○文字合計数を入力したいのですがセルに入れる関数をお解りの方宜しくお願いします。

  • エクセル別表の数値を反映させる関数を教えてください

    エクセルでシフトを作成していますが、 別表1で作った数値を(勤務表)で反映させたいです。 別表1で(A・・・8時間)      (B・・・5時間)      (C・・・3時間) というように定めました。 シートにAと入力した場合、別表1での数値が8時間ですので、5回Aと入力すれば記号を入力する以外の最後のシートに40時間となるように自動で足されていくような関数はどういったものになるのでしょうか? 宜しくお願いいたいます。

  • ISBLANK関数を二段階まで設定するには?

    初めまして。 途中までは出来ているのですが、どうしても分からない関数があった為、質問させて頂きます。 <分かっている設定方法> (1) A1のセルに、B1に入力された数値を反映させる。 (2) C1にも数値が入力されたら、A1のセルにC1の方を優先的に反映させる。 関数 =IF(ISBLANK(C1),B1,C1) ここまでは出来るんです。しかし、さらに次のような設定にしようとすると、どうしても上手く行きません。 <やり方が分からない設定方法> (3)さらにD1に数値が入力されたら、A1のセルにD1の方を優先的に反映させる。 すなわち、A1に反映される優先順位を D1>C1>B1 にする。 色々やっているのですが、どうしても、この関数が上手く書けません。 どのような関数を書けば良いのでしょうか? ちなみに、Excelは2000年バージョンを使っています。

  • 数値が入力されたときだけ計算する方法はありますか

    エクセル2003です。 A1=B1-C1の計算式で  C1には数値が入力されていて B1に後で数値を入力するとき A1に計算結果が-C1とされずに B1に数値が入力されたときだけ 計算する方法はありますか 目的は A5にあるAI:A4の合計欄にB1に数値が入力されていないときの -の数値を反映させたくないのです。

  • Excelで特定の文字のある列の数値を合計する関数

    Excelで、特定の文字列を含む列の数値の合計を、自動で集計してくれる関数はあるでしょうか。 複数シート(シートA、シートB)で構成されるExcelファイルで、シートAにはすべての取扱い商品が記載されています。現在は、シートBに入力されている商品ごとの販売個数の合計をシートB上でsumにより求め、その数値をシートAの該当箇所に、手で入力しています。シートAに記載されている商品が多いため、この手作業を関数で代替したいのです。 ただし、シートBに、次のような条件があります。 シートBの1行目(A1,B1,C1,D1...)には、見出しとして"氏名" "りんご" "バナナ" "いちご"...などがあり、2行目以降は、販売者の名前と、その人が販売した商品の個数が入力されています。掲載人数は40人(行数で41行)ほどです。 ところが、誰も"りんご"を販売していなければ、その列自体がなくなります。シートBには販売された商品しか記載されておらず、たとえばB1は、必ずしも"りんご"ではありません。 シートAからBを参照し、シートBの1行目に、もし"りんご"の文字があれば、そのりんごの列の2行目以降にある販売数の合計を、"バナナ"があれば同じくバナナの販売数の合計を、じかにシートAのそれぞれの合計欄に表示させたいのです。 なお、シートBの行と列を入れ換えたシートB'を作るのは、避けたいと思っています。理由は、販売者の名前でも、全商品の販売個数をシートAにsumif関数で集計していること。また、シートは1週間ごとに、今後30枚程度まで増え、その各週合計もシートAに集計する予定のため、シートは各週1枚だけにしたいのです。 このような条件のもと、Excelの関数で集計する方法があれば、教えてくださいますか。

専門家に質問してみよう