経理実務でこう使う【XLOOKUP関数】を使いこなす方法-応用編-

黄色の王冠アイコンと共に、「画像付き解説」「XLOOKUP応用編」「経理実務での使用例」「XLOOKUP応用編をマスター」という文字が配置されているXLOOKUP応用編の記事のアイキャッチ画像 Uncategorized

今回の記事では、XLOOKUP関数の応用を紹介します。

今回の記事のポイント
  • 省略可能な第4引数~第6引数を使いこなす
     ⇒実例も紹介!
  • VLOOKUP関数に出来ないことをXLOOKUP関数で実現する

XLOOKUPの基本的な使い方はバッチリですか?もし不安な方はコチラの基礎編をチェックしてみてください。
基礎をマスターしてから本記事を読むと、応用テクニックの理解度がグンと高まりますよ!

【もっと業務効率アップ!】省略可能な引数を使いこなそう

セル坊や
セル坊や

基礎編で必須の引数3つも理解した!テーブルも理解した!
これでXLOOKUP関数はマスターだね!

さえまり
さえまり

いえいえ、実は『省略可能な引数』を使いこなせると、エラーを隠したり探し方を工夫したり・・・自由にデータを操ることができて、業務効率がアップしますよ。経理実務での活用例と一緒に見てみましょう!

第4引数:「見つからない場合」はこう使う

見つからない場合とは、検索値が検索範囲になかった場合のこと。
その場合に何をするか、指示を書いてあげましょう。

例えば画像の赤枠のようなエラーが出たことはありませんか?

XLOOKUP関数で検索値がマスタに見つからない場合、デフォルトで表示される「#N/A」エラーの例。
セル坊や
セル坊や

XLOOKUP関数を知っていたら検索値を表に追加すれば良いって分かるけど、何も知らずに使っている人は不安になっちゃうよ。

さえまり
さえまり

そんなときは第4引数「見つからない場合」の出番です。
まずは簡単に、文字を表示してみましょう。

指定の文字を表示して次の作業へ誘導する

=XLOOKUP(検索値,検索範囲,戻り範囲,"社員マスタに追加")
XLOOKUP関数の第4引数「見つからない場合」に、"社員マスタに追加"という文字列を指定した例。検索値がマスタにない場合でも、エラーコードではなく設定したメッセージが表示され、次の作業が明確になる様子を解説している。
セル坊や
セル坊や

これならXLOOKUP関数の中身を知らなくても、次にするべき作業に誘導することができるね。
空白にしたい場合は第四引数を「””」にすれば良さそう!

さえまり
さえまり

第4引数の[見つからない場合]は文字ではなく「別の指示=ほかの関数」を組み込むことも可能です。例を見てみましょう。

IF関数で条件分岐する例:与信限度額を設定する

【想定シーン:与信管理表で顧客の与信限度額を抽出する】
与信管理表を検索してもHITしないということは「新規顧客」ということです。

そんな時は第4引数にIF関数を入れて別の計算結果を表示してみましょう。具体的には、取引種別が「個人」だったら”3万”、「法人」だったら”要検討”と表示してみます。

