KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel で2 つ以上の条件に基づいて値を検索するには、どうすればよいですか?

著者Kelly変更日

Excel で特定の情報を検索するのは、特に大規模なデータセットを扱う際によくある要件です。検索機能は個別の値を特定するには便利ですが、2 つ以上の条件を同時に満たす値を抽出したい場合には不十分です。たとえば、特定の日付に販売された特定の果物の売上金額を調べたり、複数の条件すべてを満たすレコードを一括で取得したりするようなケースが該当します。こうした複数条件での検索は、多くのユーザーにとって日常的な課題となっています。本記事では、Excel で2 つ以上の条件に基づいて値を効率的に検索するための実用的で効果的な解決策と、その活用シーン、押さえておきたいポイント、そしてすぐに使える実践的なヒントをご紹介します。


配列数式で2 つ以上の条件に基づいて値を検索する

下図のような果物販売テーブルを扱っていると仮定しましょう。果物の種類、販売日、重量など複数の条件に基づいて販売金額を検索したい場合、Excel の配列数式を使えば、これらの条件をすべて満たす値を効率的に取得できます。この方法は柔軟性に優れ、複数の条件に一致する単一セルの値を検索する必要があるデータセットにも対応可能です。
サンプルデータ

配列数式 1:Excel で2 つ以上の条件に基づいて値を検索する

この配列数式の基本的な構造は次のとおりです。

{=INDEX(配列,MATCH(1,(条件1=検索配列1)*(条件2=検索配列2)…*(条件 n=検索配列 n)、0))}

たとえば、マンゴー2019 年3 月9 日の販売金額を検索したい場合は、空白セルに次の数式を入力し、Ctrl+Shift+Enterを押して配列数式として確定してください。

=INDEX(F3:F22,MATCH(1,(J3=B3:B22)*(J4=C3:C22),0))

数式1を使用して、2つ以上の条件で値を検索

注記:この例では、

  • F3:F22は、値を取得したい「金額」列です。
  • B3:B22は「日付」列、C3:C22は「果物」列です。
  • J3には第1 条件として選択された日付が入力されています。J4には第2 条件として使用される果物の名前が入力されています。
これらの範囲の行数が一致していることをご確認ください。一致していない場合、数式はエラーを返します。

さらに条件を追加するのも簡単です。たとえば、マンゴー9/3/2019に重量が211の販売金額を検索するには、MATCH 関数と検索配列の両方に第3 の条件を次のように追加します。

=INDEX(F3:F22,MATCH(1,(J3=B3:B22)*(J4=C3:C22)*(J5=E3:E22),0))

数式を入力したら、再びCtrl+Shift+Enterを押して確定してください。すると、指定されたすべての条件を満たす販売金額が表示されます。
数式に条件を追加

配列数式 2:Excel で連結を使用して2 つ以上の条件に基づいて値を検索する

別のアプローチとして、特にコンパクトな構造を実現したい場合は、数式内で連結を使うこともできます。基本的な数式は次のとおりです。

=INDEX(配列,MATCH(条件1&条件2…&条件 N, 検索配列1&検索配列2…&検索配列 N,0)、0)

たとえば、重量が242 の9/1/2019の果物の販売金額を取得するには:

=INDEX(F3:F22,MATCH(J3&J4,B3:B22&C3:C22,0),0)

数式2を使用して、2つ以上の条件で値を検索

注記:ここでは、

  • F3:F22は金額の列、B3:B22は日付の列、そしてE3:E22は重量の列です。
  • J3は日付、J5は条件に使う重量値です。
常に、条件と対応する検索配列の順序を一致させてください。そうでないと、数式が誤った結果を返す恐れがあります。

2 つを超える条件を使用する場合は、条件と検索配列を同じ順序で拡張してください。

=INDEX(F3:F22,MATCH(J3&J4&J5,B3:B22&C3:C22&E3:E22,0),0)

前回と同様に、Ctrl+Shift+Enterを押して、正しい結果を取得してください。

数式に条件を追加

これらの配列数式のどちらの方法でも、すべての条件を満たす最初の値を検索できます。ただし、セル範囲のサイズは必ず一致している必要があり、複数の一致値を返すことはできません—最初に見つかった値のみが取得されます。一致する値がない場合、数式は#N/Aエラーを返します。すべての一致結果を表示したい場合は、FILTER 関数の使用をご検討ください(詳細は以下をご参照ください)。

実用的なヒントと注意点:

  • 新しいバージョンのExcel(Microsoft 365、Excel 2021)をご利用の場合は、動的配列数式とFILTER 関数でこの処理をさらに簡単にできます。
  • #N/A エラーを回避して「一致するデータが見つからない」場合にもスマートに対応するには、数式をIFERRORで囲むのがおすすめです。例:=IFERROR(INDEX(F3:F22,MATCH(1,(J3=B3:B22)*(J4=C3:C22),0)),「Not found」)
  • 検索条件セルに余分なスペースやデータ型の不一致がないか、再度ご確認ください。
  • Enter キーを押した後にエラーが表示される場合は、(Excel 2019 以前の場合)Ctrl+Shift+Enterを押して、配列数式として確定してください。


高度なフィルターで2 つ以上の条件に基づいて値を検索する

数式を使うだけでなく、Excel には高度なフィルター機能も備わっており、2 つ以上の条件を満たすすべての行を絞り込んで抽出し、その結果を別の場所に表示できます。この方法は、単一の値を取得するのではなく、指定した条件に一致するすべてのレコードを確認したいときに特に役立ちます。使い方は次のとおりです。

