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

Excel で複数の条件に基づいて複数の一致値を返す方法(完全ガイド)

著者Xiaoyang変更日

Excel ユーザーは、複数の条件を同時に満たす値を抽出し、そのすべての一致結果を列・行・または1 つのセルにまとめて表示する必要に迫られることがよくあります。このガイドでは、すべてのExcel バージョンで使える方法に加え、Excel 365 およびExcel 2021 で利用可能な新しい FILTER 関数についても詳しく解説します。


複数の条件に基づいて複数の一致値を1 つのセル内に返す

Excel で複数の条件に基づいて複数の一致値を1 つのセルに抽出するのは、よくある課題です。ここでは、その課題を解決する2 つの効率的な方法をご紹介します。

方法 1:TEXTJOIN 関数を使用(Excel365 / 2021,2019)

区切り文字付きで複数の一致値を1 つのセルにまとめるには、TEXTJOIN 関数が最適です。

空白セルに次の数式を入力またはコピーし、Enter キーを押してください(Excel 2021 およびExcel 365 の場合)。Excel 2019 をご利用の場合は、Ctrl + Shift + Enter キーを押して結果を取得します。

=TEXTJOIN(", ", TRUE, IF(($A$2:$A$18=E2)*($B$2:$B$18=F2), $C$2:$C$18, ""))

TEXTJOIN関数を使用して、単一セル内で複数の条件に基づく複数の一致する値を返す

この数式の説明:
  • ($A$2:$A$21=E2)*($B$2:$B$21=F2)この式は、各行が「販売者が E2 と一致する」かつ「月が F2 と一致する」という2 つの条件を同時に満たしているかどうかをチェックします。両方の条件を満たすと結果は1 に、そうでない場合は0 になります。アスタリスク(*)は、両方の条件がともに真である必要があることを意味しています。
  • IF(..., $C$2:$C$21, 「」)の行が条件に一致する場合は商品名を返し、そうでない場合は空白を返します。
  • TEXTJOIN(", ", TRUE, ...)空白でないすべての商品名を1 つのセルに結合し、「,」で区切ります。
 

方法 2:Kutools for Excel を使用

Kutools for Excel は、複雑な数式を一切使わずに、複数の条件に基づいて一致する値を素早く取得・結合できる、強力でシンプルなソリューションを提供します。

Kutools for Excelは300 以上の高度な機能を提供し、複雑な作業を効率化して、創造性と生産性を高めます。AI 機能と統合されたKutools は、正確にタスクを自動化し、データ管理を簡単にします。Kutools for Excel の詳細情報。。。         無料トライアル。。。

Kutools for Excel をインストール後、次の手順に従って操作してください。

  1. 条件に基づいて該当するすべての値を取得するデータ範囲を選択してください。
  2. 次に、「Kutools」>「結合と分割」>「高度な行のマージ」をクリックします(スクリーンショット参照)。
    Kutoolsの[詳細な行の結合]をクリック
  3. 「高度な行のマージ」ダイアログボックスで、以下のオプションを設定してください。
    • 照合条件を含む列見出し(例:販売者と月)を選択し、選択した各列について「プライマリキー」をクリックして検索条件として定義してください。
    • マージ結果を取得したい列見出し(例:商品)をクリックし、「結合」セクションから希望する区切り文字(例:カンマ、スペース、またはカスタム区切り文字)を選択してください。
  4. 最後に、「OK」ボタンをクリックしてください。
    ダイアログボックスでオプションを指定

結果:Kutools は、一意の条件の組み合わせごとに該当するすべての値を即座に1 つのセルに結合します。
Kutoolsを使用して、単一セル内で複数の条件に基づく複数の一致する値を返す


複数の条件に基づいて複数の一致値を列で返す

データセットから複数の条件に基づいて該当するレコードを複数件抽出し、その結果を縦方向の列形式で表示したい場合、Excel にはそのための強力なソリューションがいくつか用意されています。

方法 1:配列数式を使用(すべてのバージョン向け)

