「Excel(エクセル)でデータを絞り込みたいけど、複数の条件を設定したい」「IF関数で2つ以上の条件をチェックしたい」そんなときにどうしたらいいか迷うことはありませんか?
Excelでは、複数条件をいろいろな場面で使えます。この記事では、以下について詳しく解説します:
- フィルターを使った複数条件でのデータ絞り込み
- 関数(IF・AND・OR)を使った複数条件判定
- 条件付き書式での複数条件による色分け
- SUMIFS・COUNTIFSなど集計関数での複数条件
- 高度な条件設定テクニック
これをマスターすれば、複雑なデータ分析や管理表もぐっと見やすく、効率的に作業できるようになりますよ。
複数条件の基本概念

AND条件とOR条件の違い
AND条件(「かつ」の関係)
すべての条件を満たす場合にのみ真となる論理演算です。
例:売上が1000以上 かつ ステータスが「完了」
- 両方の条件を満たす:TRUE
- どちらか一方でも満たさない:FALSE
OR条件(「または」の関係)
いずれかの条件を満たす場合に真となる論理演算です。
例:地域が「東京」 または 「大阪」
- どちらか一方でも満たす:TRUE
- どちらも満たさない:FALSE
複数条件が使われる場面
データ分析
- 売上分析:期間と金額の両方で絞り込み
- 顧客分析:年齢層と購入履歴での分類
- 在庫管理:商品カテゴリと在庫レベルでの抽出
業務管理
- プロジェクト管理:進捗状況と期限での優先度判定
- 人事管理:部署と勤続年数での評価
- 財務管理:予算と実績での差異分析
フィルターで複数条件を設定する
オートフィルターの基本操作
フィルターの設定方法
- データ範囲を選択
- 「データ」タブ → 「フィルター」をクリック
- 各列にドロップダウン矢印が表示される
基本的な複数条件設定
数値フィルターでの範囲指定
売上データで「1000以上かつ5000以下」を選ぶ場合:
- 売上列のフィルター▼をクリック
- 「数値フィルター」→「指定の範囲内」
- 最小値に1000、最大値に5000を入力
- 「OK」をクリック
テキストフィルターでの複数条件
商品名で「特定の文字を含む」条件:
- 商品名列のフィルター▼をクリック
- 「テキストフィルター」→「ユーザー設定フィルター」
- 条件1:「を含む」「限定」
- 「AND」を選択
- 条件2:「を含まない」「廃番」
高度なフィルター機能
複数列にまたがる複数条件
異なる列の条件を組み合わせる場合:
例:売上が1000以上 AND 地域が「関東」
- 売上列で1000以上を設定
- 地域列で「関東」を選択
- 両方の条件を満たすデータのみ表示
カスタム自動フィルター
より詳細な条件設定:
- 「データ」タブ → 「詳細設定」
- 「フィルターオプションの設定」ダイアログが開く
- 抽出条件範囲を別の場所に設定
- 複雑な条件を組み合わせて設定可能
条件範囲を使った高度なフィルター
条件表の作成例
売上 | 地域 | ステータス |
---|---|---|
>=1000 | 東京 | 完了 |
>=1000 | 大阪 | 完了 |
この条件表を使って、複数のOR条件を設定できます。
関数を使った複数条件処理
IF・AND・OR関数の基本
AND関数の使い方
すべての条件を満たす場合にTRUEを返します。
基本構文
=AND(条件1, 条件2, 条件3, ...)
実用例
=IF(AND(A2>=1000, B2="済"), "OK", "NG")
意味:A2が1000以上かつB2が「済」なら「OK」、それ以外は「NG」
OR関数の使い方
いずれかの条件を満たす場合にTRUEを返します。
基本構文
=OR(条件1, 条件2, 条件3, ...)
実用例
=IF(OR(A2="東京", A2="大阪", A2="名古屋"), "主要都市", "その他")
意味:A2が「東京」「大阪」「名古屋」のいずれかなら「主要都市」
複雑な複数条件の組み合わせ
AND・OR関数の入れ子構造
=IF(AND(A2>=1000, OR(B2="済", B2="保留")), "処理済", "未処理")
意味:A2が1000以上で、B2が「済」または「保留」なら「処理済」
3つ以上の条件判定
=IF(AND(A2>=1000, B2="済", C2>=TODAY()-30), "最新処理済", "要確認")
意味:売上1000以上、ステータス「済」、日付が30日以内の場合
IF関数の入れ子(ネスト)
段階的な条件判定
3段階の評価を行う場合:
=IF(A2>=1000, "高", IF(A2>=500, "中", "低"))
より複雑な入れ子例
=IF(A2="", "未入力",
IF(A2>=1000, "S級",
IF(A2>=500, "A級",
IF(A2>=100, "B級", "C級"))))
実用的な関数組み合わせ例
営業成績の評価
=IF(AND(売上>=目標*1.1, 件数>=20), "優秀",
IF(AND(売上>=目標*0.9, 件数>=15), "良好", "要改善"))
プロジェクトの進捗管理
=IF(AND(進捗率>=100, 品質="OK"), "完了",
IF(進捗率>=80, "最終段階", "進行中"))
集計関数での複数条件

