Excelで複数条件を扱う基本と応用|フィルター・関数・条件付き書式まで徹底解説

Excel

「Excel(エクセル)でデータを絞り込みたいけど、複数の条件を設定したい」「IF関数で2つ以上の条件をチェックしたい」そんなときにどうしたらいいか迷うことはありませんか?

Excelでは、複数条件をいろいろな場面で使えます。この記事では、以下について詳しく解説します:

  • フィルターを使った複数条件でのデータ絞り込み
  • 関数(IF・AND・OR)を使った複数条件判定
  • 条件付き書式での複数条件による色分け
  • SUMIFS・COUNTIFSなど集計関数での複数条件
  • 高度な条件設定テクニック

これをマスターすれば、複雑なデータ分析や管理表もぐっと見やすく、効率的に作業できるようになりますよ。

スポンサーリンク

複数条件の基本概念

AND条件とOR条件の違い

AND条件(「かつ」の関係)

すべての条件を満たす場合にのみ真となる論理演算です。

:売上が1000以上 かつ ステータスが「完了」

  • 両方の条件を満たす:TRUE
  • どちらか一方でも満たさない:FALSE

OR条件(「または」の関係)

いずれかの条件を満たす場合に真となる論理演算です。

:地域が「東京」 または 「大阪」

  • どちらか一方でも満たす:TRUE
  • どちらも満たさない:FALSE

複数条件が使われる場面

データ分析

  • 売上分析:期間と金額の両方で絞り込み
  • 顧客分析:年齢層と購入履歴での分類
  • 在庫管理:商品カテゴリと在庫レベルでの抽出

業務管理

  • プロジェクト管理:進捗状況と期限での優先度判定
  • 人事管理:部署と勤続年数での評価
  • 財務管理:予算と実績での差異分析

フィルターで複数条件を設定する

オートフィルターの基本操作

フィルターの設定方法

  1. データ範囲を選択
  2. 「データ」タブ → 「フィルター」をクリック
  3. 各列にドロップダウン矢印が表示される

基本的な複数条件設定

数値フィルターでの範囲指定

売上データで「1000以上かつ5000以下」を選ぶ場合:

  1. 売上列のフィルター▼をクリック
  2. 「数値フィルター」→「指定の範囲内」
  3. 最小値に1000、最大値に5000を入力
  4. 「OK」をクリック
テキストフィルターでの複数条件

商品名で「特定の文字を含む」条件:

  1. 商品名列のフィルター▼をクリック
  2. 「テキストフィルター」→「ユーザー設定フィルター」
  3. 条件1:「を含む」「限定」
  4. 「AND」を選択
  5. 条件2:「を含まない」「廃番」

高度なフィルター機能

複数列にまたがる複数条件

異なる列の条件を組み合わせる場合:

例:売上が1000以上 AND 地域が「関東」
  1. 売上列で1000以上を設定
  2. 地域列で「関東」を選択
  3. 両方の条件を満たすデータのみ表示

カスタム自動フィルター

より詳細な条件設定:

  1. 「データ」タブ → 「詳細設定」
  2. 「フィルターオプションの設定」ダイアログが開く
  3. 抽出条件範囲を別の場所に設定
  4. 複雑な条件を組み合わせて設定可能

条件範囲を使った高度なフィルター

条件表の作成例
売上地域ステータス
>=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(売上列, 地域列, "関東", 担当者列, "佐藤")

条件付き書式で複数条件を色分け

基本的な設定方法

手順

  1. 色分けしたい範囲を選択
  2. 「ホーム」→「条件付き書式」→「新しいルール」
  3. 「数式を使用して、書式設定するセルを決定」を選択
  4. 数式を入力
  5. 書式を設定して「OK」

基本的な複数条件例

=AND($A2>=1000, $B2="済")

意味:A列が1000以上かつB列が「済」の行を色分け

実用的な条件付き書式例

売上目標達成の色分け

=AND($C2>=1000000, $D2="達成")

書式:緑色の塗りつぶし

期限切れタスクの警告表示

=AND($E2<TODAY(), $F2<>"完了")

書式:赤色の塗りつぶし

優先度の高いプロジェクト

=AND($G2="高", OR($H2="遅延", $H2="要注意"))

書式:黄色の塗りつぶし + 太字

複数の条件付き書式の組み合わせ

優先順位を考慮した設定

  1. 最優先条件:緊急度「高」かつ期限切れ → 赤色
  2. 2番目:緊急度「高」 → オレンジ色
  3. 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)

  • 用途:複数条件での集計・カウント
  • メリット:効率的な集計処理
  • 適用場面:データ分析、レポート作成

条件付き書式

  • 用途:複数条件での視覚的な表現
  • メリット:一目で状況を把握可能
  • 適用場面:ダッシュボード、管理表

効果的な活用のポイント

条件の設計

  • 明確な条件定義:曖昧さを避ける
  • 優先順位の考慮:重要度の高い条件を先に
  • 例外処理:想定外のデータへの対応

パフォーマンス

  • 範囲の限定:必要最小限の範囲で処理
  • 関数の最適化:効率的な関数選択
  • 定期的な見直し:データ量増加への対応

コメント

タイトルとURLをコピーしました