次の配列数式を使えば、結果を列方向に縦に返すことができます。

1。空白セルに次の数式をコピーまたは入力してください。

=IFERROR(INDEX($C$2:$C$18, SMALL(IF(($A$2:$A$18=$E$2)*($B$2:$B$18=$F$2), ROW($C$2:$C$18)-ROW($C$2)+1), ROW(1:1))), "")

2。Ctrl + Shift + Enter キーを押して最初の一致結果を取得し、その後、最初の数式セルを選択してフィルハンドルを下方向にドラッグし、空白セルが現れるまでコピーします。これにより、以下のスクリーンショットのようにすべての一致値が表示されます。

配列数式を使用して、列内で複数の条件に基づく複数の一致する値を返す

この数式の説明:
  • $A$2:$A$18=$E$2:セル E2 の値と販売者が一致するかどうかをチェックします。
  • $B$2:$B$18=$F$2:セル F2 の値と一致する月かどうかをチェックします。
  • *は論理積(AND)演算子で、両方の条件が真である必要があります。
  • ROW($C$2:$C$18)-ROW($C$2)+1:各商品に相対的な行番号を割り当てます。
  • SMALL(..., ROW(1:1)):数式を下方向にコピーすると、n 番目に小さい一致行を取得できます。
  • INDEX(...):一致する行から商品名を返します。
  • IFERROR(..., 「」):これ以上一致するものがなければ、空白セルを返します。
 

方法 2:FILTER 関数を使用(Excel365 / 2021)

Excel 365 またはExcel 2021 をご利用なら、FILTER 関数が最適です。そのシンプルで明確な構文と、複雑な配列数式を使わずに結果を動的にスピル表示できる機能により、複数の条件に基づいて複数の結果を簡単に返せます。

以下の数式をコピーまたは入力して空白セルに貼り付け、Enter キーを押すと、複数の条件に基づくすべての一致レコードが返されます。

=FILTER(C2:C18, (A2:A18=E2)*(B2:B18=F2), "No match")

FILTER関数を使用して、列内で複数の条件に基づく複数の一致する値を返す

この数式の説明:
  • FILTER(...)は、両方の条件を満たす C2:C18 のすべての値を返します。
  • (A2:A18=E2)*(B2:B18=F2):販売者と月が一致するかどうかをチェックする論理配列です。
  • 「No match」:一致する値が見つからない場合に表示される任意のメッセージです。

複数の条件に基づいて複数の一致値を行で返す

Excel ユーザーは、複数の条件を満たすデータセットから複数の値を抽出し、それを水平方向(行内)に表示する必要がよくあります。これは、縦方向のスペースが限られている動的レポートやダッシュボード、集計表を作成する際に特に役立ちます。ここでは、そのための2 つの強力な方法をご紹介します。

方法 1:配列数式を使用(すべてのバージョン対応)

従来の配列数式では、INDEX、SMALL、IF、COLUMN 関数を組み合わせて複数の一致する値を抽出できます。列ベースの縦方向抽出とは異なり、ここでは結果を行方向に返すよう数式を調整します。

1。以下の数式をコピーまたは入力し、空白セルに貼り付けてください:

=IFERROR(INDEX($C$2:$C$18, SMALL(IF(($A$2:$A$18=$E$2)*($B$2:$B$18=$F$2), ROW($C$2:$C$18)-ROW($C$2)+1), COLUMN(A1))), "")

2。Ctrl + Shift + Enter キーを押して最初の一致結果を取得し、その後、最初の数式セルを選択して右にドラッグし、すべての結果を表示します。

配列数式を使用して、行内で複数の条件に基づく複数の一致する値を返す

この数式の説明:
  • $A$2:$A$18=$E$2:販売者が一致するかどうかを確認します。
  • $B$2:$B$18=$F$2:月が一致するかどうかをチェックします。
  • *:論理積(AND)—両方の条件が真でなければなりません。
  • ROW($C$2:$C$18)-ROW($C$2)+1:相対的な行番号を生成します。
  • COLUMN(A1):数式を右にコピーした回数に応じて、返す一致値を自動調整します。
  • IFERROR(...):一致する値が見つからなくなっても、エラーを防ぎます。
 

