excel

【Excel】エクセルで3つの条件を満たす値を返す(複数条件・SUMPRODUCT・INDEX・MATCH・IF・ネスト)方法

当サイトでは記事内に広告を含みます

エクセルで複雑なデータを扱う際、複数の条件を同時に満たすデータを抽出したいというケースは非常に多くあります。

たとえば、売上データから「特定の支店」かつ「特定の商品」かつ「特定の期間」という3つの条件をすべて満たす売上金額を取り出したい場合など、実務では頻繁に遭遇する場面でしょう。

単一条件での検索ならVLOOKUP関数で対応できますが、3つ以上の条件を組み合わせるとなると、より高度なテクニックが必要になります。

エクセルには複数条件に対応できる関数がいくつか用意されており、SUMPRODUCT関数、INDEX・MATCH関数の組み合わせ、IF関数のネストなどが代表的な方法です。それぞれに特徴があり、状況に応じて使い分けることで効率的なデータ抽出が実現できます。

本記事では、エクセルで3つの条件を満たす値を返す複数の方法について、具体的な数式例とともに詳しく解説していきます。初心者の方でも実践できるよう、基本から応用まで丁寧に説明していますので、ぜひ参考にしてください。

エクセルで3つの条件を満たす値を返す基本的な方法

それではまず、複数条件で値を検索する代表的なアプローチについて解説していきます。

SUMPRODUCT関数を使う方法

SUMPRODUCT関数は、複数の条件を満たすデータの集計や抽出に非常に強力な関数です。

本来は配列の積の合計を求める関数ですが、条件判定と組み合わせることで複雑な条件検索が可能になります。3つの条件をAND条件(すべて満たす)で指定する場合、各条件を掛け算でつなげば実現できるでしょう。

数式の構造がシンプルで、配列数式の入力操作(Ctrl+Shift+Enter)も不要なため、比較的扱いやすい方法です。

INDEX・MATCH関数の組み合わせ

INDEX関数とMATCH関数を組み合わせる方法も、複数条件検索の定番テクニックでしょう。

MATCH関数で条件に一致する行番号を特定し、INDEX関数でその位置のデータを取り出すという流れになります。複数条件の場合は配列数式として入力する必要がありますが、柔軟性が高く様々な検索パターンに対応できます。

VLOOKUP関数よりも高度な検索が可能で、実務でのデータ分析には欠かせない手法です。

IF関数のネスト(複数条件)

IF関数を入れ子(ネスト)にして複数条件を判定する方法もあります。

この方法は直感的でわかりやすいものの、条件が3つになると数式が長くなりがちです。また、条件の組み合わせによってはIFS関数やAND関数との併用がより効率的な場合もあるでしょう。

状況に応じて適切な関数を選択することが重要です。

SUMPRODUCT関数で複数条件を指定する詳しい手順

続いては、最も汎用性の高いSUMPRODUCT関数による複数条件検索を確認していきます。

SUMPRODUCT関数の基本構文と仕組み

SUMPRODUCT関数の基本的な書式は以下の通りです。

=SUMPRODUCT((条件1の範囲=条件1)*(条件2の範囲=条件2)*(条件3の範囲=条件3)*取得したい値の範囲)

各条件判定の結果はTRUE(1)またはFALSE(0)となり、それらを掛け算することですべての条件を満たす行だけが1になる仕組みです。

最後に取得したい値の範囲を掛けることで、条件に一致する値だけが抽出されます。複数の一致がある場合は合計値が返されるため、単一の値を取得したい場合は条件を工夫する必要があるでしょう。

SUMPRODUCT関数は配列数式の入力操作が不要で、通常のEnterキーだけで確定できるため、初心者でも扱いやすい関数です。

3つの条件を指定する具体例

実際のデータを使った具体例を見ていきましょう。

以下のような売上データがあるとします。

支店 商品 売上
東京 A商品 4月 100000
大阪 B商品 4月 150000
東京 A商品 5月 120000
東京 B商品 4月 80000

「東京支店」かつ「A商品」かつ「4月」の売上を取得する数式は次のようになります。

=SUMPRODUCT((A2:A10=”東京”)*(B2:B10=”A商品”)*(C2:C10=”4月”)*D2:D10)

この数式では、3つの条件をすべて満たす行の売上だけが抽出され、結果として100000が返されるでしょう。

条件に一致する行が複数ある場合は、それらの合計値が計算されます。

条件に一致する値の集計と単一値の取得

SUMPRODUCT関数は本来集計用の関数なので、条件に一致する複数の値があると合計されます。

単一の値だけを取得したい場合は、条件を追加して一意に特定できるようにするか、別の関数との組み合わせを検討する必要があるでしょう。

たとえば、伝票番号など一意のキーを条件に含めることで、確実に1件だけを抽出できます。

また、条件に一致する件数をカウントしたい場合は、取得範囲の部分を1に置き換えればOKです。

=SUMPRODUCT((A2:A10=”東京”)*(B2:B10=”A商品”)*(C2:C10=”4月”))

このようにすると、3つの条件を満たすデータの件数が返されます。

INDEX・MATCH関数で複数条件に対応する方法

続いては、より柔軟な検索が可能なINDEX・MATCH関数の組み合わせを確認していきます。

INDEX・MATCH関数の基本的な使い方

まず、INDEX関数とMATCH関数それぞれの役割を理解しておきましょう。

MATCH関数が「何行目にあるか」を探し、INDEX関数が「その行のデータを取り出す」という分担になっています。

=INDEX(取得したい列の範囲, MATCH(検索値, 検索範囲, 0))

