エクセルには表を検索してその行にある別の列の値を取得する関数があります。それがVLOOKUP関数です。
エクセル練習
準備
スマホ版エクセルやブラウザ版エクセルは無料で利用できます。
まずは以下を参照して無料で使えるエクセルを入手してみましょう。
練習データ
練習ファイルは以下より入手できます。
「リンク先を保存する」でダウンロードしましょう。
エクセルファイル:
http://komatter.com/_EXCEL/ex-if.xlsx
VLOOKUPの練習1
A2~C6にあるセルを参照し、iPhone XRの価格をピックアップしましょう。
以下のように表示できればOKです。
「解答」
正解は
↓
↓
↓
↓
↓
↓
↓
「=VLOOKUP("iPhone XR",A2:C6,2,FALSE)」と入れます。
VLOOKUPの練習2
A2~C6にあるセルを参照し、iPhone XRの在庫をピックアップしましょう。
以下のように値を取得できればOKです。
「解答」
正解は
↓
↓
↓
↓
↓
↓
↓
「=VLOOKUP("iPhone XR",A2:C6,3,FALSE)」と入れます。
VLOOKUP関数の説明
Vlookup関数を使うと、指定した範囲内で検索でみつかった行の横にある列のデータをひっぱってくることができます。
- 機能:セルを指定して合致した行にある別の列のデータを参照
- 書き方:VLOOKUP(検索文字、セル範囲、何列目を返すか指定、[検索方法])
- 使用例:例えば以下のようなセルを参照し、「iPhoneX」と合致する行がみつかったら3列目の情報を返す場合「=VLOOKUP("iPhoneX",A1:D6,3)」と記述します。
VLOOKUPの不具合は?
バグ?で違う結果がかえってくる?
下は検索文字が「iPhone」でなく「isPhone」と間違えたのに値が返ってきます。
どうやらVLOOKUP関数は気を利かせて?似ているのをもってっくるようなのです。
これでは意図した結果にならないので困ってしまいます。
こんな時の対策として、4つめの引数としてFALSEを指定します。
すると検索値が完全一致した場合のみ値が返ってくるようになります。
「=VLOOKUP("isPhone8",A1:D6,3)」と書いていたのを「=VLOOKUP("isPhone8",A1:D6,3,FALSE)」のように書くようにしましょう。
#N/A!エラーがでる
VLOOKUPでは、1列目のデータから該当文字を検索します。
VLOOKUPで1列目でデータを探して見つからない場合N/Aエラーが出ます。
意外に盲点なのが数値と文字列とデータが違っている場合です。
セルにはどちらも「100」とあるに、なぜかVLOOKUP関数ではデータが見つからないことがあります。
こような場合、片方は数値なのに片方は文字列として入っている場合には、見た目は一緒でも別のデータとして扱われます。
対策としては、数値をTEXT()関数で文字列としてから検索する...といった対応が必要でしょう。
#REF!エラー
VLOOKUPでは、セル範囲を指定する場合複数行してする必要があります。
「A1:A6」のように参照するとREFエラーとなります。「A1:B6」のように最低でも2行以上指定しましょう。
また、2列だけ指定してて、 「何列目を返すか指定する番号」に3といれると、これも参照エラーとなります。
この場合3列は最低でも指定しておく必要があります。