【Excel】他のデータテーブルを参照する – VLOOKUP関数

Excel 基本動作

前回・前々回はCOUNTIF関数とSUMIF関数を紹介しました。過去の内容は以下から参照ください。

あるデータテーブルの値を別のデータテーブルから参照するときに活躍します。 

スポンサーリンク

VLOOKUP関数の使い方 

今回も、前回と同じ以下のリストを使用します。 

2017 年 -2020 年 受 注 明 細 
2940 
270 
1680 
2017 B -10 田 中 
500 
2017 S -11 田 中 
2940 
2017 C -12 田 中 
720 
2018 B -13 田 中 
500 
2018 B -14 田 中 
1000 
2018 C -15 田 中 
270 
2018 S -16 田 中 
1680 
2018 C -17 田 中 
900 
2018 S -18 田 中 
1260 
2018 B -19 田 中 
1000 
2018 S -20 田 中 
840 
2018 C -21 鈴 木 
630 
2019 B -22 鈴 木 
2000 
2019 B -23 鈴 木 
500 
2019 C -24 鈴 木 
360 
2019 S -25 鈴 木 
4200 
2019 C -26 鈴 木 
180 
2019 S -27 鈴 木 
420 
2019 B -28 鈴 木 
1000 
2020 S -29 鈴 木 
2100 
2020 C -30 鈴 木 
270 
2020 B -31 鈴 木 
3750

このリストの販売価格(単価)が空欄になっていて、別シートの料金表に記載の単価を参照するようなケースを想定してください。 

商 品 名 
い 
販 売 価 格 ( 単 価 ) 
250 
420 
90

VLOOKUPの使用方法は以下の通りです。 

=VLOOKUP(検索値, 範囲, 列番号, [検索方法) 

料金表からバナナの料金を参照する場合であれば、 

検索値は”バナナ”、 

範囲は上の表の”B3:C5″、 

列番号は、参照したいデータである単価は設定した範囲(B3:C5)農地の2列目に該当するので、”2” 

検索方法は、近似一致の場合は”True”もしくは”1″、完全一致の場合は”False”もしくは”0″ですが、今回は完全一致なので”0″です。(ほぼ完全一致しか使いません。) 

それを式にすると以下のようになります。 

  • =VLOOKUP(“バナナ”,料金表!B2:C5,2,1) 

“”は文字列をして委する時に必要です。”料金表!B2:C5”というのは、料金表というシートのB2:C5という意味です。 

X 
ノ 
ム 
= V し OOKUP(" バ ナ ナ 料 金 表 旧 2 : C5 ′ 2.1 ) 
2017 年 -2020 年 受 注 明 細 
商 品 
バ ナ ナ 
チ ョ コ レ - ト 
ノ け ナ 
バ ナ ナ 
チ ョ コ レ ー ト 
チ ョ コ レ ー ト 
チ ョ コ レ ー ト 
バ ナ ナ 
チ ョ コ レ ー ト 
チ ョ コ レ ー ト 
ノ け ナ 
チ ョ コ レ ー ト 
ノ け ナ 
チ ョ コ レ ー ト 
チ ョ コ レ ー ト 
チ ョ コ レ - ト 
ノ け ナ 
・ 受 注 年 
・ 受 注 番 号 ・ 担 当 
・ 販 売 価 格 単 価 ・ 販 格 ( 合 価 ) 
2017 日 
201 ノ S ・ 2 
2017 C-3 
201 ノ B ・ 4 
2017 日 - 5 
201 ノ C ・ 5 
2017 7 
2017 C ・ 8 
2017 S-9 
2017 B ・ 10 
2017 S -11 
2017 C ・ 12 
2018 日 -13 
2018 g ・ 14 
2018 015 
2018 S ・ 16 
2018 C -17 
2018 S ・ 18 
2018 B -19 
2018 S ・ 20 
2018 021 
2019 8 ・ 22 
2019 B -23 
2019 C ・ 24 
2019 S 
-25 
2019 C ・ 26 
2019 S 
-27 
2019 日 -28 
2020 S 
-29 
2020 C ・ ヨ 0 
2020 B 
-31 
山 田 
山 田 
山 田 
山 田 
山 田 
山 田 
山 田 
山 田 
山 田 
田 中 
田 中 
田 中 
田 中 
田 中 
田 中 
田 中 
田 中 
田 中 
田 中 
田 中 
鈴 木 
鈴 木 
鈴 木 
鈴 木 
鈴 木 
鈴 木 
鈴 木 
鈴 木 
鈴 木 
鈴 木 
鈴 木 
250 
500 
420 
360 
1250 
750 
540 
2940 
2 ノ 0 
1680 
500 
2940 
720 
500 
1000 
270 
1680 
900 
1260 
1000 
840 
630 
2000 
500 
360 
4200 
180 
420 
1000 
2100 
270 
3 ノ 50

これで、上のように”料金表”シートから、バナナの料金を引っ張ってくることができました。あとはオートフィルを使えば、テーブルの下まで単価が参照されます。 オートフィルについて知りたい方は以下の記事を参照ください。

スポンサーリンク

VLOOKUP関数の注意点 

上記のような使い方で有用なVLOOOKUP関数ですが、注意点があります。それは、参照先のデータテーブルで参照したい値が検索値よりも左にある場合には使用できないということです。 

上の例で言えば、検索値である”バナナ”を使って料金表内のデータを検索するわけですが、バナナから数えて右側何番目の列(今回なら2列目)に参照したいデータがあるか、という指定の方法になっています。そのため、”バナナ”より左側にあるデータは参照できないのです。 

  • =VLOOKUP(検索値, 範囲, 列番号, [検索方法) 
  • =VLOOKUP(“バナナ”,料金表!B2:C5,2,1) 

例えば、仮に料金表が以下の形になっていたら、データを参照できないことになります。 

販 売 価 格 ( 単 価 ) 商 品 名 
250 バ ナ ナ 
420 い ち ご 
90 チ ョ コ レ - ト

これに対する解決策はいくつかあります。最新のExcelの関数であるXLOOKUP関数を使えば右側の列からの参照できますが、サラリーマンの場合使用できるExcelのバージョンが会社のシステム部門に規定されていて、XLOOKUP関数が使えるバージョンがまだリリースされていないケースも多いので、多くの人にとってはXLOOKUP関数はまだ解決策になりません。 

もう一つ、INDEX関数とMATCH関数を組み合わせるという方法もありますが、これは説明するとそれだけで一つの記事になるくらいの内容なので、また次の機会に紹介します。 

まずはVLOOKUP関数で用が足りることが大半だと思うので、VLOOKUP関数から習得しましょう。 

コメント

タイトルとURLをコピーしました