![見出し画像](https://assets.st-note.com/production/uploads/images/74335442/rectangle_large_type_2_a9e8c6f26e57a79724aa499693227283.png?width=1200)
EXCELの便利な新関数 "XLOOKUP" (初級編)
みなさんこんにちは!アイシーティーリンクの三好です。
IT経験ゼロでこの世界に飛び込んでから早1年が経とうとしています。
今日はExcelの新しい関数"XLOOKUP"について話したいと思います。
Excelの関数と言えば!みんな大好き「VLOOKUP」ですが、実は最新バージョンのエクセルでしか使用できない新しい関数で「XLOOKUP」というのがあるのをご存じでしょうか!
※Office365もしくはExcel2021バージョンでのみで使用できます。
遅ればせながら、私は最近知ってびっくりしました。
業界の人からしたら、今更!?的な話かもしれませんが、私と同じような人のために小話をしようと思います。
その前に!昔話をひとつ。
私が初めてエクセルと出会ったのは1998年、Thinkpad560Eのマルチメディアモデルというのを購入したとき、Lotas123というソフトが同梱されていたのですが、友人に表計算やワープロソフトはMicrosoftのOfficeというのがいいよ!と教えてもらい別途購入したのがきっかけで知りました。
その時Excelで初めて覚えた関数が"VLOOKUP"でした!
しかも検索値が一致しなかった時の「#N/A」エラー値が気になり、IFとISERRORを組み合わせた(※IFERROR関数もまだありませんでした)関数を作って、関数は組み合わせることも出来るんだ!?という無限の可能性に驚愕したのを思い出します(笑)
![](https://assets.st-note.com/img/1647349337206-2L9YtmjYLn.png?width=1200)
本題に戻りましょう。
そもそも"VLOOKUP"ってどんなことができるのかおさらいしてみましょう。
検索したい値を一覧表の中から見つけ出し、その値と同じ行にある別列の値を表示するというものです。
サンプル図AではF5セルとG5セルに数式が入っています。
![](https://assets.st-note.com/img/1647339824911-3UNmiPoDQP.png?width=1200)
F5セルの"VLOOKUP(E5,A:C,2,FALSE)"は
E5セルにある値と一致した値をA列を上から順に探し出し、一致した行の2列目の値を表示。
G5セルの"VLOOKUP(E5,A:C,3,FALSE)"は
E5セルにある値と一致した値をA列を上から順に探し出し、一致した行の3列目の値を表示。
このように、VLOOKUPでは検索するデータ列は最左側列に配置する必要があり、算出する値はその右側の列に配置する必要がありました。
また、検索値に一致した値が存在しない場合は「#N/A」エラーとなるため、"該当なし"などの表記にする場合は"IFERROR"関数と組み合わせる必要があります。
(例)IFERROR(VLOOKUP(E5,A:C,2,FALSE),"該当なし")
ところが!最新EXCELで使用できる"XLOOKUP"はとても便利!
まず、検索される列は最左列にある必要はありません。
また、完全一致・部分一致も選択可能。
さらに、一致しない場合の値"該当なし"なども設定可能となっていて今までVLOOKUPを実行するために、見せる用の表とVLOOKUP用の表を作成したりしていた手間が一気に解消し、とても便利なのです( ̄ー ̄)!
では、"XLOOKUP"について解説してみましょう。
"XLOOKUP"の構文はこのようになっています。
XLOOKUP(検索値, 検索範囲, 戻り配列, 見つからない場合の値, 一致モード)
"VLOOKUP"との相違点
1.戻り配列が検索範囲の右側でなくてもOK
2.エラーになったときの値を任意で設定可能
※一致モードで"0"以外を指定する必要がある
3.完全一致、部分一致が選択できる
0 - 完全一致。 見つからない場合は、#N/A が返る
-1 - 完全一致。 見つからない場合は、次の小さなアイテムが返る
1 - 完全一致。 見つからない場合は、次の大きなアイテムが返る
2 - *、?、および 〜 が特別な意味を持つワイルドカードの一致
サンプルで使っている数式は次の通り。
XLOOKUP(E5,B:B,A:A,"該当なし",1)
サンプル図B参照(サンプル図B-1とサンプル図B-2は拡大図です)
![](https://assets.st-note.com/img/1647341955633-XMqlPFbea4.png?width=1200)
![](https://assets.st-note.com/img/1647341998100-TsQTVThbHK.png)
![](https://assets.st-note.com/img/1647342071968-d6YG12q1dI.png?width=1200)
F5セルとG5セルに数式を入力しています。
E5セルに検索値を入力しA列~C列の表の中から検索するのですが、先ほどの"VLOOKUP"の時と違い、検索範囲の列がB列(中央列)になっています。
"XLOOKUP"の場合、検索結果を返す列(戻り配列)は検索範囲列から数えて何列目か?という列数指定ではなく、範囲を直接指定する事ができます。
サンプル図B-2のF5セルの式で説明すると、E5セルの検索値をB列の検索範囲で検索し、A列から戻り値を返す、ということが出来るようになりました!
しかも、値が見つからない場合は"該当なし"を返すことも可能です。
"VLOOKUP"では"IFERROR"を組み合わせる必要がありましたが"XLOOKUP"ではこれ一つでできてしまいます。
"IFERROR"ができた時も感動でしたが"XLOOKUP"はその時以上の感動です!
しかも"XLOOKUP"は横の検索にも対応しています。横の検索と言えば今までは"HLOOKUP"を使用していましたが"XLOOKUP"は縦(VLOOKUP)も横(HLOOKUP)もどちらも対応可能となっています。
以上、今回はこの辺にしとこうと思います!
このブログでは、初心者編なので、"XLOOKUP"ってそんなのがあるんだ!と知っていただけるだけでもいいかなと思いライトな感じで書いてみました。
もしもっと詳しく知りたい!と思う方は"XLOOKUP"で検索してみてください。もっと細かく説明してくれていて、私よりもずっと解りやすく解説しているサイトがたくさんあります(笑)
![](https://assets.st-note.com/img/1647349482840-6x9R2CEPFa.png?width=1200)
ぜひ、今後のエクセルライフで活用してみてください!
またこの関数をきっかけにOffice365の導入を検討してみてはいかがでしょうか!?