単一条件の場合は上記の形式ですが、複数条件を扱う場合は配列数式として入力する必要があります。

MATCH関数の検索値と検索範囲の部分を工夫することで、3つの条件を同時に判定できるでしょう。

複数条件を扱うための配列数式

3つの条件を指定する場合の数式は以下のようになります。

=INDEX(D2:D10, MATCH(1, (A2:A10=”東京”)*(B2:B10=”A商品”)*(C2:C10=”4月”), 0))

この数式を入力後、Ctrl+Shift+Enterで確定する必要があります(Excel 2019以前のバージョン)。

Excel 365やExcel 2021では、自動的にスピルされるため通常のEnterで確定可能です。

MATCH関数内で3つの条件を掛け算することで、すべての条件を満たす行だけが1になります。MATCH関数はその1を探して行番号を返し、INDEX関数がその行のデータを取り出すという流れでしょう。

INDEX・MATCH関数の組み合わせは、VLOOKUP関数では不可能な「左側の列からの検索」や「複数条件検索」が実現できる強力な手法です。

実務での活用例と応用テクニック

実務では、さらに複雑な条件を扱うケースもあります。

たとえば、「東京または大阪」かつ「A商品」かつ「4月」のように、一部の条件をOR条件にしたい場合はどうすればよいでしょうか。

=INDEX(D2:D10, MATCH(1, ((A2:A10=”東京”)+(A2:A10=”大阪”))*(B2:B10=”A商品”)*(C2:C10=”4月”), 0))

OR条件の部分は足し算(+)で、AND条件の部分は掛け算(*)でつなぐことで実現できます。

また、部分一致や比較演算子を使った条件も指定可能です。たとえば「売上が10万円以上」という条件なら(D2:D10>=100000)のように記述します。

このように、INDEX・MATCH関数は柔軟な条件設定が可能で、複雑なデータ検索に対応できるでしょう。

IF関数のネストとその他の複数条件対応方法

続いては、IF関数を使った方法や、その他の便利な関数について確認していきます。

IF関数のネストによる条件分岐

IF関数を入れ子にすることでも、複数条件の判定が可能です。

=IF(AND(A2=”東京”, B2=”A商品”, C2=”4月”), D2, “”)

AND関数を使うことで、3つの条件をすべて満たす場合のみ値を返す数式になります。

この方法は特定のセルに対する条件判定には有効ですが、範囲全体から条件に一致するデータを検索するには、各行に対して個別に数式を用意する必要があるでしょう。

純粋な検索用途では、SUMPRODUCT関数やINDEX・MATCH関数の方が効率的です。

IFS関数・FILTER関数の活用

Excel 2019以降では、より便利な関数が追加されています。

IFS関数は複数の条件を順番に評価し、最初に真となった条件の値を返します。

=IFS(AND(A2=”東京”, B2=”A商品”), “条件1″, AND(A2=”大阪”, B2=”B商品”), “条件2”, TRUE, “該当なし”)

また、Excel 365ではFILTER関数が非常に強力でしょう。

=FILTER(D2:D10, (A2:A10=”東京”)*(B2:B10=”A商品”)*(C2:C10=”4月”))

FILTER関数は条件に一致するすべてのデータを一度に抽出できるため、複数の結果が想定される場合に便利です。

スピル機能により、結果が自動的に複数セルに展開されます。

複数条件検索での注意点とエラー対処

複数条件を扱う際の注意点をいくつか紹介します。

まず、条件の範囲と取得範囲の行数を必ず一致させてください。範囲がずれていると正しい結果が得られません。

また、#N/Aエラーが表示される場合は、条件に一致するデータが存在しない可能性があります。

エラー 原因 対処法
#N/A 条件に一致するデータなし IFERROR関数で包む
#VALUE! 範囲の行数不一致 範囲を確認・修正
#REF! 参照先が削除された 数式を再設定

エラー処理を行う場合は、IFERROR関数と組み合わせるとよいでしょう。

=IFERROR(INDEX(D2:D10, MATCH(1, (A2:A10=”東京”)*(B2:B10=”A商品”)*(C2:C10=”4月”), 0)), “該当なし”)

このようにすることで、条件に一致するデータがない場合でも「該当なし」と表示され、エラーを回避できます。

また、条件に使う値の表記ゆれにも注意が必要です。全角・半角の違いや前後のスペースなどで一致判定が失敗することがあります。TRIM関数で余分なスペースを除去したり、条件値を別セルに入力して参照する方法が確実でしょう。

まとめ

エクセルで3つの条件を満たす値を返す方法について解説してきました。

SUMPRODUCT関数は、配列数式の入力操作が不要で初心者にも扱いやすく、複数条件での集計や検索に最適です。「=SUMPRODUCT((条件1)*(条件2)*(条件3)*取得範囲)」という形式で、3つの条件をすべて満たすデータを効率的に抽出できるでしょう。

より柔軟な検索が必要な場合は、INDEX・MATCH関数の組み合わせが強力です。配列数式として入力する必要がありますが、OR条件との混在や比較演算子を使った条件など、複雑な検索パターンにも対応できます。

Excel 2019以降をお使いの方は、IFS関数やFILTER関数の活用も検討してみてください。特にFILTER関数は複数の結果を一度に抽出できるため、条件に一致するデータをすべて表示したい場合に非常に便利でしょう。

複数条件検索は実務で頻繁に使用する重要なテクニックです。それぞれの関数の特徴を理解し、状況に応じて使い分けることで、データ分析の効率が大幅に向上します。ぜひ実際の業務データで試してみてください。