XLOOKUP関数でクロス抽出をする方法をご紹介!XLOOKUP関数にXLOOKUP関数を入れる(ネストする)ことでクロス抽出が可能になります。
簡単なXLOOKUP関数の基礎から学び、応用へ入っていきましょう!
- XLOOKUP関数でクロス抽出したい方
- データの分析や管理の業務を効率化したい方
それではさっそく学んでいきましょう!
XLOOKUP関数とは?
XLOOKUP関数は、Excelの最新バージョンで使える関数です。
この関数は、条件に基づいてデータを上下左右で検索し、値を返すのが特徴です。
XLOOKUP関数の基礎
[]が付いている引数は省略可能です。
VLOOKUP関数との大きな違いは、検索範囲と戻り範囲が分かれていることです。
検索範囲と戻り範囲が分かれることによって、どの方向でも検索することが可能となります。
また、VLOOKUP関数でエラーを表示したくない場合はIFERROR関数を使います。
しかし、XLOOKUP関数の場合は、[見つからない場合]でエラー時の値を指定することができます。
クロス抽出とは?
クロス抽出とは、縦の条件と横の条件で交わる値(セル)を抽出する方法です。
たとえば、以下の表があるとします。
1月 | 2月 | 3月 | |
パンダくん | 10,000 | 20,000 | 30,000 |
キリンくん | 40,000 | 50,000 | 60,000 |
イヌくん | 70,000 | 80,000 | 90,000 |
条件が「パンダ」の「2月」であれば、20,000を抽出。
他の条件で「キリン」の「3月」であれば、60,000を抽出。
このように縦横でクロスする値(セル)を抽出することがクロス抽出です。
どのような場面で使うのか?
クロス抽出は、社員の実績確認や出勤状況、ユーザーの購入履歴、商品の販売履歴など様々な分野で使います。
実務では、「〇月の〇〇さんの売上は~」などで情報を確認する場面が多いですよね。
このような業務の際にクロス抽出は便利です!
XLOOKUP関数でクロス抽出をする方法
XLOOKUP関数を使用してクロス抽出を行う場合、XLOOKUP関数の中にXLOOKUP関数を入れます。
例えば「=XLOOKUP(検索値,検索範囲,XLOOKUP(検索値,検索範囲,戻り範囲))
」のようになります。
XLOOKUP関数でクロス抽出をする具体例
具体例では、とある会社の商品を購入したユーザー(購入者)と1~3月の売り上げが入力されている上記の表を使います。
- 「購入者」と「月」でデータを検索
- ①でクロスしたセルを返す
XLOOKUP関数の中にXLOOKUP関数を入れる式は、
「=XLOOKUP(検索値,検索範囲,XLOOKUP(検索値,検索範囲,戻り範囲))
」でしたね。
上記の式に今回の条件を当てはめると以下のようになります。
「=XLOOKUP(検索する購入者,購入者の一覧元,XLOOKUP(検索する月,月の一覧元,売り上げ範囲))
」
上記を実際の数式にすると。。
=XLOOKUP(A2,A5:A10,XLOOKUP(B2,B4:D4,B5:D10))
- まずはXLOOKUP関数を指定
- 次に検索する購入者はA2になるので、検索値はA2
- 検索値の購入者を探す範囲はA5~A10なので、検索範囲をA5:A10
- 本来は戻り範囲を指定する個所にXLOOKUP関数を入れ込む
- 入れ込んだXLOOKUP関数の検索値をB2で指定
- B2の〇月を探す範囲はB4~D4なので、検索範囲はB4:D4
- 最終的に売上を返したいので、戻り範囲B5:D10で指定
どうでしょうか?皆さんのExcelでもクロス抽出が出来れいれば嬉しいです。
クロス抽出は難しく感じるかもしれませんが、何度か試していくうちに慣れるので量をこなしていきましょう!
実際にXLOOKUP関数を使ってクロス抽出をしよう!と思った方の中には、Excelで「XLOOKUP関数が出てこない」と悩んでいる方もいると思います。
そんな方のためにXLOOKUP関数以外でクロス抽出をする方法を次の章でご紹介します。
XLOOKUP関数が使えない場合のクロス抽出
XLOOKUP関数は古いバージョンだと使えません。。
ただし別の方法でクロス抽出をすることが出来ます。
その方法は「INDEX関数とMATCH関数の組み合わせ」です!
INDEX関数とMATCH関数の組み合わせでクロス抽出
- INDEX関数:指定した配列や範囲内のセル値を取得
- MATCH関数:指定した値と一致する最初の位置を返す
INDEX関数とMATCH関数の具体例
INDEX関数とMATCH関数の具体例でも先ほどの表を使います。
購入者をパンダとして、対象の月は3月とします。この時「売り上げ」で重なる金額をC3に紐づけていきます。
=INDEX(B5:D10,MATCH(A2,A5:A10,0),MATCH(B2,B4:D4,0))
- INDEXの配列で「売り上げ」範囲を指定
- 次にMATCH関数を挿入
- A2のパンダで検索するので、検索値はA2
- パンダがどこにあるか?なので、検索範囲はA5:A10
- 参照の種類は0
- 続いて2個目のMATCH関数を挿入
- 2個目のMATCHの検索値は月を指定するB2
- 2個目の検索範囲は月が入力されているB4:D4
- 2個目の参照も0
これらの手順でクロス抽出をすることが出来ます。
ちなみにXLOOKUP関数など新しい関数を使いたい方には「Microsoft 365」をおすすめします。
- 楽天市場で購入することができる
- ダウンロードして、すぐ使える
- 常に最新のアプリを使える
Microsoft 365は、Excelも使用できますし、WordやPowerPoint、OutlookなどのOfficeアプリケーションもサブスクリプションで常に最新バージョンで使用することが可能です。
さらに、Microsoft 365 Personal(個人プラン:14,900円)やMicrosoft 365 Family(ファミリープラン:21,000円)など、複数のオプションがあります。
そんなMicrosoft 365を楽天市場で購入したい方はこちら。
よくある質問と記事のまとめ
XLOOKUP関数を使用する際のよくある質問をQ&A形式でご紹介します。
また、記事全体のまとめもあるのでチェックしていってください~!
Q&A|よくある質問
「&
」を使うことでXLOOKUP関数でも複数条件を指定できます。XLOOKUP関数と「&」についてはこちらから
XLOOKUP関数にはエラーの場合に返す値を指定することができます。詳しくはこちらから
基本的にはVLOOKUP関数になります。クロス抽出の場合はINDEX+MATCH関数の組み合わせがおすすめです。
記事のまとめ
今回はXLOOKUP関数でクロス抽出をする方法とXLOOKUP関数が使えない場合の代替案をご紹介しました。
縦横でクロスする値を抽出する方法は、さまざまな業務で活躍できるので、この機会にぜひ覚えましょう!
ちなみに個人的にXLOOKUP関数は、Excelの中でもトップクラスに好きな関数です(笑)
他の関連記事もぜひ参考にしてください。