Excelには、特定の条件に基づいてデータを検索するためのさまざまな関数が用意されています。中でも、VLOOKUP、HLOOKUP、およびXLOOKUP関数は非常に便利です。このブログでは、これらの関数の使い方を具体的な例を用いて説明します。
目次
VLOOKUP関数(Excel 2010以降)
VLOOKUP関数は、指定したキーを垂直(列方向)に検索し、対応するセルの値を返します。
▶ VLOOKUPの式(D8)を、練習ツールで試す
構文
- 検索値: 検索する値
- 範囲: データが含まれる範囲
- 列番号: 戻り値を取得する列番号
- 範囲検索: (オプション)正確一致ならFALSE、近似一致ならTRUE
例
以下の例では、「D-101」という商品番号を持つ商品の価格を検索します:
まず動かしてみよう|この記事のサンプルをその場で試せます
練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。
HLOOKUP関数(Excel 2010以降)
HLOOKUP関数は、指定したキーを水平(行方向)に検索し、対応するセルの値を返します。
▶ HLOOKUPの式(D9)を、練習ツールで試す
構文
- 検索値: 検索する値
- 範囲: データが含まれる範囲
- 行番号: 戻り値を取得する行番号
- 範囲検索: (オプション)正確一致ならFALSE、近似一致ならTRUE
例
以下の例では、「D-101」という商品番号を持つ商品の価格を検索します:
注意確認メモ:元の記事の式 =HLOOKUP("D-101", A2:A5, 3, FALSE) は、実際のExcelでは #N/A エラーになります。HLOOKUPは「表の1行目(上端の行)」を横に探す関数なので、商品番号が縦に並ぶ列(A2:A5)を検索範囲にすると、見つかりません。練習用ファイルと同じ、次の式に直しています。
XLOOKUP関数(Microsoft 365およびExcel 2021)
XLOOKUP関数は、VLOOKUPやHLOOKUPの機能を拡張した新しい関数で、どの方向にも検索が可能です。Microsoft 365やExcel 2021で利用できます。
▶ XLOOKUPの式(D10)を、練習ツールで試す
D10に =XLOOKUP("D-101",A2:A5,D2:D5,"Not found",0,1) を入力。A列で D-101 は4行目 → D列の単価 600
構文
- 検索値: 検索する値
- 検索範囲: 検索範囲
- 戻り値範囲: 戻り値を取得する範囲
- 見つからない場合: (オプション)見つからない場合の値
- 一致条件: (オプション)一致条件
- 検索モード: (オプション)検索モード
例
以下の例では、「D-101」という商品番号を持つ商品の価格を検索します:
MATCH関数(Excel 2010以降)
MATCH関数は、指定した値が範囲内で最初に出現する位置を返します。検索した値の位置を取得する際に使用します。
▶ MATCHの式(D11)を、練習ツールで試す
構文
- 検索値: 検索する値
- 検索範囲: 検索範囲
- 一致の種類: 一致の種類(1:以下、0:完全一致、-1:以上)
例
以下の例では、「プリン」という商品の位置を検索します:
INDEX関数(Excel 2010以降)
INDEX関数は、指定した行番号と列番号に基づいて範囲内のセルの値を返します。MATCH関数と組み合わせることで、特定のデータを取得する際に便利です。
▶ INDEXの式(D12)を、練習ツールで試す
構文
- 範囲: データ範囲
- 行番号: 行番号
- 列番号: (オプション)列番号
例
以下の例では、B2:D5範囲内の3行目、2列目の値を返します:
サンプルデータ
以下に、VLOOKUP、HLOOKUP、XLOOKUP、および関連するMATCH関数とINDEX関数を使用したサンプルデータを提供します。このデータをExcel関数の練習に使用してください。
Excel形式データダウンロード
以下は、Excelデータですので、ダウンロードして練習などに使用してください。
練習用Excelファイル(無料ダウンロード)
この記事の解説で使うExcelデータです。数式と練習データが入っているので、本文の式を同じ表で試せます。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り
表形式
| 行 | 列A | 列B | 列C | 列D |
|---|
| 1 | 商品番号 | 商品名 | カテゴリ | 単価 |
| 2 | B-101 | 和菓子 | 食品 | 300 |
| 3 | B-102 | 洋菓子 | 食品 | 450 |
| 4 | D-101 | プリン | デザート | 600 |
| 5 | D-102 | 杏仁豆腐 | デザート | 160 |
| 6 | 検索結果 | | | |
| 7 | VLOOKUP | | | =VLOOKUP(“D-101”, A2:D5, 4, FALSE) |
| 8 | HLOOKUP | | | =HLOOKUP(“D-101”, A2:A5, 3, FALSE) |
| 9 | XLOOKUP | | | =XLOOKUP(“D-101”, A2:A5, D2:D5, “Not found”, 0, 1) |
| 10 | MATCH | | | =MATCH(“プリン”, B2:B5, 0) |
| 11 | INDEX | | | =INDEX(B2:D5, 3, 2) |
CSV形式
以下は、上記のデータをカンマ区切りで記載したものです。このデータをコピーしてExcelに貼り付けて使用してください。
"商品番号","商品名","カテゴリ","単価"
"B-101","和菓子","食品","300"
"B-102","洋菓子","食品","450"
"D-101","プリン","デザート","600"
"D-102","杏仁豆腐","デザート","160"
"検索結果",,,
"VLOOKUP",,,"=VLOOKUP(""D-101"",A2:D5,4,FALSE)"
"HLOOKUP",,,"=HLOOKUP(""D-101"",A2:A5,3,FALSE)"
"XLOOKUP",,,"=XLOOKUP(""D-101"",A2:A5,D2:D5,""Not found"",0,1)"
"MATCH",,,"=MATCH(""プリン"",B2:B5,0)"
"INDEX",,,"=INDEX(B2:D5,3,2)"
【実機で検証】並んでいない表で、第 4 引数を省くと
商品番号が 300・100・200・400 と小さい順に並んでいない表で、表にない「250」を探しました。
エクセルで並んでいない表のVLOOKUPで第4引数を省くとまちがった値が返りFALSEやXLOOKUPでは#N/Aになった画面
| 式 | 200 を探す | 250 を探す(表にない) |
|---|
=VLOOKUP(値,A2:B5,2)(第 4 引数なし) | ぶどう | ぶどう(まちがい) |
=VLOOKUP(値,A2:B5,2,FALSE) | ぶどう | #N/A |
=XLOOKUP(値,A2:A5,B2:B5) | ぶどう | #N/A |
第 4 引数を省いた VLOOKUP は、表にない 250 でも「ぶどう」を返しました。省くと「近い値を探す」設定になるためで、エラーにならないので気づきにくくなります。VLOOKUP と HLOOKUP は第 4 引数に FALSE を書きます。XLOOKUP は何も書かなくても完全に一致するものだけを探しました。
まとめ
ExcelでVLOOKUP、HLOOKUP、XLOOKUP関数、MATCH関数、およびINDEX関数を使用することで、特定の条件に基づいてデータを効率的に検索し、取得することができます。これらの関数を理解し活用することで、データの分析や管理をより効果的に行うことができます。このブログを参考にして、Excelを最大限に活用してください。
このブログが役に立ちましたら幸いです。さらにサポートが必要なことや質問があれば、お知らせください。Happy Excel-ing!
あわせて読みたい
XLOOKUPの使い方まとめ|VLOOKUPの進化版でデータを抽出する方法
10101|XLOOKUPのデータ抽出方法 練習用Excelファイル(無料ダウンロード)「XLOOKUPのデータ抽出方法」の解説で使うExcelデータです。数式と練習データが入っているの…
あわせて読みたい
XLOOKUP関数の使い方|基本・一致モード・下から検索・複数条件・VLOOKUPとの違い(練習ファイル付き)
XLOOKUP関数は、表から値を探して、対応する値を取り出す関数です。VLOOKUP と違い、探す列と返す列を別々に指定するので、左の列も返せ、列を挿入しても結果がずれませ…
あわせて読みたい
XLOOKUPの複数条件|2つ・3つ以上・OR・行と列の書き方【コピペOK・練習ファイル付き】
XLOOKUP関数で複数条件を指定する方法を解説。&でつなぐ2つ・3つ以上の条件、「〜以上」を含む条件、OR条件、別シート、該当が複数あるときのFILTER、XLOOKUPがない場合のINDEX+MATCHまで。無料サンプル付き。
あわせて読みたい
XLOOKUP関数で別シートから検索・抽出する方法|複数条件の数式と実例
XLOOKUP関数で別シートから値を取得する基本式と、複数条件で検索する方法を解説。サンプルのセル位置・結果を示し、#N/Aや数値と文字列の違い、複数行を取り出す場合の使い分けも確認できます。
あわせて読みたい
XLOOKUPとVLOOKUPで特定の列だけ抽出する方法|在庫検索の例
複数列の表から検索値に一致するデータを指定の列から抽出するなら、XLOOKUP関数やVLOOKUP関数を使う。 XLOOKUP の基本(書き方・一致モード・下から検索・VLOOKUP との…
あわせて読みたい
XLOOKUPで検索した行の複数列をまとめて取り出す方法|VLOOKUP×COLUMNも解説
検索した行の複数列をまとめて取り出すには、XLOOKUPの戻り値範囲を複数列にします。Excel 2019以前では、VLOOKUPとCOLUMN関数の組み合わせで取り出せます。練習用ファイルで確かめられます。
あわせて読みたい
XLOOKUPで離れた複数列をまとめて抽出|VLOOKUP・MATCHとの比較
複数列の表から検索値に一致するデータを、2列目、5列目、7列目…などの離れた複数の列を抽出するときは、XLOOKUP/VLOOKUP関数を使って数式を作成し、その数式をコピー…
あわせて読みたい
どの列を検索対象にしても行を抽出する方法|FILTER・XLOOKUP
検索値に電話番号を入力しても、名前を入力しても、該当するデータを表から抽出したい。そんな時は、検索値があるデータの列を抽出してから、検索値と一致する行のデー…
あわせて読みたい
Excelのクロス抽出|XLOOKUP・INDEX+MATCHで商品×倉庫を検索
Excelのクロス抽出は、行見出しと列見出しが交差するセルを取り出す方法です。商品と倉庫で在庫数を調べる場合などに使います。XLOOKUPの入れ子、またはINDEX+MATCHで求められます。
あわせて読みたい
クロス表の見出しとデータを入れ替えた表を作る方法|XLOOKUP・INDEX・MATCH
クロス表のデータを見出しにした別のクロス表を作成したいときは、XLOOKUP関数の引数[検索範囲]にXLOOKUP関数を組み合わせた数式を作成しよう。 目的 クロス表検索抽…
あわせて読みたい
Excelで日付・期間を検索する方法|XLOOKUP・VLOOKUPの近似一致
指定日が含まれる期間の料金を探すなら、XLOOKUPの一致モードを -1 にします。「指定日と一致する開始日、なければ指定日より前で最も近い開始日」を探す近似一致です。同じ日付の行だけを探す完全一致とは使い分けます。
あわせて読みたい
検索値を含むデータを部分一致で抽出する方法|XLOOKUP・VLOOKUP
検索値が検索対象の列のデータと完全一致ではなく、部分的に一致する場合は、XLOOKUP関数やVLOOKUP関数の引数の[検索値]にワイルドカードを使って抽出しよう。 目的 …
あわせて読みたい
検索値を含むワードで検索して抽出|XLOOKUP・LOOKUPの部分一致
検索値の一部しかない検索対象のデータから、該当データを抽出するなら、XLOOKUP/LOOKUP関数の引数[検索範囲]にFIND関数を使って数式を作成しましょう。 目的 部分一…
あわせて読みたい
XLOOKUPで複数該当をすべて抽出できる?FILTERとの違いと2件目の取得
XLOOKUPは通常、条件に一致する最初の1行を返します。戻り範囲を複数列にしても、同じ条件の全明細を返すわけではありません。複数該当をすべて表示したい場合はFILTER、最後の1件ならXLOOKUPの検索モード-1を使います。 無料Excelサンプル付き。
あわせて読みたい
XLOOKUPで複数シートをまとめて検索する方法|VSTACKでつなぐ・2条件・同じIDがあるとき
複数シートを横断して1件を検索するには、VSTACKで各シートの検索列と戻り列を同じ順番につなぎ、XLOOKUPに渡します。Microsoft 365・Excel 2024向けです。Excel 2021ではVSTACKを使わない入れ子の方法を選びます。 無料Excelサンプル付き。
あわせて読みたい
複数シートから検索して抽出する方法|XLOOKUP・VLOOKUP・IFNA
XLOOKUP関数とINDEX関数はセル参照を抽出できるため、セルに貼り付けた写真や図を検索値で抽出することができる。ただし、数式は名前の参照範囲に入力すること。 目的 …
あわせて読みたい
XLOOKUPで別シート・複数シートから検索する方法|VSTACK・INDIRECT
XLOOKUPで別シートを検索する場合は、検索範囲と戻り範囲にシート名を付けます。複数シートをまとめて探したいときはVSTACK、セルに指定した1枚のシートを探したいときはINDIRECTを組み合わせます。目的に合う方法を選びましょう。
あわせて読みたい
シート名と検索値を入力して別シートのデータを抽出する方法|XLOOKUP・VLOOKUP・INDIRECT
検索するシートをセルの入力で切り替えたいときは、INDIRECT関数でシート名を範囲に変えて、XLOOKUP関数やVLOOKUP関数に渡します。 この記事では、会員IDとシート名を入…
あわせて読みたい
複数のブックからデータを抽出する方法|ブック名と検索値で探す(XLOOKUP・VLOOKUP・SWITCH・CHOOSE)
抽出先のブックだけを開き、ブック名と検索値で検索抽出するなら、SWITCH関数(Excel2016ではCHOOSE関数)で抽出元のブックのセル範囲を切り替えて抽出しよう。 目的 複…
あわせて読みたい
XLOOKUP関数でデータを検索する方法|基本の書き方と使用例
ExcelのXLOOKUP関数は、指定したキーを検索し、対応する値を返すための強力なツールです。従来のVLOOKUP関数やHLOOKUP関数に代わるもので、より柔軟で簡単に使用できる…
あわせて読みたい
VLOOKUP・HLOOKUP・XLOOKUP・MATCH・INDEXの違いと使い分け|検索関数5つの書き方
VLOOKUP・HLOOKUP・XLOOKUP・MATCH・INDEXの違いと使い分けを、同じ商品表で比較して解説。縦に探す・横に探す・位置を返すの違い、HLOOKUPの正しい書き方、書き方の早見。無料サンプル付き。
あわせて読みたい
XLOOKUP関数の使い方|VLOOKUP・HLOOKUPより柔軟な検索
Excelで表形式のデータから特定の値を検索する際、従来のVLOOKUP関数やHLOOKUP関数にはいくつかの制約がありました。そこで登場したのがXLOOKUP関数です。XLOOKUP関数は…
あわせて読みたい
XLOOKUPで複数列をまとめて取得|スピルで商品名・分類・単価を表示
1つの商品IDから商品名・分類・単価をまとめて返すには、XLOOKUPの戻り範囲を複数列にします。数式は左端の1セルに入力し、結果が右へ広がる空間を空けます。同じIDに一致する複数行をすべて返す機能とは異なります。 無料Excelサンプル付き。
あわせて読みたい
XLOOKUPで逆引き検索する方法|検索列より左の値も取り出せる(VLOOKUPとの違い)
XLOOKUPなら、検索する列より左にある値も取り出せる「逆引き」が簡単です。検索範囲と戻り値範囲を別々に指定するため、VLOOKUPの制約を受けません。書き方をVLOOKUPと比べて解説。無料サンプル付き。
あわせて読みたい
XLOOKUPの入れ子を図解|行と列の2条件で交点を検索する方法
XLOOKUPを入れ子にすると、「券種」と「年齢区分」のような縦横2つの見出しから、交点の金額を取り出せます。内側のXLOOKUPで1行を選び、外側のXLOOKUPでその行から1列を選ぶ、という順番で読むと理解しやすくなります。
あわせて読みたい
XLOOKUPで2つの条件を検索|&連結と条件比較の使い分け
XLOOKUPで2条件を指定する方法は、検索値と検索列をそれぞれ&でつなぐ方法と、2つの比較式を掛け合わせる方法があります。文字列を単純連結すると別の組み合わせが同じ値になることがあるため、区切り文字を入れるか条件ごとに比較します。 無料Excelサンプル付き。
あわせて読みたい
XLOOKUPの範囲を自動拡張|テーブル参照・列全体指定の使い方
XLOOKUPの参照範囲をデータ追加に合わせて広げるには、元データをExcelの「テーブル」にし、列名で参照する方法が便利です。A2:A100のような固定範囲では、101行目に追加したデータは検索されません。
あわせて読みたい
XLOOKUPで横方向に検索|年・月の見出しから売上を取得する方法
XLOOKUPは縦の一覧だけでなく、横に並んだ年・月の見出しも検索できます。検索範囲を1行、戻り範囲を対応する1行に指定します。列の位置がそろっていれば、離れた行や見出しより上の行も戻り範囲にできます。 無料Excelサンプル付き。
あわせて読みたい
XLOOKUPで「以上・未満」を検索|一致モード-1・1と境界値の考え方
XLOOKUPで「70以上80未満」のような範囲を検索するには、下限値の表を用意して第5引数の一致モードを -1 にします。入力値以下で最も近い下限が選ばれるため、得点別の評価や金額別のランクを求められます。
あわせて読みたい
XLOOKUPとIFの組み合わせ|未入力・在庫数・複数条件で表示を変える
XLOOKUPとIFを組み合わせると、「未入力なら検索しない」「検索結果の数値で表示を変える」といった処理ができます。IFは条件分岐、XLOOKUPは表から値を探す役割です。複数条件そのものを検索したい場合とは式を分けて考えると分かりやすくなります。
あわせて読みたい
XLOOKUPの部分一致|ワイルドカードで前方・後方・含む検索
XLOOKUPで「名前の一部を含むデータ」を探すには、検索値に * を付け、第5引数の一致モードを 2 にします。前方一致は「山田*」、後方一致は「*子」、途中に含む場合は「*一郎*」です。通常は最初に一致した1件を返します。
あわせて読みたい
XLOOKUP関数の一致モード・検索モード|近似一致・ワイルドカード・下から検索
ExcelのXLOOKUP関数は、VLOOKUP関数の課題を克服し、より柔軟なデータ検索を可能にする強力なツールです。この記事では、XLOOKUP関数の基本的な使い方から、VLOOKUP関数…
コメント