- ベストアンサー
【エクセル】セルに数字以外を入力して計算する方法
検索方法もわからず、大変困っています。 条件があるとします。 --------- リンゴ=1 バナナ=0.8 パイン=0.5 --------- A1セルには「果物」A2セルには「金額(数字)」を入力し、 A1×A2の計算が出来るようにしたいです。 例)リンゴ×100円=100、バナナ×100円=50 「果物」は5種類くらいなのですが、「金額」は任意です。 量が多いので、細かい条件式でないほうがいいです。 簡単そうなのですが、スマートなやり方が思いつきません。 よろしくお願いします。
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (8)
- keithin
- ベストアンサー率66% (5278/7941)
参考に名前の定義の応用として,添付図はExcel2007の画面ですが名前の定義の作成(2003までは挿入の名前の定義)を使い,ワークシート上に対応表を用意しないで,直接言葉に数値を当てはめて計算に使うことも出来ます。 上級技としては,名前の定義の参照範囲の欄に計算式を書いて,0.8のような固定の生数字だけでなく,ワークシート上の数値などを元に計算した結果を言葉に当てはめる事も出来ます。
お礼
お礼が消えてしまいました。二重になってたらすみません。 先の回答で名前の登録の段階からキャプチャーでの説明をいただきまして、ありがとうございます。 今回は私の説明不足でして、みかん*A2(セル)ではなく、 A1(セル)*A2(セル)にしたかったのです。 上級テクもありがとうございます。他に使えそうです。
- imogasi
- ベストアンサー率27% (4737/17069)
こういう場合エクセル関数のVLOOKUP関数を使えば仕舞いだよ。VLOOKUP関数は常識の関数。 D1:E3に リンゴ 1 バナナ 0.8 パイン 0.5 のような対応表を作り A1に金額を入れることにして B1果物名を入れて C1に =A1*VLOOKUP(B1,$D$1:$E4,2,FALSE) を入れる。 例 A-E列 100 バナナ 80 リンゴ 1 バナナ 0.8 パイン 0.5 A1セルにデータ未入力 B1に表にない果物名を入れるとエラーになるが、質問者は初心者らしいのでこれ以上は略す。 他回答を参照。後者はISERROR関数で予防線をはる。 Googleででも「エクセル ISERROR関数」で照会して勉強のこと。
お礼
VLOOKUPは、数式がくずれたら入力の人がなおせないと思いまして。。。 回答ありがとうございます。
- keithin
- ベストアンサー率66% (5278/7941)
添付図はExcel2003までの画面ですが,E1:F3を選んで挿入メニューの名前の作成を開始,左端列にチェックを入れてOKしておきます。(Excel2007以降では数式タブの選択範囲から作成) すると,A1セルに =みかん*100 などと式を入れるだけで,みかんやバナナを数値に変えて計算をしてくれます。 計算に使える言葉には若干の言葉遣いの制限があるので,出来ないときはエクセルのヘルプを確認の上,みかんやりんごのように言葉を変えてやりなおしてください。 #名前の作成をしなくても同様の計算できるオプションで「数式で名前を使用する」というのもありますが,イマイチ動作が安定しないので上述手順で明示的に名前定義して使用するのが良いです。
お礼
まとめてお礼いたしました。回答ありがとうございます。
「条件があるとします」の直下の数値は、リンゴの単価を基準とした係数を示しているのですか? つまり、リンゴ単価が100円、120円の場合はパインはそれぞれ50円、60円になるという具合に? リンゴ単価が125円の場合はパインの単純計算単価は62.5円と端数が出ますが、端数処理はしなくてもOKなのかなぁ~?
お礼
説明不足で申し訳ございません。このような質問にも回答していただき、ありがとうございます。
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答No1です。 お示しした式 =IF(COUNTIF(F:F,A1)=0,"",VLOOKUP(A1,F:G,2,FALSE)*A2) の意味はもしもF列にA1に入力した果物の名前がない場合にはからのセルに、そうでない場合にはF列でA1に入力した果物の名前のある行でG列に記載されている条件の数値を取り出し、それにA2セルの値を掛けなさいという意味になります。 F列やG列を使って何種類もの果物について条件の値を入力しておくことで、計算を行うことができます。
お礼
>入力した果物の名前がない場合 これありがたいですね。 回答ありがとうございます。
- gyouda1114
- ベストアンサー率37% (499/1320)
果物の数が少なければIF関数で A列に果物名 B1に =IF(A1="りんご",1,IF(A1="バナナ",0.8,IF(A1="パイン",0.5,"")))*100 下方にオートフィル。 果物の数が多い場合は、対応表を作りVLOOKUP関数で
お礼
対応表をつくらなくてもできるんですねー。ありがとうございます。
- hosu1009
- ベストアンサー率11% (9/78)
上記の条件だと バナナ×100円=80 ではないですか? こういう場合、項目に単価と個数、(必要であれば仕入価格)というものが必要になります。 計算は、単価*個数*(%、割合、仕入)=小計 の様に... 仮に列Aを品名、列Bを単価、列Cを個数、列Dを仕入掛率とします。 それぞれ A2=みかん B2=100 C2=2 D2=0.8 E2 のセルにはfx=(B2*C2*D2)を指定。 結果E2には、160の答えが表示されます。 結論から、文字(果物)と数字は計算する事はできません。 仮に計算を可能にするには、 Aの列に文字が入っていればその文字列を比較し、バナナなら0.8に置き換えて計算する様に式を書けば できなくはないです。 計算するには、どの情報が必要なのかと言う事を、まず最初に洗い出してから 取り組むと、考え方が楽になります。
お礼
バナナ80円でした。すみません。 回答ありがとうございました。
- KURUMITO
- ベストアンサー率42% (1835/4283)
例えばF1セルから下方に果物の名前を、G1セルから下方には1,0.8などの条件となる数値を並べた表がるとします。 A1セルに果物名を、A2セルに金額を入力したときにA1*A2の計算ができるようにするためには次のような式にすればよいでしょう。 =IF(COUNTIF(F:F,A1)=0,"",VLOOKUP(A1,F:G,2,FALSE)*A2)
お礼
早急にご返答ありがとうございました
お礼
まさにこれです!名前定義とセルでの計算式です。本当にありがとうございます!! とってもシンプルな計算式になりました。