=XLOOKUP(検索値,検索範囲,戻り範囲,IF(取引種別="個人",30000,"要検討")
XLOOKUP関数の第4引数「見つからない場合」にIF関数を組み込み、マスタ未登録の取引先に対して条件分岐を行う例。取引種別が「個人」なら30,000、「法人」なら"要検討"と表示させる与信管理表の数式構造を解説している。

第5引数:「一致モード」はこう使う

一致モードとは、検索値を探すときに「完全一致」で探すか「近似値」で探すかということです。
※一致モードを省略すると「完全一致」が適用されます。

一致モード

0・・・完全一致
-1・・・完全一致または次に小さい項目
1・・・完全一致または次に大きい項目
2・・・ワイルドカード文字との一致
3・・・正規表現に一致する※Microsoft 365のみ

セル坊や
セル坊や

ワイルドカード文字や正規表現の一致モードは文字の「あいまい検索」ができる機能だよね

さえまり
さえまり

そうです。経理実務ではあまり出番がないので、今回は数字の範囲検索で使える「次に小さい(大きい)項目」の一致モードを紹介します。

「次に小さい(大きい)項目」を使う例:振込手数料を抽出する

【想定シーン:振込手数料を算出する】
振込手数料は金額によって変わるので、完全一致での検索は難しいですよね。

そんな時は第5引数に「-1次に小さい項目」を使って近似値で検索する指示を出しましょう。

=XLOOKUP(検索値,検索範囲,戻り範囲,,-1)
XLOOKUP関数の第5引数に「-1」を指定し、振込金額に応じた手数料を自動抽出する例。手数料マスタにぴったりの金額がない場合でも、次に小さい値(0円や30,000円の閾値)を参照して正しい手数料を判定する仕組みを解説している。

第6引数:「検索モード」はこう使う

検索モードでは、キーワードを検索範囲から探すときに、表の「上から」探すか「下から」探すかを指定することができます。
※検索モードを省略すると「1:先頭から末尾へ」つまり上から検索が適用されます。

検索モード

1・・・先頭から末尾へ検索=上から下へ検索
-1・・・末尾から先頭へ検索=下から上へ検索
2・・・バイナリ検索(昇順で並べ替え)
-2・・・バイナリ検索(降順で並べ替え)

セル坊や
セル坊や

基本は先頭から末尾へ、つまり上から下へ検索で問題ないよね。
バイナリ検索は「大量のデータを高速検索する」モードだね。

さえまり
さえまり

そうです。ただし、データの並びが正確じゃないと間違った答えをはじき出します。
通常の業務では使わなくても問題ないですよ。
今回は「末尾から先頭へ検索」を有効活用する例を紹介します。

末尾から先頭に検索を使う例:出納帳の残高を表示する

【想定シーン:現金出納帳で指定日の残高を表示する】
同じ日付で複数の取引があった場合、現金出納帳の残高は下にあるデータが最新ですよね。
XLOOKUPで上から検索すると最新のデータを取ることができないんです。

そんな時は第6引数に末尾から先頭に検索を設定して、下から検索するように指示を出しましょう。

=XLOOKUP(検索値,検索範囲,戻り範囲,,-1,-1)
XLOOKUP関数の第6引数に「-1」を指定し、現金出納帳から指定した日付の「最新の残高」を抽出する例。同じ日付のデータが複数ある場合、末尾から検索することで一番下の行にある最新データを優先的に取得する仕組みを解説している。
セル坊や
セル坊や

最新の情報は常に表の一番下にある!
これを活かせば「末尾から先頭に検索」を有効に使えそうだね!

さえまり
さえまり

他にもこんな場面で活用できます。
・仕入れ実績から最新の単価を抽出する
・経費精算実績から申請者の最新の精算金額を抽出する
どんどん使っていきましょう。

VLOOKUPにはできない!実務で役立つ3つの活用術

ここからはVLOOKUPではスマートに実現できなかった、XLOOKUPならではの活用術を4つ紹介します

複数項目を一気に抽出する

【想定シーン:振込先情報を抽出する】
4つの項目「銀行名」「支店名」「預金種別」「口座番号」を一つのXLOOKUP関数で一気に抽出してみましょう。

=XLOOKUP(検索値,支払先マスタ[支払先名],支払先名[銀行]:支払先マスタ[口座番号])

戻り範囲を複数列にする」これだけでOKです。

XLOOKUP関数の戻り範囲に複数列([銀行]から[口座番号]まで)を指定し、一度の入力で複数の検索結果を隣接するセルに一括表示させる例。VLOOKUP関数では不可能な「スピル機能」による効率的なデータ抽出を解説している。

複数条件で検索して抽出する

【想定シーン:振込先情報を抽出する】
例えば「取引先の会社名」と「支店名」の両方に合致する、つまり複数条件に合致する振込先情報を抽出したい場合もありますよね。
XLOOKUPでは複数条件に合致する情報の抽出も簡単にできます。

=XLOOKUP(検索値検索値,検索範囲検索範囲,戻り範囲)

検索値と検索範囲をそれぞれ「&」でつなぐだけでOKです。

XLOOKUP関数で複数の検索条件(支払先名と支店名)を「&」で繋ぎ、対応する複数の検索範囲も同様に「&」で繋ぐことで、特定の条件に合致する行を抽出する例。作業列を作らずに複数条件検索を実現するテクニックを解説している。

空白セルを「0」表示させず空白で返す

XLOOKUP関数で「戻り範囲=抽出するセル」が”空欄”だと、”0″という数値が表示されます。

XLOOKUP関数の戻り範囲(インボイス番号)が空欄である場合、検索結果に意図しない「0」が表示されてしまう現象の解説図。
セル坊や
セル坊や

抽出結果が空白だったから、Excelが気をきかせて0(からっぽという意味)を表示させているんだ
Excelは計算ソフトだから0という数字が便利だと思っているのかな。

さえまり
さえまり

そうね。便利な場面もあるけれど、正直よけいなお世話だと思う時も・・・
対策を手軽な順に紹介します。

対策1:計算式に「&””」を追加する

抽出結果を後で計算に使わない場合のテクニックです。
計算式に「&””」を追加すると、結果がすべて文字列になります
すると空っぽという意味の0ではなく、空っぽの文字列つまり空白を表示します

=XLOOKUP(検索値,検索範囲,戻り範囲)&""
XLOOKUP関数の数式の末尾に「&""」を追加することで、戻り値が空欄の場合に表示される「0」を回避し、空白の文字列として表示させるテクニックの解説図。インボイス番号が未入力の取引先に対しても、セルを空白のまま美しく保つ様子を示している。

手軽さNo.1
ただし、抽出結果はSUMなどの計算に使えないので注意!!

対策2:表示形式を変更して見た目だけ整える

抽出結果を計算式に使う場合で見た目を整えるだけなら、表示形式を変更する方法が有効です。
関数に手を加える必要はありません

Excelの「セルの書式設定」のユーザー定義で「G/標準;G/標準;」と入力し、XLOOKUPの結果が0の場合に見た目だけ空白にする方法。数値としての性質を保ったまま、不要な0を表示させないテクニックを解説している。

Excelの表示形式はセミコロン;で区切ることで、左から順に「正の数の時;負の数の時;ゼロの時;文字列の時」の見せ方を指定できます。

抽出結果の見た目は空欄ですが、コピーして別のセルに値貼り付けをすると「0」が表示されます。
つまり、SUMなどの計算に使うことも可能です。

見た目スッキリ!
数式を汚さず、表を美しく保ちたい時に最適!

対策3:LET関数とIF関数と組み合わせて条件分岐させる

LET関数を使うと任意の名前を付けた箱を作ることができます。
その箱に計算結果を入れると、同じ計算式を何度も書かなければいけないような場面で、数式をシンプルにできるということなんです。

今回実現したいことは
「もしもXLOOKUPの結果が”空欄”だったら、”空欄”のまま、”空欄”じゃなかったらXLOOKUPの結果をそのまま表示する」
ということです。

IF関数だけで表現してみましょう。

=IF(XLOOKUP(検索値,検索範囲,戻り範囲)="","",XLOOKUP(検索値,検索範囲,戻り範囲))
セル坊や
セル坊や

長いしゴチャゴチャしてるね・・・。
XLOOKUPの数式を2回も書かなくちゃいけないんだ。

さえまり
さえまり

そこでLET関数の出番!XLOOKUPの結果にLET関数で名前を付けてみましょう!

=LET(結果,XLOOKUP(検索値,検索範囲,戻り範囲),IF(結果="","",結果))
LET関数を使用してXLOOKUPの結果を「結果」という変数に格納し、IF関数でその値が0なら空白、0以外なら結果をそのまま表示させる高度な回避テクニックの解説図。数式の重複を避け、計算の効率化と可読性を両立させる仕組みを「箱」のイラストを用いて視覚化している。
セル坊や
セル坊や

[結果]という名前の箱にXLOOKUPの結果を入れる。
[結果]が空欄⇒空欄を表示する。
[結果]が空欄じゃない⇒[結果]を表示する
前から順番に数式を読めばいいから、分かりやすいね。

さえまり
さえまり

これならXLOOKUPの結果をSUMなどの計算に使うこともできますよ。

関数3つの組み合わせ技!
使いこなせれば最高にスマート!!

VLOOKUPやINDEX&MATCHとの違いは対応能力の高さ

ここまでXLOOKUPについてみてきました。
最後にVLOOKUPやINDEX&MATCHとの違いをまとめます。

比較項目VLOOKUPINDEX & MATCHXLOOKUP
検索方向右方向のみ左右自由左右自由
列挿入への耐性弱い(ズレる)強い(ズレない)強い(ズレない)
数式のシンプルさシンプル複雑(二つの関数を組合せ)極めてシンプル
エラー処理IFERRORが必要IFERRORが必要標準機能で完結
デフォルトの一致近似一致(誤操作の元)指定が必要完全一致(安全・確実)
スピル対応不可不可可能(複数列一括取得)
セル坊や
セル坊や

XLOOKUP関数が便利なことは分かったけど、VLOOKUPやINDEX&MATCHはお役御免ということでいいのかな?

さえまり
さえまり

機能面ではXLOOKUP関数に軍配が上がります。
ですが、VLOOKUPやINDEX&MATCHを使う場面も残っていますよ。

◆Excelのバージョンが古い
XLOOKUP関数はOFFICE2021から使える関数です。それ以前のバージョンでは使えません。

◆周囲がVLOOKUPやINDEX&MATCHをメインで使っている
XLOOKUP関数だと他の人がメンテナンスできないかもしれません。
その場合はXLOOKUP関数についてマニュアルを準備してケアする必要がありますね。

まとめ

今回はXLOOKUP関数を紹介しました。
XLOOKUP関数は「シンプルな数式」で「表の配列に振り回されずに」使うことができる、LOOKUP系の中でも最強の関数です。

XLOOKUP関数を使いこなすことができれば手入力の頻度も減り、作業時間の短縮やミスの削減につながるので、業務効率化にも使える関数です。

ぜひ有効活用してくださいね。

コメント

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