XLOOKUP関数とFILTER関数を組み合わせた検索テクニック

XLOOKUP関数とFILTER関数を組み合わせた検索テクニック IT
  1. 第1章:基本をおさらい!XLOOKUPとFILTER関数って何?
    1. XLOOKUP関数とは?
    2. FILTER関数とは?
    3. それぞれの特徴と違い
    4. まとめ
  2. 第2章:なぜ組み合わせるのか?それぞれの関数の課題と限界
    1. XLOOKUP関数の限界とは?
    2. FILTER関数の限界とは?
    3. 組み合わせることで得られるメリット
    4. 実務シーンでのイメージ
    5. まとめ
  3. 第3章:実践!XLOOKUPとFILTERを使った複数条件検索の例
    1. ケーススタディ:営業部門で売上トップの社員を抽出
    2. ステップ1:FILTERで営業部門を抽出
    3. ステップ2:最大売上値を取得
    4. ステップ3:XLOOKUPで最大売上の社員を検索
    5. もうひとつの応用:入社年が古い社員を検索
    6. まとめ:2つの関数を組み合わせることで実務がスムーズに
  4. 第4章:応用編!動的検索リストで業務を自動化しよう
    1. 動的検索リストとは?
    2. STEP1:FILTERで部署ごとの社員リストを作成
    3. STEP2:部署名を動的にリスト化
    4. STEP3:選択値に応じて情報を表示
    5. XLOOKUPとの組み合わせでピンポイント検索も可能
    6. まとめ:メンテナンスフリーなExcel環境を目指して
  5. 第5章:まとめと明日から使えるポイント3選
    1. 1. FILTER関数で絞り込み → XLOOKUPでピンポイント取得
    2. 2. UNIQUE関数・FILTER関数の組み合わせで動的リストを自動化
    3. 3. 複数条件フィルター+集計であらゆる分析に対応
    4. おわりに:”できる感”を毎日のExcelで感じよう

第1章:基本をおさらい!XLOOKUPとFILTER関数って何?

Excelでのデータ処理は、日々の業務を効率化するうえで欠かせないスキルです。その中でも、XLOOKUP関数とFILTER関数は特に注目されている新しい関数です。ここでは、まずその基本的な使い方と、それぞれがどういった場面で活用できるのかを解説します。

XLOOKUP関数とは?

XLOOKUP関数は、従来のVLOOKUP(VLOOKUP関数)やHLOOKUP関数の後継として登場した、より柔軟で強力な検索関数です。

  • 形式: =XLOOKUP(検索値, 検索範囲, 戻り値範囲, [見つからない場合], [一致モード], [検索モード])
  • ポイント: 縦横どちらでも使え、列の順序を気にせずに検索できます。
  • 戻り値: 検索値に一致するデータを、指定した範囲から返します。

例えば、「社員IDから社員名を検索したい」といった場面で、XLOOKUP("A001", A2:A100, B2:B100)のように使えば、A列の中から”A001″を探してB列の対応する名前を返してくれます。

FILTER関数とは?

FILTER関数は、指定した条件に合致したデータだけを抽出する関数です。大量のデータの中から、特定の条件に合う行のみを表示したいときに便利です。

  • 形式: =FILTER(配列, 条件式, [見つからない場合])
  • ポイント: 複数の条件も使え、データの動的な絞り込みが可能です。
  • 戻り値: 条件に合致したすべての行や列を返します。

例えば、「部門が『営業』の社員だけを表示したい」といった場合は、FILTER(A2:C100, B2:B100="営業") と入力することで、B列が「営業」である行のA~C列のデータが表示されます。

それぞれの特徴と違い

関数 主な用途 特徴
XLOOKUP 特定の値をキーにして1つの値を取り出す VLOOKUPの上位互換。柔軟に検索可能
FILTER 条件に一致した複数のデータを抽出 複数条件や動的絞り込みが得意

まとめ

どちらの関数も一見似たように見えますが、目的によって使い分けが重要です。

  • XLOOKUP:「1つの値を返す」ピンポイント検索に強い
  • FILTER:「条件に合った複数の行を表示」したいときに最適

