Windows 11 & Office 2021 Excel 2021

データ検索ならXLOOKUP関数で縦横に検索(IFERROR関数は不要)

投稿日:2022年9月10日 更新日:

Excel2021とMicrosoft 365 のExcelでは、[XLOOKUP(エックスルックアップ)関数]が使用できます。

これは、VLOOKUP(ブイルックアップ)関数の進化版です。VLOOKUP関数では、検索値が見つからない場合のエラー対策として、IFERROR関数と組み合わせていましたが、XLOOKUP関数では、その必要はありません。

IFERROR関数と組み合わせなくても、検索値が見つからない場合に戻す値は引数[見つからない場合]で指定できます。

そして、VLOOKUP関数では、検索値は表の左(1列目)でなければいけませんが、XLOOKUP関数ではその必要はありません。

XLOOKUP関数の引数ダイアログボックス

XLOOKUP関数が使用できるかどうかを確認

XLOOKUP関数は、Excel2021とMicrosoft 365 のExcelで使用できます。

使用できるかを確認するには、[数式]タブの[関数ライブラリ]グループにある[検索/行列]をクリックして、[XLOOKUP] が表示されるかを確認します。

XLOOKUP(検索値,検索範囲,戻り範囲,見つからない場合,一致モード,検索モード)

範囲または配列で一致の検索を行い、2つめの範囲または配列から対応する項目を返します。既定では、完全一致が使用されます。

[数式]タブの[関数ライブラリ]グループにある[検索/行列]-[XLOOKUP]

または、数式バーに[=x]と入力して、関数候補の一覧に[XLOOKUP]と表示されれば使用できる環境です。

Microsoft 365のExcelで表示されなければ、アップデートしてみてください。

数式バーに[=x]と入力した時の関数候補一覧

XLOOKUP関数の構文

[関数の引数]ダイアログボックスを表示してXLOOKUP関数について確認してみます。

数式バーに[=XLOOKUP]まで入力した後、キーボードから[Ctrl]+[A]、または[Shift]+[F3]を押すと表示できます。

数式ばー[=XLOOKUP]

キーボード[Shift]+[F3]

XLOOKUPの[関数の引数]ダイアログボックスが表示されます。

引数が多くて面倒くさそうに見えますが、必須項目は上から[検索値][検索範囲][戻り範囲]の3つです。

XLOOKUPの[関数の引数]ダイアログボックス

下へスクロールすると、もう1個[検索モード]というのが現れます。

[キャンセル]ボタンをクリックすると、[関数の引数]ダイアログボックスも数式バーに入力した[=XLOOKUP]も消えます。

XLOOKUPの[関数の引数]ダイアログボックスを下へスクロール

必須項目は上から3つです。

