• ベストアンサー

エクセルで文字列が一致したら数値を返す方法

いろいろ調べてもわかりませんでした。詳しい方よろしくおねがいします。  初めに価格表を作っておきます。 たとえば 「えんぴつ 100円、ボールペン 120円・・・」    次に発注書を作成します。 その時「えんぴつ」と入力した時点で、自動的に100円と表示させるにはどうすればよいのでしょうか?  えんぴつにコードを振る方法はあったのですが、文字だけで値を返す方法はあるのでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

一例です。 価格表をSheet2のA・B列に作成したとします。 発注書の商品名をA1入力、B1に価格を表示します。 B1に=IF(COUNTIF(Sheet2!A:A,A1),VLOOKUP(A1,Sheet2!A:B,2,FALSE),"")

awajisima4
質問者

お礼

 早速の解答ありがとうございます。 今試してみたら上手くいきました。 シンプルな関数で書けるのですね、自分では気付けませんでした。 とても助かりました。 ありがとうございます。

その他の回答 (2)

回答No.3

No2です 追記でエラー処理をする場合は次の式で・・・ B1=IF(A1<>"",VLOOKUP(A1,{"えんぴつ",100;"ボールペン",120;"消しゴム",150},2),"") というか、問題解決したようですね 失礼しました <(_ _)>

awajisima4
質問者

お礼

関数の意味を解説してもらいありがとうございます。 エクセル自体に不慣れなので、大変助かりました。

回答No.2

>えんぴつにコードを振る方法はあったのですが・・・ では、コードを振らない方法で・・・ VLOOKUP関数の中に配列定数を入れちゃいましょう セルB1=VLOOKUP(A1,{"えんぴつ","100円";"ボールペン","120円";"消しゴム","150円"},2) 「,」←これは列の区切りを意味します 「;」←こちらは行の区切りを意味します 上の式の場合は、「100円」を文字列で返しますので数値として返したい場合はつぎの式を使います B1=VLOOKUP(A1,{"えんぴつ",100;"ボールペン",120;"消しゴム",150},2)

関連するQ&A