この章では基本的な使い方を紹介しましたが、次章ではそれぞれの関数が持つ「限界」と、そこで登場する「組み合わせ活用」の考え方に迫ります。

第2章:なぜ組み合わせるのか?それぞれの関数の課題と限界

第1章では、XLOOKUP関数FILTER関数の基本について学びました。しかし実際のビジネスシーンでは、これらの関数の単独使用だけでは対応しきれない局面もしばしば発生します。ここでは、それぞれの関数が持つ「得意・不得意」を振り返りつつ、なぜ組み合わせる意義があるのかを掘り下げていきます。

XLOOKUP関数の限界とは?

XLOOKUP関数は非常にパワフルな検索ツールではあるものの、あくまで「1件の値」をピンポイントで引き出すための関数です。そのため、以下のようなケースでは本来の力を発揮しきれません。

  • 特定の条件に合う「複数のレコード」を取得したいとき
  • 可変的な条件で絞り込みたいとき(たとえば「部署Aもしくは部署B」など)
  • 同じ検索値で複数の行が該当し、すべてを表示したいとき

このような場合、XLOOKUPは最初に該当した値”1件”しか返さないため、十分とは言えないのです。

FILTER関数の限界とは?

一方で、FILTER関数は「指定した条件に合致する複数の行」を動的に抽出できるのが大きな魅力です。ですが、次のような状況では苦戦することがあります。

  • 抽出データから“さらに条件に合う1件”を探したい場合
  • 絞り込んだデータ内で、特定項目の一致する値だけが欲しいとき
  • 条件に合う「1件だけ」を取得したいのに、すべて返ってきてしまう

FILTER関数は、基本的に「配列(複数行・複数列)」を返す設計になっているため、そこから1件を抜き出すには追加処理が必要になります。

組み合わせることで得られるメリット

ではこれらの関数を組み合わせるとどうなるのでしょうか? 実はこの2つはお互いの弱点を補完する関係にあります。以下はその具体的なメリットです。

  1. FILTERで複数条件で絞り込み、XLOOKUPでその中から目的の値を取得
    →「候補の母集団を作る」+「そこから1件を選ぶ」という2段階の検索が実現できます。
  2. XLOOKUPの検索対象にFILTERを使うことで、検索範囲を動的に変更可能
    →例えば「現在アクティブな案件だけを対象に検索」など、業務に応じて柔軟に設計可能。
  3. ユーザー操作を最小限にして、見やすく整った出力を実現
    →余計な行データを出力せず、探したい結果だけをきれいに表示できます。

実務シーンでのイメージ

たとえば、「特定の部署の社員の中から、入社年が最も古い人を検索して表示したい」というシーンを想像してください。

このようなときは、FILTER関数で部署ごとにデータを絞り込み、XLOOKUP関数でその中から「最古の入社年に該当する社員名」を取り出す、という処理が可能になります。

このように、複雑な条件の検索処理や、データの整形表示が求められる現場では、2つの関数の併用が非常にパワフルな手段になります。

まとめ

XLOOKUPとFILTERは、それぞれが強力な機能を持っていますが、単独では足りない部分もあります。組み合わせることで、検索精度・検索柔軟性・可読性の3拍子が揃った関数運用が実現できます。次章では、実際のケースに則って、これらを組み合わせた検索テクニックについて掘り下げていきます。

第3章:実践!XLOOKUPとFILTERを使った複数条件検索の例

ここでは、実務でよくある「複数条件でのデータ検索」をテーマに、FILTER関数とXLOOKUP関数を組み合わせて何ができるのかを具体的に解説していきます。前章で紹介した通り、2つの関数は「母集団を絞る(FILTER)」×「ピンポイントに取得する(XLOOKUP)」という役割分担が可能です。今回はその代表的な使用パターンを、サンプルデータ付きで紹介します。

ケーススタディ:営業部門で売上トップの社員を抽出

以下のような社員データテーブルがあると仮定します:

社員ID 氏名 部署 売上
A001 佐藤翔太 営業 120
A002 加藤優 開発 80
A003 中村葵 営業 150
A004 山本健 営業 130

目的: 「営業」部門に所属する社員の中から、もっとも売上高が高い人物の氏名を表示したい

ステップ1:FILTERで営業部門を抽出