SUMIFS関数(複数条件での合計)
基本構文
=SUMIFS(合計範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, ...)
実用例
地域と期間での売上合計
=SUMIFS(売上列, 地域列, "東京", 日付列, ">=2024/1/1", 日付列, "<=2024/12/31")
商品カテゴリと担当者での集計
=SUMIFS(B:B, A:A, "電子機器", C:C, "田中")
COUNTIFS関数(複数条件での件数カウント)
基本構文
=COUNTIFS(条件範囲1, 条件1, 条件範囲2, 条件2, ...)
実用例
年齢層と性別での顧客数
=COUNTIFS(年齢列, ">=20", 年齢列, "<=30", 性別列, "女性")
売上目標達成者の人数
=COUNTIFS(売上列, ">=1000000", ステータス列, "達成")
AVERAGEIFS関数(複数条件での平均)
基本構文
=AVERAGEIFS(平均範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, ...)
実用例
=AVERAGEIFS(売上列, 地域列, "関東", 担当者列, "佐藤")
条件付き書式で複数条件を色分け
基本的な設定方法
手順
- 色分けしたい範囲を選択
- 「ホーム」→「条件付き書式」→「新しいルール」
- 「数式を使用して、書式設定するセルを決定」を選択
- 数式を入力
- 書式を設定して「OK」
基本的な複数条件例
=AND($A2>=1000, $B2="済")
意味:A列が1000以上かつB列が「済」の行を色分け
実用的な条件付き書式例
売上目標達成の色分け
=AND($C2>=1000000, $D2="達成")
書式:緑色の塗りつぶし
期限切れタスクの警告表示
=AND($E2<TODAY(), $F2<>"完了")
書式:赤色の塗りつぶし
優先度の高いプロジェクト
=AND($G2="高", OR($H2="遅延", $H2="要注意"))
書式:黄色の塗りつぶし + 太字
複数の条件付き書式の組み合わせ
優先順位を考慮した設定
- 最優先条件:緊急度「高」かつ期限切れ → 赤色
- 2番目:緊急度「高」 → オレンジ色
- 3番目:期限切れ → 黄色
条件の競合を避ける設定
// 1番目のルール
=AND($A2="緊急", $B2<TODAY())
// 2番目のルール
=AND($A2="緊急", NOT(AND($A2="緊急", $B2<TODAY())))
// 3番目のルール
=AND($B2<TODAY(), NOT($A2="緊急"))
高度な複数条件テクニック