1。「データ」タブに移動し、「並べ替えとフィルター」グループで「高度なフィルター」をクリックして、「高度なフィルター」ダイアログボックスを開きます。
Tabs タブから [詳細設定] 機能をクリック

2。「高度なフィルター」ダイアログボックスで、次の設定を行ってください。
(1) 「別シートにコピー」を「操作」セクションから選択します。
(2) 「リスト範囲」には、フィルター対象のデータ範囲を指定します(この例では)A1:E21)。
(3) 「条件範囲」には、フィルター条件を含む範囲を指定します(ここでは)H1:J2)。このとき、条件範囲のヘッダーがデータテーブルのヘッダーと完全に一致していることを確認してください。
(4) 「コピー先」には、フィルター結果を貼り付けたいセルの先頭を指定します(このケースでは)H9)。
詳細フィルター ダイアログでオプションを設定

3OKをクリックして、フィルター処理を実行します。

条件範囲内のすべての条件を満たす行が、指定した出力先エリアにコピーされます。複数のフィルター条件に一致するすべてのレコードを一度に確認・レポートしたいときに特に便利です。
リストされたすべての条件に一致するフィルターされた行が別の場所にコピーされます

ヒントと注意事項:

  • 条件範囲のヘッダーがメインデータテーブルのものと完全に一致していることをご確認ください。一致していない場合、フィルターが正しく動作しない可能性があります。
  • 高度なフィルターでは、AND 条件と OR 条件の両方をサポートしています。同じ行に条件を配置すると AND(すべての条件が一致する必要あり)となり、別の行に配置すると OR(いずれかの条件が一致すれば OK)となります。
  • 高度なフィルターは、データを変更しても自動では更新されません。データや条件を更新した後は、再度フィルターを適用してください。
  • 条件範囲内の空白セルは、そのフィールドに対して「任意の値に一致」と見なされる場合がありますので、ご注意ください。

数式に基づくソリューションと比べて、高度なフィルターは条件に一致するセルではなく、完全なデータセットを抽出するのに特に適しています。ただし、データを変更した後はフィルターを再実行する必要があるため、リアルタイム性や頻繁な更新が求められる検索には向きません。


代替方法:Excel の FILTER 関数を使用して2 つ以上の条件に基づいて値を検索する

最新バージョンのExcel(Microsoft 365 またはExcel 2021 以降)をご利用の場合、FILTER 関数を使えば、複数の条件を満たすすべての値を動的かつ直感的に抽出できます。データや条件が変更されても結果が自動で更新されるため、非常に便利です。しかも、複雑な配列入力は一切不要!

1。空白セルに次のように入力します:

=FILTER(F3:F22, (B3:B22=J3)*(C3:C22=J4))

この数式について:

  • F3:F22は金額が入力されている列です。
  • B3:B22は日付の列で、J3の日付と照合されます。
  • C3:C22は果物のリストで、J4の果物と照合されます。

Weight 列 (E3:E22)J5の値と一致するという第3 の条件を追加したい場合は、数式を次のように拡張します:

=FILTER(F3:F22, (B3:B22=J3)*(C3:C22=J4)*(E3:E22=J5))

Enter キーを押すと、Excel はすべての条件を満たす Amount を表示します。一致する値がない場合は、この数式が#CALC!エラーを返しますが、IFERROR 関数で簡単に処理できます:

=IFERROR(FILTER(F3:F22, (B3:B22=J3)*(C3:C22=J4)*(E3:E22=J5)), "No match")

メリット:

  • データや条件を変更すると、結果は自動的に更新されます。
  • 数式は従来の配列数式よりも保守・拡張が容易です。
  • 最初に見つかった値にとどまらず、すべての一致結果を返します。
  • 制限事項:Microsoft 365 およびExcel 2021 以降でのみご利用いただけます。旧バージョンではサポートされていません。


関連記事:

最高の Office 業務効率化ツール

🤖KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気の機能検索・ハイライト、または重複をマーキング     空白行を削除する     データを失うことなく列の結合またはセルを     数式を使用しない四捨五入...
スーパー LOOKUP複数条件 VLookup    複数値 VLookup     複数シート間 VLookup      ファジーマッチ....
高度なドロップダウンリストドロップダウンリストをすばやく作成     連動型ドロップダウンリスト     複数選択可能なドロップダウンリスト....
列マネージャー指定した数の列を追加列の移動非表示列の表示状態を切り替え範囲および列の比較...
注目の機能グリッドフォーカス     デザインビュー   強化された数式バー    ワークブックとシートマネージャー     リソースライブラリ(オートテキスト)  日付ピッカー     ワークシートの統合    暗号化/セルの復号化    リストからメール送信     スーパーフィルター      特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。
トップ15 ツールセット12 テキストツールテキストの追加特定の文字を削除、...)   50+チャートタイプガントチャート、...)   40+実用的関数誕生日に基づいて年齢を計算します、...)   19 挿入ツールQR コードを挿入パスから画像を挿入、...)   12 変換ツール単語に変換する為替レートの変換、...)   7 結合と分割ツール高度な行のマージセルの分割、...)さらに多数
Kutools はお好みの言語でご利用いただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+の他の言語をサポートしています!

Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。


Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします

  • Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
  • 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
  • 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!

すべてのKutools アドインが、たった1 つのインストーラーで完結。

Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。

ExcelWordOutlookTabsPowerPoint
  • オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
  • インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
  • 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
  • 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得