▲ Lookup サンプル
条件付き最大値とは?どんな場面で必要か
「担当者ごとに最高売上を出したい」「カテゴリ別の最大スコアを一覧にしたい」——Excelでデータを扱っていると、こういった条件付きの最大値が必要になる場面は頻繁にあります。
ただの MAX 関数では全体の最大値しか取れません。条件を絞るには IF を組み合わせた配列数式か、MAXIFS 関数を使います。
この記事を読めば、使っているExcelのバージョンに関わらず最適な方法を選べるようになります。
サンプルデータで練習する
以下の売上データを使って解説します。
| A列(担当者) | B列(カテゴリ) | C列(売上金額) |
|---|---|---|
| 田中 | 食品 | 120,000 |
| 鈴木 | 電化製品 | 340,000 |
| 田中 | 電化製品 | 210,000 |
| 佐藤 | 食品 | 95,000 |
| 鈴木 | 食品 | 150,000 |
| 佐藤 | 電化製品 | 400,000 |
方法①:MAX + IF の配列数式(Excel 2016以前でも使える)
基本の書き方
{=MAX(IF(A2:A7="田中", C2:C7))}
入力方法: 数式を入力したあと Enter ではなく Ctrl + Shift + Enter で確定します。数式バーに { } が自動で付けば成功です。
仕組みを理解する
IF(A2:A7="田中", C2:C7) は、条件を満たす行のみ売上金額を返し、それ以外は FALSE を返します。MAX がその中から最大値を選ぶ仕組みです。
| IF の結果 | 値 |
|---|---|
| A2="田中" → TRUE | 120,000 |
| A3="田中" → FALSE | FALSE |
| A4="田中" → TRUE | 210,000 |
MAX({120000, FALSE, 210000, ...}) → 210,000 が返ります。
AND条件(複数条件)
担当者「田中」かつカテゴリ「電化製品」の最大値を求めるには:
{=MAX(IF((A2:A7="田中")*(B2:B7="電化製品"), C2:C7))}
* でAND条件をつなぎます。こちらも Ctrl + Shift + Enter で確定してください。
OR条件
担当者が「田中」または「鈴木」の最大値を求めるには:
{=MAX(IF((A2:A7="田中")+(A2:A7="鈴木"), C2:C7))}
+ でOR条件をつなぎます。ただし、両方の条件が真になる行は値が2倍に加算されるため、MAX 以外の集計には注意が必要です。
方法②:MAXIFS 関数(Excel 2019 / Microsoft 365 推奨)
基本構文
=MAXIFS(最大値範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], ...)
単一条件の例
=MAXIFS(C2:C7, A2:A7, "田中")
Ctrl + Shift + Enter は不要で、通常の Enter だけで確定できます。
複数条件の例
=MAXIFS(C2:C7, A2:A7, "田中", B2:B7, "電化製品")
引数を追加するだけで条件を増やせます。SUMIFS や COUNTIFS と同じ感覚で使えるため直感的です。
セル参照で動的に切り替える
条件をセルに入力して動的に切り替えると、実用的なダッシュボードが作れます。E1セルに担当者名を入力する例:
=MAXIFS(C2:C7, A2:A7, E1)
これをドロップダウンリストと組み合わせると、選んだ担当者の最大売上がリアルタイムで変わります。
応用テクニックとよくあるミス
ワイルドカードで部分一致
=MAXIFS(C2:C7, B2:B7, "*電化*")
「電化」を含むカテゴリすべてが対象になります。
日付条件を使う
=MAXIFS(C2:C7, D2:D7, ">="&DATE(2024,1,1))
「2024年以降の最大売上」のような日付比較にも対応しています。
条件に一致する行がない場合(重要)
MAXIFS は条件に一致する行がないと 0 を返します。 売上が実際に0円のデータと区別がつかないため、実務では注意が必要です。
COUNTIFS でガードする方法:
=IF(COUNTIFS(A2:A7, E1)=0, "該当なし", MAXIFS(C2:C7, A2:A7, E1))
IFERROR との違い: IFERROR はエラー値(#N/A など)をキャッチしますが、MAXIFS の0は正常値のためキャッチできません。「0を返すのは正常動作」という点を覚えておきましょう。
使い分けまとめ
| 状況 | 推奨する方法 |
|---|---|
| Excel 2016以前 | MAX + IF 配列数式(Ctrl+Shift+Enter) |
| Excel 2019 / Microsoft 365 | MAXIFS 関数(Enter のみ) |
| 条件が複数 | MAXIFS が圧倒的に楽 |
| 他ファイルとの互換性重視 | MAX + IF 配列数式 |
| OR条件が必要 | MAX + IF(+ 演算子) |
まとめ
MAXIFS は SUMIFS ・COUNTIFS と使い方が統一されており、一度覚えれば他の関数にもすぐ応用が効きます。まず手元のデータで「担当者別の最高売上」を実際に出してみることが、最速の習得方法です。今日中にサンプルデータを使って試してみてください。
次回のLookupシリーズでは MINIFS(条件付き最小値)を解説します。シリーズ一覧はLookupシリーズ記事一覧からご確認ください。
関連記事
- 送料・割引テーブルを自動判定!MATCH -1 で「次に大きい値」を取得するExcel技
- ExcelのMATCHに潜む「255文字の壁」をEXACT・LEFT・MIDで突破する完全照合術【Lookupシリーズ】
- Excelで「含まない」最初のセルを取る方法――INDEX+MATCHで逆転発想
- 【Lookup活用術】#N/Aが混じったデータでも確実に値を取れる MATCH+ISERROR の使い方
- 【Lookupシリーズ】「〜で始まらない」最初の値をINDEX+MATCH+LEFTで一発取得する方法