ID非公開

2020/10/25 18:41

33回答

問題 出発地に地名を入力するとコードが表示されるようにする。

問題 出発地に地名を入力するとコードが表示されるようにする。 出発コードの所に=VLOOKUP(C20,$B$12:$C$16,1,FALSE)と打ったらエラーになってしまいました。。どなたか教えて下さい

画像

Excel26閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

1

B:C,1 とはB列から金沢を探して一列目という意味です。 なので、仮にB列があったとしても返ってくるのは「金沢」です。 VLOOKUPは、最初の列で検索して何列目かなので、検索値の左側を返す関数ではありません。最新バージョンで使える関数を使っていい問題かどうか不明ですので、一般的な方法です。 =INDEX($B$12:$B$16,MATCH(C20,$C$12:$C$17,0)) それと、地名が未入力なら何も表示しないとありますね。 =IF(C20<>"",INDEX($B$12:$B$16,MATCH(C20,$C$12:$C$17,0)),"")

1人がナイス!しています

その他の回答(2件)

2

Vlookupは、参照範囲からのうち、左側から右側にかけて値を探し結果を返すような動きをします。 今回の場合、使用する値とそれにより導き出したい結果の位置関係から Index、Match関数を使うとよいと思います。 =INDEX($B$12:$B$16,MATCH(C20,$C$12:$C$16)) 検索値に対して期待値が右側にあるときは、VlookupでもなんでもOKですが 左側に期待値(今回で言うと、コード)があるときは、INDEX関数が良いです。

2人がナイス!しています

0

ID非公開

2020/10/25 18:56

未確認ですが、範囲と列番号が間違っていませんか? =VLOOKUP(C20,$C$12:$C$16,2,FALSE) かと。 設問に「未入力の場合は空欄に」とあるので、IF関数の入れ子も必要かと思われます。 =IF(C20="","",VLOOKUP(C20,$C$12:$C$16,2,FALSE)) かと。 繰り返しですが、未確認ですので間違っているかもしれません。 参考程度に。