[検索値]を[検索範囲]から探して[戻り範囲]の値を返します。

  • 検索値:検索する値を指定します。省略すると検索範囲に空白のセルを返します。
  • 検索範囲:検索する1列、または1行の範囲を指定します。
  • 戻り範囲:[検索値]で見つかった場合に戻す値の範囲を指定します。[検索範囲]に1列を指定した場合は[検索範囲]と同じ行数を指定します。[検索範囲]に1行を指定した場合は[検索範囲]と同じ列数を指定します。
  • 見つからない場合:[検索値]が見つからない場合に返す値を指定します。省略すると、エラー[#N/A]が返されます。
  • 一致モード:一致の種類を指定します。
  • 検索モード:検索の向きを指定します。
一致モード
0 完全一致(既定です。)
-1 完全一致 見つからない場合は次の小さい項目
1 完全一致 見つからない場合は次の大きい項目
2 ワイルドカード文字との一致
検索モード
1 先頭から検索(既定です。)
-1 末尾から検索
2 昇順で並べ替えられた検索範囲をバイナリ検索(並べ替えられていない場合は無効な結果が返されます。)
-2 降順で並べ替えられた検索範囲をバイナリ検索(並べ替えられていない場合は無効な結果が返されます。)

以下は、Microsoftの解説ページです。

業務効率を大幅アップ! Excel XLOOKUP 関数の使い方早わかり解説 - Microsoft for business(Microsoft)

XLOOKUP 関数(Microsoft)

XLOOKUP関数でVLOOKUP関数の近似値検索結果を得るには

VLOOKUP関数の近似値検索に該当する検索をXLOOKUP関数で行います。

以下の記事では、VLOOKUP関数で近似値検索を行っています。

参照範囲から検索値以下の一番近い値を求める方法(VLOOKUP関数)

通し番号を印刷した展示会の案内状があります。 その案内状をどの企業へ配布したか、また誰が招待したかが分かるように作成した管理表があります。 ...

続きを見る

ここでは、上記記事で使用した同じ表を使って解説します。

通し番号を印刷した展示会の案内状があります。

その案内状をどの企業へ配布したか、また誰が招待したかが分かるように作成した管理表があります。

配布した案内状が少なければ、案内状の番号を目で追って探せますが、管理表が膨大になると探すのも一苦労です。

案内状管理台帳

管理表の横に以下のような検索ボックスと戻り値を表示する枠を準備します。

[番号入力]のセル[F3]に[111]と入力しておきます。セル[G3]にXLOOKUP関数を入力していきます。

[数式]タブの[関数ライブラリ]グループから[検索/行列]-[XLOOKUP]をクリックして[関数の引数]ダイアログボックスを表示します。

または、数式バーに[=XLOOKUP]まで入力した後、キーボードから[Ctrl]+[A]を押して[関数の引数]ダイアログボックスを表示します。

そして、以下のように入力します。

XLOOKUPの[関数の引数]ダイアログボックスで引数を入力

=XLOOKUP(F3,A3:A22,C3:C22,,-1)

引数の[一致モード]を[-1]にすると、検索値が見つからない場合は次に小さい項目が返されるので、VLOOKUP関数の近似値検索と同じ結果を得ることができます。

XLOOKUP関数を入力した結果

引数[見つからない場合]については、指定していません。

指定すると、[番号入力]のセル[F3]が空白の場合、戻り範囲の最後のセルが表示されてしまいます。

XLOOKUP関数の引数[見つからない場合]は、[一致モード]で[完全一致:0]にはとても便利ですが、こういう場合は当てはまりません。

[一致モード]が[1]では、検索値が見つからない場合は次に大きい項目が返されますので、この表の場合は空白になります。

検索値セルが空白の場合のXLOOKUP関数の結果

検索値のセル[F3]が空白の場合に対処するのであれば、IF関数を使用します。

=IF(F3="","番号未入力",XLOOKUP(F3,A3:A22,C3:C22,,-1))

IF関数とXLOOKUP関数の入れ子

参考VLOOKUP関数では、検索値が空白の場合は、エラー[#N/A]となるので、IFERROR関数が使用できますが、XLOOKUP関数ではエラーとはなりませんので、IFERROR関数では対応できません。

配布担当者も求める

セル[H3]に配布担当者も表示したいと思います。こういう場合、XLOOKUP関数はとても便利です。

セル[G3]の[戻り範囲]を修正するだけです。

XLOOKUP関数の戻り範囲を修正

=IF(F3="","番号未入力",XLOOKUP(F3,A3:A22,C3:D22,,-1))

XLOOKUP関数の戻り範囲を修正した結果

セル[H3]には、自動的に数式が入力されます。これをスピルと呼びます。数式を入力した以外のセルを[ゴースト]といいます。

ゴーストのセルでは、数式を編集したり削除はできません。

数式を編集、または削除する場合は、スピル範囲先頭のセルで行います。ここでは、セル[G3]になります。

XLOOKUP関数のゴースト

VLOOKUP関数の場合

VLOOKUP関数で同じようにするには、以下のようになります。VLOOKUPの場合、引数[検索方法]の既定値が[TRUE](近似値)なので、省略できます。

=VLOOKUP(F3,A3:D22,3)

VLOOKUPのほうが簡単そうに見えますが、そんなことはありません。

VLOOKUP関数で近似値検索をする場合は、検索値の列を昇順で並べる必要があります。

配布担当者のセル[H3]にも結果を表示するには、セル[G3]の数式をコピーしたりし、再度、数式を入力しなければなりません。

数式をコピーするためにセル[G3]の数式に複合参照を使用したりします。

以下の記事で記しています。

数式をコピーして列番号を修正(配布担当者)

XLOOKUP関数の完全一致検索

配布担当者名で検索して、配布先会社を求められるようにします。

XLOOKUP関数の完全一致を使用します。また、検索列は左端(1列目)にする必要はありません。

セル[K3]に以下のように入力します。引数[一致モード]は、既定が[完全一致:0]なので省略可能です。

VLOOKUP関数では、検索値が見つからない場合エラー[#N/A]が表示されますので、回避するためには、IFEEROR関数を使用しなければなりません。

XLOOKUP関数では、引数[見つからない場合]で指定できるので、IFERROR関数は必要ありません。

ただし、省略すると、エラー[#N/A]が表示されます。

[XLOOKUP関数]ダイアログボックスの引数入力[一致モード]は空白

=XLOOKUP(J3,D3:D22,C3:C22,"該当者なし")

XLOOKUP関数の結果

検索値セル[J3]に入力した値に一致するものがない場合は、引数[見つからない場合]で指定した文字列が表示されます。

検索値セルに入力した値に一致するものがない場合の結果

セル[J3]が空白であっても[該当者なし]と表示されます。必要であれば、IF関数を組み合わせてください。

検索値セルが空白の場合の結果

これもスピルを利用して番号を求めることができます。範囲を変更するだけです。

セル[K2] からセル[M2]を表の並びと同じに[番号from][番号to][配布先会社]と修正します。

そして、セル[K3]のXLOOKUP関数の[戻り範囲]を修正します。

=XLOOKUP(J3,D3:D22,A3:C22,"該当者なし")

XLOOKUP関数の戻り値を修正

セル[L3]とセル[M3]は、スピル範囲のゴーストです。

XLOOKUP関数の戻り範囲を修正した結果

検索値セル[J3]に入力した値に一致するものがない場合は、セル[K3]にのみ引数[見つからない場合]で指定した文字列が表示されます。

検索値と一致する値がない場合の結果

参考Excel2021とMicrosoft 365のExcelでは、[UNIQUE関数]も使用できます。

入力規則のドロップダウンリストで重複しない値を表示したい場合などは、とても便利です。

もし、ここで解説した記事の担当者に重複した値があれば、セル[I3]にUNIQUE関数を使用して重複しない値を求めることができます。

セル[I3]に以下のように入力すると、自動的に下のセルまでスピルによって入力されます。

=UNIQUE(D3:D22)

担当者の重複しないリストを[UNIQUE関数]で作成

次に、セル[F3]に[データの入力規則]を使って、ドロップダウンリストから選択できるようにします。

[データの入力規則]ダイアログボックスの[設定]タブの[元の値]にスピル演算子を使用して、以下のように入力します。

これでD列の配布担当者に新しい担当者名が追加されたり、削除されても自動的に一意の値が表示されるようになります。

=I3#

[データの入力規則]ダイアログボックスでスピル演算子を使用

UNIQUE関数については、以下の記事で解説しています。

UNIQUE関数で重複しない値をリスト化して表内の該当セルを塗りつぶす

Excel2021とMicrosoft 365のExcelでは、UNIQUE(ユニーク)関数を使用することができます。 UNIQUE関数を使 ...

続きを見る

SORT関数とSORTBY関数もExcel2021とMicrosoft 365のExcelで使用できる新関数です。

SORT関数とSORTBY関数を使い分けて別表に並べ替えた結果を表示する

SORT(ソート)関数とSORTBY(ソートバイ)関数を使用すると、表内のキーを基準に別表に並べ替えた結果を表示できます。 データが変更され ...

続きを見る

検索

ほかの記事も検索してみませんか?

Access / Excel / PowerPoint / Word

関連記事30件

moneytizerPCのみ

Profile

執筆者/はま

-Windows 11 & Office 2021 Excel 2021

Copyright © 2001-2024 初心者のためのOffice講座 All Rights Reserved.

Copyright© 初心者のためのOffice講座 , 2024 AllRights Reserved Powered by AFFINGER4.