方法 2:FILTER 関数を使用(Excel 365 / 2021)

以下の数式をコピーまたは入力して空白セルに貼り付け、Enter キーを押すと、すべての一致する値が抽出されて行内に並びます。スクリーンショットをご参照ください:

=TRANSPOSE(FILTER(C2:C18, (A2:A18=E2)*(B2:B18=F2), "No match"))

FILTER関数を使用して、行内で複数の条件に基づく複数の一致する値を返す

この数式の説明:
  • FILTER(...):2 つの条件に基づき、列 C から一致する値を取得します。
  • (A2:A18=E2)*(B2:B18=F2):両方の条件が満たされている必要があります。
  • TRANSPOSE(...):FILTER 関数が返す縦方向の配列を、横方向の配列に変換します。

🔚 結論

Excel では、複数の条件に基づいて複数の一致する値を取得する方法がいくつかあり、結果を列・行・または単一セルのいずれで表示するかによって異なります。

  • Excel 365 またはExcel 2021 をご利用のユーザーには、FILTER 関数が最新で動的かつ洗練されたソリューションを提供し、複雑さを最小限に抑えます。
  • 古いバージョンをご利用の方にとって、配列数式は依然として強力なツールですが、多少の設定と注意が必要です。
  • さらに、結果を1 つのセルに統合したい場合や、コード不要のソリューションをお探しの場合は、TEXTJOIN 関数やKutools for Excel などのサードパーティ製ツールがプロセスを大幅に効率化します。

お使いのExcel バージョンと希望するレイアウトに最も適した方法を選べば、複数条件での検索を効率的かつ正確に処理できるようになります。さらにExcel のヒントやテクニックを知りたい場合は、当社ウェブサイトで数千ものチュートリアルをご提供しており、Excel 習得にお役立ていただけます。


関連記事:

  • 複数の検索値の範囲を1 つのカンマ区切りセルに返す
  • Excel では、VLOOKUP 関数を使ってテーブルから最初に一致した値を取得できますが、場合によってはすべての一致値を抽出し、カンマやダッシュなどの指定した区切り文字で連結して1 つのセルに表示する必要があります(下記スクリーンショット参照)。Excel で複数の一致値をカンマ区切りなどで1 つのセルにまとめて返すには、どうすればよいでしょうか?
  • Google シートで一度に複数の一致値を VLOOKUP して返す
  • Google シートの通常の VLOOKUP 関数を使えば、指定されたデータに一致する最初の値を検索して返すことができます。しかし、場合によっては、以下のスクリーンショットのように、すべての一致する値を VLOOKUP で取得したいこともあるでしょう。Google シートでこのタスクを簡単に実現する良い方法はあるでしょうか?
  • ドロップダウンリストから複数の値を VLOOKUP して返す
  • Excel で、ドロップダウンリストから1 つの項目を選択した際に、その項目に関連するすべての値を一度に表示できるように、複数の対応値を VLOOKUP で取得するにはどうすればよいでしょうか(以下のスクリーンショットを参照)?この記事では、その解決策をステップ・バイ・ステップでご紹介します。
  • Excel で複数の値を縦方向に VLOOKUP して返す
  • 通常、VLOOKUP 関数を使えば最初の一致値を簡単に取得できますが、特定の条件に合致するすべてのレコードを返したい場合もあります。この記事では、すべての一致値を縦方向、横方向、または1 つのセル内に VLOOKUP で取得して表示する方法をご紹介します。
  • Excel で2 つの値の間にある一致データを VLOOKUP して返す
  • Excel では、通常の VLOOKUP 関数を使って指定されたデータに基づいて対応する値を取得できます。しかし、場合によっては、以下のスクリーンショットのように2 つの値の間に該当する一致値を VLOOKUP で検索し、その結果を返したいことがあります。このようなタスクをExcel でどのように処理すればよいでしょうか?

最高の 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 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得