「部門ごとの最高売上を一発で出したい」「期間を絞った中で最も短い納期を知りたい」——Excelで条件付きの最大値・最小値を求める場面は業務で頻繁に発生します。Excel 2019・Microsoft 365で追加されたMAXIFS関数・MINIFS関数を使えば、SUMIFSと同じ感覚で複数条件の最大値・最小値を一発で取り出せます。
MAXIFS・MINIFSが登場する以前は、MAX関数とIF関数を組み合わせた配列数式(Ctrl+Shift+Enterで確定)を使う必要がありました。この操作は忘れやすくエラーの温床でしたが、MAXIFS・MINIFSの登場で通常のEnterキーだけで入力できるようになり、数式の可読性と保守性が大幅に向上しました。
本記事では、MAXIFS・MINIFS関数の基本構文・単一条件・複数条件の指定方法・業務シナリオ別の活用パターン・旧来の配列数式との比較・よくあるエラーの対処法・MOS Excel試験の出題ポイントを体系的に解説します。
MAXIFS・MINIFS関数の基本構文
MAXIFS・MINIFSの構文は次の通りです。
=MAXIFS(最大範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], …)
=MINIFS(最小範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], …)
| 引数 | 説明 | 省略 |
|---|---|---|
| 最大範囲(最小範囲) | 最大値(最小値)を求めたい数値のセル範囲 | 必須 |
| 条件範囲1 | 条件1を評価するセル範囲 | 必須 |
| 条件1 | セル参照・数値・文字列・比較演算子付き文字列など | 必須 |
| 条件範囲2・条件2… | 追加の条件(最大127ペアまで指定可) | 省略可 |
基本例:A列に部門名・B列に売上金額が入った表で、「営業部」の売上最大値を求めるには次のように書きます。
=MAXIFS(B2:B100, A2:A100, "営業部")
「最大範囲」「条件範囲」「条件」の3セットを指定するだけで、SUMIFSと同じ感覚で使えます。条件を追加したい場合は条件範囲・条件のペアをそのまま後ろに並べます。
単一条件での使い方
最もシンプルな使い方は1つの条件で最大値・最小値を絞り込むパターンです。
' A列=商品カテゴリ、B列=単価。カテゴリ「食品」の最大単価を取得
=MAXIFS(B2:B500, A2:A500, "食品")
' A列=担当者名、C列=処理時間(分)。担当者「田中」の最短処理時間を取得
=MINIFS(C2:C200, A2:A200, "田中")
' セル参照で条件を渡す場合(E1に部門名が入っている)
=MAXIFS(B2:B100, A2:A100, E1)
条件には比較演算子も使えます。
' B列=日付。2026年以降のデータでC列売上の最大値を取得
=MAXIFS(C2:C300, B2:B300, ">="&DATE(2026,1,1))
' B列=評点(0~100)。70点以上の学生のうち最小評点を取得
=MINIFS(B2:B50, B2:B50, ">=70")
比較演算子を使う場合は ">=" のように演算子を文字列として書き、& でセル参照や値を連結します。
複数条件の指定方法
MAXIFS・MINIFSは条件を複数設定できる点がMAXIF(配列数式)と大きく異なります。条件はすべてAND条件(すべてを同時に満たす行だけが対象)として評価されます。
' A列=部門、B列=四半期(Q1/Q2/Q3/Q4)、C列=売上。
' 「営業部」かつ「Q1」の最大売上を取得
=MAXIFS(C2:C200, A2:A200, "営業部", B2:B200, "Q1")
' A列=担当者、B列=案件種別、C列=対応時間(時間)。
' 「山田」かつ「新規」の最短対応時間を取得
=MINIFS(C2:C300, A2:A300, "山田", B2:B300, "新規")
| 条件数 | 記述パターン | 評価方式 |
|---|---|---|
| 1条件 | =MAXIFS(最大範囲, 条件範囲1, 条件1) | 条件1を満たす行のみ |
| 2条件 | =MAXIFS(最大範囲, 条件範囲1, 条件1, 条件範囲2, 条件2) | 条件1 AND 条件2の行のみ |
| N条件 | 条件範囲・条件ペアを最大127組まで追加 | すべての条件を同時に満たす行のみ |
注意点:最大範囲・条件範囲のすべての行数(高さ)は同じでなければなりません。行数が異なると #VALUE! エラーになります。列数が1列のときは縦方向の行数だけ一致すれば問題ありません。
実務シナリオ別の活用パターン
シナリオ1:月次売上レポートで部門別・月別の最高売上を一覧表示する
A列に部門名、B列に年月(例:2026-01)、C列に売上金額が入った明細表から、部門×月のクロス集計表に最大売上を表示します。
' 集計表のE2に部門名、F1に年月が入っているとき、F2セルに入力する数式
=MAXIFS($C$2:$C$1000, $A$2:$A$1000, $E2, $B$2:$B$1000, F$1)
絶対参照と複合参照を組み合わせることで、数式を縦横にコピーするだけで全部門×全月の最大売上一覧が完成します。ピボットテーブルを使わずに「最大値クロス集計表」が素早く作れます。
シナリオ2:プロジェクト進捗管理で担当者別の最長・最短所要日数を把握する
A列に担当者名、B列に案件ステータス(完了/進行中)、C列に所要日数が入った一覧から、完了済み案件のみを対象に担当者ごとの最長・最短日数を算出します。
' E列に担当者名リスト、F列に最長日数、G列に最短日数を表示する場合
' F2(最長日数)
=MAXIFS($C$2:$C$200, $A$2:$A$200, $E2, $B$2:$B$200, "完了")
' G2(最短日数)
=MINIFS($C$2:$C$200, $A$2:$A$200, $E2, $B$2:$B$200, "完了")
「完了」条件を加えることで進行中の案件を除外し、実績データだけから統計を取れます。最長・最短の差が大きい担当者はタスクの偏りや難易度差がある可能性の指標になります。
シナリオ3:在庫管理で商品カテゴリ・倉庫別の最大在庫数を確認する
A列に商品カテゴリ、B列に倉庫名、C列に在庫数が入った表から、カテゴリと倉庫の組み合わせで最大在庫・最小在庫を取得します。
' カテゴリ「電子機器」かつ倉庫「東京倉庫」の最大在庫数
=MAXIFS(C2:C500, A2:A500, "電子機器", B2:B500, "東京倉庫")
' 同条件の最小在庫数(欠品リスク把握)
=MINIFS(C2:C500, A2:A500, "電子機器", B2:B500, "東京倉庫")
最小在庫が安全在庫量を下回るかどうかを判定するIF条件に組み込む使い方も一般的です。
' 最小在庫が100未満なら「要補充」と表示する
=IF(MINIFS(C2:C500, A2:A500, "電子機器", B2:B500, "東京倉庫") < 100, "要補充", "OK")
シナリオ4:MAXIFS+MINIFS で「値幅(最大-最小)」を計算する
特定条件における最大値と最小値の差(レンジ)を一つの数式で求められます。株価・為替レートの日次変動幅、商品価格のばらつきなどに活用できます。
' A列=商品名、B列=価格。商品「A品」の価格変動幅
=MAXIFS(B2:B300, A2:A300, "A品") - MINIFS(B2:B300, A2:A300, "A品")
旧来の配列数式との比較
Excel 2016以前(またはExcel 2019でも環境によってMAXIFS未対応の場合)では、次のような配列数式で代替していました。
' 旧来の方法(Ctrl+Shift+Enterで確定する配列数式)
{=MAX(IF(A2:A100="営業部", B2:B100))}
' MAXIFS(通常のEnterで確定できる)
=MAXIFS(B2:B100, A2:A100, "営業部")
| 比較項目 | 配列数式 {=MAX(IF(…))} | MAXIFS関数 |
|---|---|---|
| 確定方法 | Ctrl+Shift+Enter必須(忘れると誤動作) | 通常のEnterキーでOK |
| 複数条件 | IFを入れ子にする必要がある(複雑) | 条件ペアを追加するだけ(シンプル) |
| 数式の可読性 | 波括弧{}が表示され初心者には難解 | SUMIFSと同じ構文で直感的 |
| 対応バージョン | すべてのExcelバージョン | Excel 2019・Microsoft 365以降 |
| MOS試験対象 | MOS 2016以前で出題実績あり | MOS 365・2019の主要出題範囲 |
Microsoft 365・Excel 2019の環境では積極的にMAXIFS・MINIFSを使いましょう。配列数式は保守時に誤って通常Enterで上書きするとバグの原因になるため、MAXIFSに移行するメリットは大きいです。
よくあるエラーと原因・対処法
| 症状・エラー | 主な原因 | 対処法 |
|---|---|---|
| #VALUE! | 最大範囲と条件範囲の行数が一致していない | すべての範囲の行数(高さ)を揃える |
| 結果が0になる | 条件に一致する行が存在しない(条件の誤記など) | 条件文字列のスペース・大文字小文字・全半角を確認する |
| 比較演算子が効かない | >=等を数値に直接つけて書いている(例:>=50) | ">=50"のように文字列として書くか、">="&C1のようにセル参照と連結する |
| #NAME? | Excel 2016以前でMAXIFSを使おうとしている | Excel 2019またはMicrosoft 365以降に更新するか、配列数式の代替を使う |
| 期待した行が対象外になる | 条件範囲に空白セルや数式エラーが混入している | 条件範囲をCTRL+Gで空白セルを確認し、データを整える |
結果が0になるときのチェック手順:① COUNTIFS(同じ条件範囲・条件)でヒット件数を確認→0件ならデータに一致行がない→ ② 条件文字列をトリムして全角スペースを除去→ ③ 最大範囲が数値かどうかCOUNT(最大範囲)で確認→ ④ 日付条件ならDATE関数で厳密に指定する。
PR
Excel関数[最強]時短仕事術 誰も教えてくれない! 仕事がラクになるテクニック(守屋恵一・技術評論社)
現場で使う関数テクニックを時短の切り口でまとめた実務書。覚えた関数をすぐ業務に落とし込みたい方向けの内容です。
MAXIFS・MINIFSとCOUNTIFS・SUMIFSの引数構造の対比
MAXIFS・MINIFSはCOUNTIFSやSUMIFSと引数の並び方が若干異なります。混同しないよう整理します。
| 関数 | 引数の並び順 | 集計対象範囲の位置 |
|---|---|---|
| SUMIFS | SUMIFS(合計範囲, 条件範囲1, 条件1, …) | 第1引数 |
| MAXIFS | MAXIFS(最大範囲, 条件範囲1, 条件1, …) | 第1引数(SUMIFSと同じ位置) |
| MINIFS | MINIFS(最小範囲, 条件範囲1, 条件1, …) | 第1引数(SUMIFSと同じ位置) |
| COUNTIFS | COUNTIFS(条件範囲1, 条件1, …) | なし(カウントのため不要) |
| AVERAGEIFS | AVERAGEIFS(平均範囲, 条件範囲1, 条件1, …) | 第1引数(SUMIFSと同じ位置) |
SUMIFSを使い慣れている場合、MAXIFS・MINIFSも「先に集計対象範囲、その後に条件ペア」というまったく同じ構造なので混乱しにくいです。COUNTIFSだけは集計対象範囲が不要という点で例外です。
MOS Excel試験でのMAXIFS・MINIFS出題ポイント
MOS Excel 365&2019では、データの集計・分析スキルの中でMAXIFS・MINIFSが出題されます。SUMIFSと同じ構文構造のため、SUMIFSを習得していれば応用しやすい範囲です。
- 基本構文の入力:=MAXIFS(最大範囲, 条件範囲, 条件)を正確に入力できること。引数の順番を誤ると意図しない結果になる
- 複数条件の追加:条件範囲・条件ペアを2組以上指定する問題が出る。AND条件であることを理解しておく
- セル参照で条件を渡す:条件をハードコードするのではなく、セル参照で動的に切り替える数式が問われることがある
- SUMIFSとの引数構造の違いを確認:SUMIFSと同じ「集計範囲が第1引数」という点を押さえる
- 配列数式との混同に注意:試験でMAXIFSを使うべき場面で{=MAX(IF(…))}を入力しても通ることがあるが、通常のEnterで確定できるMAXIFSを使うのがモダンな正解
MOS試験 MAXIFS・MINIFS関連チェックリスト
| 確認ポイント | 操作内容 | 難易度 |
|---|---|---|
| 基本構文の入力 | =MAXIFS(B2:B100, A2:A100, "営業部")を正しく入力できる | ★☆☆ |
| 複数条件の記述 | 条件範囲・条件ペアを2組以上正確に追加できる | ★★☆ |
| セル参照で条件を渡す | 条件をE1セルなどから参照する数式を作れる | ★★☆ |
| 比較演算子の使い方 | ">="&C1のように演算子をセル参照と連結できる | ★★☆ |
| MINIFSで最短値を取得 | =MINIFS(C2:C200, A2:A200, "田中")を入力できる | ★★☆ |
| エラー原因の特定 | #VALUE!が出たとき行数不一致を確認できる | ★★★ |
まとめ:MAXIFS・MINIFSで条件付き最大値・最小値の集計を効率化する
本記事のポイントをまとめます。
- MAXIFSの役割:指定した条件を満たす行の中から最大値を返す。複数条件はすべてAND評価
- MINIFSの役割:指定した条件を満たす行の中から最小値を返す。構文はMAXIFSと同一
- 引数の構造:第1引数が集計範囲、第2引数以降が条件範囲・条件ペア。SUMIFSと同じ順序なので覚えやすい
- 複数条件の追加:条件範囲・条件のペアを最大127組まで追加でき、すべての条件を満たす行が対象になる
- 配列数式からの移行:{=MAX(IF(…))}は通常EnterのMAXIFSに書き換えることで可読性・保守性が向上する
- 0エラーの対処:COUNTIFS(同条件)でヒット件数を確認し、条件の文字列・全半角・スペースを精査する
- MOS試験の頻出操作:基本構文の入力・複数条件の追加・セル参照での条件渡しが中心。SUMIFSを習得していれば短時間で対応できる
MAXIFS・MINIFSを習得すると、部門別・期間別・担当者別といった多様な切り口で「最高値・最低値の即時確認」が可能になり、レポート作成やデータ分析の工数が大幅に削減されます。特に月次・四半期レポートで複数軸のクロス集計が必要な場面では、複合参照と組み合わせた数式コピーが強力な武器になります。MOS試験対策としては、SUMIFSの構文をそのままMAXIFS・MINIFSに応用する感覚を身につけることが合格への近道です。