まずは、FILTER関数を使って、部署が「営業」であるレコードだけを抜き出します。

=FILTER(A2:D5, C2:C5="営業")

これにより、A3~D5といったデータから「営業部門」の社員情報のみが抽出されます。

ステップ2:最大売上値を取得

次に、営業部門の中で最も売上が高い数値(最大売上)を判定します。これはMAX関数を使って取得できます。

=MAX(FILTER(D2:D5, C2:C5="営業"))

これによって、営業部門の社員の売上の中で最大値(この例では150)を抽出できます。

ステップ3:XLOOKUPで最大売上の社員を検索

最後に、売上が最大の値に一致する行の「氏名」を取得します。

=XLOOKUP(
  MAX(FILTER(D2:D5, C2:C5="営業")),
  D2:D5,
  B2:B5
)

この式では、

  • MAX(FILTER(…))で最大売上を取得
  • その値をD列の中からXLOOKUPで検索
  • 一致した行のB列(氏名)を返す

結果的に、この式は「営業部門で売上が最も高い社員の名前」として 中村葵 を返します。

もうひとつの応用:入社年が古い社員を検索

部署を絞ったうえで、さらに「最も入社年が古い社員」のデータを取得したい場合も、同様のテクニックで対応可能です。

=XLOOKUP(
  MIN(FILTER(E2:E100, C2:C100="開発")),
  E2:E100,
  B2:B100
)

このように、絞り込んだ結果の中で最小または最大の値を条件として、特定行から情報をピンポイントで引き出す処理が可能になります。

まとめ:2つの関数を組み合わせることで実務がスムーズに

実務では「複数条件でまず絞り込み」「その中から特定のデータのみを取得」というケースが非常に多く発生します。この章で紹介したXLOOKUP × FILTERの組み合わせを理解することで、自分がほしい情報だけをスマートに引き出せるようになり、作業効率が大きく向上します。

次の章では、さらに一歩進んだ応用テクニックとして、動的検索リストの自動更新にチャレンジし、ルーチン業務の自動化を目指します。

第4章:応用編!動的検索リストで業務を自動化しよう

第3章では、XLOOKUP関数とFILTER関数を組み合わせて、複数の条件に基づいた検索処理を実践的に行う方法を紹介しました。ここからはさらに一歩進んで、「動的検索リスト」の自動化に挑戦します。

このテクニックを活用すれば、リストが更新されたとき自動で反映されるドロップダウンリストや、選択内容に応じて情報が切り替わるダッシュボードのような仕組みも作れるようになります。まさに20代の若手ビジネスマンにとって、業務効率を一段押し上げる武器となるテクニックです。

動的検索リストとは?

動的検索リストとは、「データの更新や選択に応じて、自動で内容が変化する場所」のことを指します。

例えば:

  • 部署一覧を自動で取得し、常に最新の部署をドロップダウンで表示
  • 部署を選ぶと、その部署に所属している社員の名前リストが自動的に切り替わる

こうしたリストを作成することで、手動更新の手間を省き、入力ミスの防止にもつながります。

STEP1:FILTERで部署ごとの社員リストを作成

以下のような社員テーブルがあると仮定します。

社員ID 氏名 部署
A001 佐藤翔太 営業
A002 加藤優 開発
A003 田中花 営業
A004 山田蓮 管理

ここで、セルF2に選択された部署名(例:「営業」)を入力し、その部署に該当する社員だけのリストを表示したいとします。

=FILTER(B2:B5, C2:C5=F2)

この式によって、F2に「営業」と入力されると「佐藤翔太」「田中花」が自動的にリスト表示されます。

STEP2:部署名を動的にリスト化

部署名が管理されている列(たとえばC列)から、重複を除いた動的なリストを作成するにはUNIQUE関数を用います:

=UNIQUE(C2:C5)

これにより、「営業」「開発」「管理」が1度ずつ表示されるので、最新の部署一覧として使うことができます。これをドロップダウンに設定すれば、どんな新しい部署が追加されても常に最新の状態に保たれます。

STEP3:選択値に応じて情報を表示

さらに応用として、部署名を選択するだけでその部署の社員全員の氏名とIDを表示する機能も作れます。

=FILTER(A2:B5, C2:C5=F2)