配列数式での複数条件
基本的な配列数式
=SUM((A1:A100>=1000)*(B1:B100="済")*C1:C100)
意味:A列が1000以上かつB列が「済」の場合のC列の合計
複雑な配列数式例
=SUMPRODUCT((地域="東京")*(売上>=100000)*(月=12)*売上)
意味:東京で売上10万以上の12月のデータの売上合計
ワイルドカードを使った複数条件
部分一致を含む条件
=COUNTIFS(商品名, "*限定*", 価格, ">=1000")
意味:商品名に「限定」を含み、価格が1000以上の件数
複数のワイルドカード条件
=SUMIFS(売上, 商品名, "A*", 商品名, "*プレミアム")
意味:商品名が「A」で始まり「プレミアム」を含む商品の売上合計
XLOOKUP(Excel 2021以降)での複数条件
複数条件での検索
=XLOOKUP(1, (名前=検索名前)*(部署=検索部署), 給与)
IF文との組み合わせ
=IF(XLOOKUP(1, (A:A=E1)*(B:B=F1), C:C)>1000, "高額", "標準")
実用的な活用例
売上データ分析
月別・地域別の売上分析
=SUMIFS(売上, 月, 12, 地域, "東京", 商品カテゴリ, "電子機器")
目標達成率の判定
=IF(AND(売上>=目標, 件数>=20), "目標達成",
IF(売上>=目標*0.8, "惜しい", "未達成"))
在庫管理
発注が必要な商品の抽出
=IF(AND(在庫数<=安全在庫, ステータス="販売中"), "発注要", "在庫OK")
季節商品の管理
=IF(AND(MONTH(TODAY())>=6, MONTH(TODAY())<=8, カテゴリ="夏物"), "販売期", "保管期")
人事管理
昇進候補者の判定
=IF(AND(勤続年数>=3, 評価="A", 研修完了="済"), "昇進候補", "継続検討")
有給取得推奨の判定
=IF(AND(有給残日数>=10, 最終取得日<TODAY()-30), "取得推奨", "適正")
プロジェクト管理
タスクの優先度判定
=IF(AND(重要度="高", 緊急度="高"), "最優先",
IF(OR(重要度="高", 緊急度="高"), "優先", "通常"))
進捗遅延の警告
=IF(AND(進捗率<80, 残日数<=7), "要注意", "順調")
よくあるエラーと対処法

#VALUE!エラー
原因と対処法
原因:データ型の不一致(文字列と数値の比較など)
対処法:
=IF(AND(ISNUMBER(A2), A2>=1000, B2="済"), "OK", "NG")
条件が正しく動作しない場合
文字列の大文字・小文字を統一
=IF(AND(A2>=1000, UPPER(B2)="済"), "OK", "NG")
余分なスペースの除去
=IF(AND(A2>=1000, TRIM(B2)="済"), "OK", "NG")
パフォーマンスの問題
大量データでの最適化
// 重い処理
=SUMIFS(A:A, B:B, "条件1", C:C, "条件2")
// 軽い処理(範囲を限定)
=SUMIFS(A1:A1000, B1:B1000, "条件1", C1:C1000, "条件2")
まとめ
Excelで複数条件を扱うときは、用途に応じて適切な方法を選択することが重要です。
主要な方法とその使い分け
フィルター
- 用途:データの一時的な絞り込み・表示
- メリット:直感的で簡単
- 適用場面:データ確認、レポート作成
関数(IF・AND・OR)
- 用途:条件に応じた値の計算・判定
- メリット:複雑な論理処理が可能
- 適用場面:自動判定、データ分類
集計関数(SUMIFS・COUNTIFS)
- 用途:複数条件での集計・カウント
- メリット:効率的な集計処理
- 適用場面:データ分析、レポート作成
条件付き書式
- 用途:複数条件での視覚的な表現
- メリット:一目で状況を把握可能
- 適用場面:ダッシュボード、管理表
効果的な活用のポイント
条件の設計
- 明確な条件定義:曖昧さを避ける
- 優先順位の考慮:重要度の高い条件を先に
- 例外処理:想定外のデータへの対応
パフォーマンス
- 範囲の限定:必要最小限の範囲で処理
- 関数の最適化:効率的な関数選択
- 定期的な見直し:データ量増加への対応
コメント