はじめに
Excelを少し使い込んだ際によく使う関数と言えば、表の中からデータを取り出す「VLOOKUP」ではないでしょうか? 同じような検索/行列関数は他にも、HLOOKUPやLOOKUP、INDEX、MATCHなど、さまざまあります。
そこで今回は、検索/行列関数のなかで、VLOOKUP、HLOOKUP、そしてLOOKUPの3つを取り上げ、それぞれの違いや、これらの関数を利用するのに必要不可欠な参照範囲の指定方法について紹介します。
3つの代表的な検索/行列関数の違い
商品コードから商品名を割り出すときなどに使われる検索/行列関数には、以下の3つがあります。ただし、共通して「検索範囲のコード部分を昇順に並べ替えておく」必要があるので注意してください。
VLOOKUP | 一つのコード表を縦方向(Vertical)に検索し、コードが一致する行(データの横の並び)のn列目の値を返す。 |
---|---|
HLOOKUP | 一つのコード表を横方向(Horizontal)に検索し、コードが一致する列(データの縦の並び)のn行目の値を返す。 |
LOOKUP | ベクトル形式においての検索範囲(コード部分)と対応範囲(商品名などの部分)を自由に指定できる(離れていてもOK)。ただし、それらの配列は1行または1列のみ。配列形式はあまり使われていない。 |
コード表は一般的に、1件のデータが行方向にまとまっており(下図参照)、コードは列(縦)方向に並んでいるため、VLOOKUPがよく使われます。逆に、表のコードが行(横)方向に並んでいる場合は、HLOOKUP関数を利用します。ただし、検索対象となるコードの情報は、VLOOKUPの場合は1列目、HLOOKUPの場合は1行目に配置しなければいけません。
コード | 商品名 | 価格 |
---|---|---|
1001 | Access | 24,930 |
1002 | Excel | 24,930 |
1003 | Outlook | 14,490 |
1004 | PowerPoint | 14,490 |
1005 | Word | 14,490 |
コード | 1001 | 1002 | 1003 | 1004 | 1005 |
---|---|---|---|---|---|
商品名 | Access | Excel | Outlook | PowerPoint | Word |
価格 | 24,930 | 24,930 | 14,490 | 14,490 | 14,490 |
一方、LOOKUP関数は、検索範囲(コードが書かれてる範囲)と対応範囲(商品名など)を自由に設定できるので、別にコード部分がどこにあっても構わないわけです。ここが、VLOOKUPやHLOOKUPとの大きな違いです。
商品名 | コード | 価格 |
---|---|---|
Access | 1001 | 24,930 |
Excel | 1002 | 24,930 |
Outlook | 1003 | 14,490 |
PowerPoint | 1004 | 14,490 |
Word | 1005 | 14,490 |
Publisher | 1006 | 20,790 |
InfoPath | 1007 | 26,040 |
Visio Standard | 1008 | 30,240 |
Visio Professional | 1009 | 65,940 |
Project Standard | 1010 | 78,540 |
Project Professional | 1011 | 139,420 |
OneNote | 1012 | 12,390 |
InterConnect | 1013 | 6,930 |
Groove | 1014 | 28,140 |