これにより、選択された部署の社員IDと氏名のペアを表示できるため、組織図の作成や配属リストの作成など、さまざまな業務に応用可能です。

XLOOKUPとの組み合わせでピンポイント検索も可能

部門から社員リストを生成し、その中から特定の社員の社員IDだけを表示したい場合、XLOOKUPを組み合わせることで動的に絞り込んだ中でのピンポイント検索が可能になります。

=XLOOKUP("田中花", FILTER(B2:B5, C2:C5=F2), FILTER(A2:A5, C2:C5=F2))

この式は、「営業」という部署を選んでいる状態であれば、「田中花」の社員IDである「A003」を返すようになります。

まとめ:メンテナンスフリーなExcel環境を目指して

このように、XLOOKUPとFILTERだけでも、ドロップダウンによる動的な絞り込みリストから、絞った中でのピンポイントな情報取得まで柔軟に構築できます。

都度手動で検索したり、リストを更新する必要がなくなり、日々のルーチン業務がグッとラクになるのです。

次章では、この記事全体のまとめとして、特に押さえておきたいポイントを3つに絞って解説します。多忙なあなたが明日からすぐに活かせる実践テクニックをお届けします!

第5章:まとめと明日から使えるポイント3選

ここまで、XLOOKUP関数とFILTER関数の基本から応用までをシリーズで紹介してきました。Excelでの検索スキルは、日々の業務効率を大きく左右する武器です。とくに、XLOOKUPとFILTERをうまく組み合わせることで、これまで手作業で行っていたデータ処理が見違えるほどスマートになります。

この最終章では、これまでの内容をギュッと凝縮した形で、20代のビジネスマンが明日からすぐに使えるテクニックを3つご紹介します。さっそく明日からExcelの達人を目指しましょう!

1. FILTER関数で絞り込み → XLOOKUPでピンポイント取得

このパターンは、この記事全体を通じて何度も登場しました。実務でもっとも役立つのが「まず対象を絞ってから、目的の値だけを取得する」という流れです。

たとえば、以下のような構文を覚えておくだけでも十分活用できます:

=XLOOKUP(
  条件値,
  FILTER(検索対象列, 条件),
  FILTER(戻り値列, 条件)
)

これは、動的に絞り込んだリストの中から特定の値を取り出す処理で、データの整形やレポート作成時にとても便利です。

2. UNIQUE関数・FILTER関数の組み合わせで動的リストを自動化

異動や新規部署の追加で変動しやすい「リストデータ」を、UNIQUE()FILTER()を使って動的に管理するテクニックも必須です。

例:

=UNIQUE(FILTER(部署列, 部署列 <> ""))

この関数で部署名のみを抽出し、しかも空白は除外されるため、常に最新のリストを作成できます。これをセルのデータ入力規則に使えば、自動更新型ドロップダウンリストが完成します。

3. 複数条件フィルター+集計であらゆる分析に対応

実務では「営業部門かつ売上が100万円以上」といった、複数条件のデータ抽出が日常茶飯事です。FILTER関数の条件式にANDやORを入れたり、演算子を使うことで柔軟な集計が可能です。

たとえば、以下のような構文も覚えておくと便利です:

=FILTER(A2:D100, (C2:C100="営業")*(D2:D100>=100))

ここで使われている*はAND条件を意味し、C列が「営業」かつD列が100以上のレコードのみ抽出されます。

応用として、その結果の平均や最大値を取るなど、分析にも発展できるので非常に強力です。


おわりに:”できる感”を毎日のExcelで感じよう

この記事で紹介してきたXLOOKUPとFILTERの活用法は、どれも明確な目的がある業務の中で光るテクニックばかりです。今まで苦労していた検索や集計、リスト管理が、わずか数行の数式で一気に効率化できるようになります。

特に20代のビジネスパーソンにとって、Excelを自在に使えることは職場での信頼を勝ち取る大きな武器になります。ぜひ、この記事の内容をひとつでも実践に取り入れて、業務の「時短」と「見える化」を達成していきましょう。

次回はさらに一歩進んだ「スピル関数」や「LET関数」との連携技も紹介予定です。お楽しみに!

コメント

NewsTowerをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む