doodle-on-web

自分で調べたことや、仕事の中で質問されたことなどをまとめています。

担当者別・カテゴリ別の最大値を確実に取り出す!MAX+IF・MAXIFSの完全使い分けガイド

スポンサーリンク


担当者別・カテゴリ別の最大値を確実に取り出す!MAX+IF・MAXIFSの完全使い分けガイドのサンプル ▲ 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, "電化製品")

引数を追加するだけで条件を増やせます。SUMIFSCOUNTIFS と同じ感覚で使えるため直感的です。

セル参照で動的に切り替える

条件をセルに入力して動的に切り替えると、実用的なダッシュボードが作れます。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+ 演算子)

まとめ

MAXIFSSUMIFSCOUNTIFS と使い方が統一されており、一度覚えれば他の関数にもすぐ応用が効きます。まず手元のデータで「担当者別の最高売上」を実際に出してみることが、最速の習得方法です。今日中にサンプルデータを使って試してみてください。

次回のLookupシリーズでは MINIFS(条件付き最小値)を解説します。シリーズ一覧はLookupシリーズ記事一覧からご確認ください。


関連記事

あわせてチェック