【Excel】エクセルで条件付き最大値を求める方法(MAXIFS関数・複数条件・範囲指定・絞り込み)
エクセルで「特定の条件を満たすデータの中から最大値を取り出したい」という場面は、実務で頻繁に発生します。
たとえば「東京エリアの中で最も高い売上金額は?」「男性のデータだけで最高点を知りたい」といったニーズに対応するのが、MAXIFS関数です。
MAXIFS関数はExcel 2019以降で使用可能な比較的新しい関数で、複数の条件を組み合わせた最大値の抽出を、シンプルな数式で実現できます。
この記事では、MAXIFS関数の基本的な使い方から、複数条件の設定方法、範囲指定・絞り込みの応用テクニックまで、わかりやすく解説していきます。
MAXIFS関数で条件付き最大値を求める基本
それではまず、MAXIFS関数の基本的な使い方と条件付き最大値を求める仕組みについて解説していきます。
MAXIFS関数はSUMIFS・COUNTIFSと同じ構造の関数で、これらをすでに使ったことがある方にはなじみやすい設計になっています。
MAXIFS関数の書式と基本的な使い方
MAXIFS関数の書式は以下のとおりです。
=MAXIFS(最大値範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], …)
最大値範囲:最大値を求めたいデータが入っている列
条件範囲1:条件を確認する列
条件1:絞り込みたい条件(文字列・数値・セル参照など)
具体的な例を見てみましょう。
例:A列に「エリア」、B列に「売上」が入っているデータで、東京の最大売上を求める場合
=MAXIFS(B2:B100, A2:A100, “東京”)
これだけで、東京エリアのデータだけを対象にした最大売上が返ってきます。
条件に比較演算子を使う方法
条件には文字列だけでなく、比較演算子を使った数値条件も設定できます。
例:C列の「評価スコア」が3以上のデータの中で、D列「点数」の最大値を求める場合
=MAXIFS(D2:D100, C2:C100, “>=3”)
比較演算子(>・<・>=・<=・<>)を使えば、特定の範囲内のデータを絞り込んだ最大値を求めることができます。
条件はダブルクォーテーションで囲む点に注意が必要です。
MAXIFS関数が使えないバージョンへの対応
MAXIFS関数はExcel 2019・Microsoft 365以降で使用可能ですが、それ以前のバージョン(Excel 2016など)では使えません。
古いバージョンでは、MAX関数とIF関数を組み合わせた配列数式で代替できます。
旧バージョンでの代替数式(Ctrl+Shift+Enterで確定):
=MAX(IF(A2:A100=”東京”,B2:B100))
配列数式は入力後にCtrl+Shift+Enterで確定する必要があり、数式がで囲まれて表示されれば正しく入力できています。
複数条件を使ったMAXIFS関数の応用
続いては、MAXIFS関数で複数の条件を組み合わせて最大値を求める方法を確認していきます。
複数条件を使いこなすことで、より精度の高いデータ絞り込みが可能になります。
AND条件(すべての条件を満たす)で最大値を求める
MAXIFS関数は、複数の条件範囲と条件を並べて指定するだけで、すべての条件を満たすデータ(AND条件)の最大値を求めます。
例:A列「エリア」が東京、B列「カテゴリ」が食品のデータの中で、C列「売上」の最大値を求める場合
=MAXIFS(C2:C100, A2:A100, “東京”, B2:B100, “食品”)
条件範囲・条件のペアは最大126組まで指定できるため、複雑な条件の組み合わせにも対応できます。
OR条件(どれかの条件を満たす)の最大値を求める
MAXIFS単体ではOR条件の最大値を直接求めることができません。
OR条件で最大値を求めたい場合は、複数のMAXIFSをMAX関数でくくる方法を使います。
例:東京または大阪のデータの中で最大売上を求める場合
=MAX(MAXIFS(C2:C100,A2:A100,”東京”), MAXIFS(C2:C100,A2:A100,”大阪”))
このように、複数のMAXIFSをMAXで囲むことでOR条件に対応できます。
日付条件を組み合わせた最大値の抽出
日付データを条件に使う場合も、MAXIFS関数で柔軟に対応できます。
例:D列「日付」が2024年1月1日以降のデータの最大売上を求める場合
=MAXIFS(C2:C100, D2:D100, “>=”&DATE(2024,1,1))
日付はDATE関数と組み合わせて条件に指定します。
また、セル参照で日付を指定する場合は”>=”&E1のように書くと、セルの値を変えるだけで条件が動的に変わる便利な数式が作れます。
MAXIFS関数の範囲指定と絞り込みのテクニック
続いては、MAXIFS関数をより使いやすくするための範囲指定と絞り込みのテクニックを確認していきます。
正しい範囲指定が、関数の正確な動作と保守性の高い数式につながります。
条件範囲と最大値範囲のサイズを揃える
MAXIFS関数では、最大値範囲と各条件範囲は同じサイズである必要があります。
たとえば最大値範囲をB2:B100にした場合、条件範囲もA2:A100のように同じ行数で指定しなければなりません。
サイズが一致していないとエラーが発生するため、各範囲の行数が一致しているか必ず確認しましょう。
テーブル機能と組み合わせた動的な範囲指定
エクセルのテーブル機能を使うと、MAXIFS関数の範囲が自動的に拡張されます。
テーブル化したデータでは、範囲の代わりに列名(構造化参照)を使って数式を書けます。
テーブル名「売上データ」、列名「エリア」「売上」の場合の例:
=MAXIFS(売上データ[売上], 売上データ[エリア], “東京”)
テーブルに行を追加するだけで自動的に範囲が拡張されるため、メンテナンスフリーな数式が実現します。
MAXIFS関数とドロップダウンリストを組み合わせた動的分析
セル参照を条件に使うMAXIFS関数と、入力規則によるドロップダウンリストを組み合わせると、インタラクティブな分析ツールが作れます。
例:E1にドロップダウンでエリアを選択できる場合
=MAXIFS(C2:C100, A2:A100, E1)
E1の選択を変えるだけで最大値が自動更新されるため、複数の条件を素早く切り替えながら分析できるダッシュボードが完成します。
MAXIFS関数を使った実務的な活用シーン
続いては、MAXIFS関数が実務でどのように活用されているかを確認していきます。
具体的な使用シーンを知ることで、自分の業務へのあてはめ方が見えてきます。
営業データの部署・担当別最高売上の抽出
営業データが一覧になっている場合、部署別・担当者別の最高売上をMAXIFS関数で一瞬で抽出できます。
| 部署 | 担当者 | 売上 |
|---|---|---|
| 営業1課 | 田中 | 520,000 |
| 営業2課 | 鈴木 | 480,000 |
| 営業1課 | 佐藤 | 610,000 |
上記のデータで営業1課の最高売上を求める場合、=MAXIFS(C2:C4,A2:A4,”営業1課”)で610,000が返ります。
手動で絞り込んでMAX関数を使う手間が省ける点が大きな効率化につながります。
試験・評価データでの条件別最高得点の取得
学年・クラス・科目別の最高得点をMAXIFS関数で求めれば、成績分析が格段に楽になります。
複数条件を使うと「3年B組の数学の最高得点」のような、複合条件での最大値も一発で取得可能です。
期間・カテゴリ別の最大注文数量の分析
在庫管理や発注データの分析では、商品カテゴリ別・月別の最大注文数量をMAXIFS関数で抽出できます。
「今年の第1四半期に最も多く注文された商品カテゴリの注文数は?」といった問いにも、MAXIFS関数と日付条件を組み合わせることで対応できます。
複雑に見える条件も、MAXIFS関数を正しく使えばシンプルな数式で解決できるでしょう。
MAXIFS関数は、条件付きの最大値抽出を直感的に行える非常に強力な関数です。
複数条件・日付条件・セル参照との組み合わせを覚えることで、データ分析の幅が大きく広がります。
Excel 2019以降をお使いの方は、ぜひ積極的に活用してみてください。
まとめ
この記事では、エクセルで条件付き最大値を求める方法について、MAXIFS関数の基本から複数条件・範囲指定・実務活用まで幅広く解説しました。
MAXIFS関数を使えば、特定の条件を満たすデータの最大値を簡単に取り出せるようになります。
AND条件・OR条件・日付条件など、さまざまな絞り込み方法を組み合わせることで、より高度なデータ分析が実現します。
旧バージョンのエクセルでもMAX+IF配列数式で代替できますので、使用環境に合わせて適切な方法を選びましょう。
MAXIFS関数をマスターすれば、エクセルのデータ分析スキルが一段階上がるでしょう。