エクセルには、表を検索してその行にある別の列の値を取得することができます。利用するには「VLOOKUP関数」を使います。
VLOOKUPとは?
Vlookup
「Vlookup」関数を使うと、指定した範囲内で検索でみつかった行にある別の列のデータをひっぱってくることができます。
書き方は
VLOOKUP(検索文字、セル範囲、何列目を返すか指定、[検索方法])
です。
例えば以下のような情報がセルに入力されているとします。
A列で「iPhoneX」と合致する行がみつかったら、3列目の情報を取得するには、「=VLOOKUP("iPhoneX",A1:D6,3)」と記述します。
「iPhoneX」が検索ワード、「A1:D6」が情報を探す対象となるセルの範囲です。
HLOOKUP
VLOOKUPでは縦方向に検索しますが、横方向に検索。検索が一致した場合に、その列の違う行を取得します。
A2~C6のセルが探す範囲です。
2行目で「74800」と合致する列がみつかったら、そこから4行目の情報を取得するには、「=HLOOKUP(74800,A2:C6,4)」と記述します。
VLOOKUP,HLOOKUPの不具合は?
違う結果がかえってくる?
下は検索文字が「iPhone」でなく「isPhone」と間違え検索ワードを使っています。
すると全然関係ないGalaxyの在庫数の値が返ってきました。
VLOOKUP関数は、近似一致といって、検索ワードが完全に一致していない場合でも、似ている値をピックアップするようになっています。
結果として、意図したとおりの動作にならないということが起きます。
これを防ぐには、4つめの引数としてFALSEを指定します。
4つ目のパラメータは、完全一致か近似一致かを指定するものです。Falseならば完全一致で検索をかけます。
完全一致でVLOOKUP,HLOOKUPを使うなら
=VLOOKUP("isPhone8",A1:D6,3)
を、
=VLOOKUP("isPhone8",A1:D6,3,FALSE)
のように書きます。
#N/A!エラーがでる
VLOOKUPでは、1列目のデータから該当文字を検索します。
VLOOKUPで1列目でデータを探して見つからない場合N/Aエラーが出ます。
見た目が一緒なのに検索で合致しないという場合は、数値と文字列...のようにデータが違っている場合です。片方は数値なのに片方は文字列として入っている場合には、見た目は一緒でも別のデータとして扱われます。
対策としては、数値をTEXT()関数を使って文字列扱いにして検索する...といった対応が必要でしょう。
#REF!エラー
VLOOKUPでは、セル範囲を指定する場合複数行してする必要があります。
「A1:A6」のように参照するとREFエラーとなります。
「A1:B6」のように最低でも2行以上指定しましょう。
また、2列だけ指定してて、 「何列目を返すか指定する番号」に3といれると、これも参照エラーとなります。
この場合3列は最低でも指定しておく必要があります。