売上表から「佐藤さんの最高額」や「鈴木さんの最新の売上日」だけを求めたいことがあります。結論から言うと、MAXIFS関数は条件に合うデータの最大値、MINIFS関数は最小値を求める関数です。SUMIFSやCOUNTIFSと同じ「範囲と条件のペア」の書き方で、複数の条件も指定できます。
MAXIFS関数・MINIFS関数の基本構文
=MAXIFS(最大範囲,条件範囲1,条件1,[条件範囲2,条件2],…)=MINIFS(最小範囲,条件範囲1,条件1,[条件範囲2,条件2],…)
最初の引数が「最大値(最小値)を探す範囲」で、そのあとに「どの列を」「どんな条件で」絞り込むかをペアで並べます。SUMIFS関数と同じ並び順なので、SUMIFS関数の基本的な使い方【エクセル関数】を使ったことがあればすぐに書けます。なお、MAXIFS・MINIFSはExcel 2019以降とMicrosoft 365で使える関数です。
MAXIFS関数・MINIFS関数で担当者ごとの最高額・最低額を求める例
次のような売上の表(A1:C7)で考えます。
| A(日付) | B(担当) | C(金額) | |
|---|---|---|---|
| 2 | 2026/9/1 | 佐藤 | 12,000 |
| 3 | 2026/9/3 | 鈴木 | 8,500 |
| 4 | 2026/9/8 | 佐藤 | 15,000 |
| 5 | 2026/9/10 | 田中 | 6,000 |
| 6 | 2026/9/15 | 鈴木 | 11,000 |
| 7 | 2026/9/18 | 佐藤 | 9,000 |
A列=日付、B列=担当、C列=金額という対応で、担当者ごとの最高額・最低額は次の数式で求めます。
| 求めたいもの | 数式 | 結果 |
|---|---|---|
| 佐藤さんの最高額 | =MAXIFS(C2:C7,B2:B7,"佐藤") |
15,000 |
| 佐藤さんの最低額 | =MINIFS(C2:C7,B2:B7,"佐藤") |
9,000 |
| 鈴木さんの最高額 | =MAXIFS(C2:C7,B2:B7,"鈴木") |
11,000 |
| 鈴木さんの最低額 | =MINIFS(C2:C7,B2:B7,"鈴木") |
8,500 |
MAXIFS関数で担当者ごとの最新の日付を求める
日付はExcelの内部では数値なので、最大範囲に日付の列を指定すると「条件に合う中で一番新しい日付」が求められます。A列=日付、B列=担当です。
=MAXIFS(A2:A7,B2:B7,"佐藤")
結果は2026/9/18です。ただし、セルの表示形式によっては「46283」のような数値で表示されることがあります。その場合は表示形式を日付に変えてください(詳しくは日付が数値やシリアル値で表示されてしまう問題の直し方)。この「最新の日付」を使って、重複データの中から最新の行だけを取り出す方法は重複データの中から「最新の日付」のものだけを抽出する方法で解説しています。
MAXIFS・MINIFSで複数の条件を指定する
条件範囲と条件のペアを増やすと、すべての条件を満たすデータだけが対象になります。「佐藤さんの、9月5日以降の最低額」なら次のとおりです。
=MINIFS(C2:C7,B2:B7,"佐藤",A2:A7,">="&DATE(2026,9,5))
対象は9/8の15,000と9/18の9,000なので、結果は9,000です。日付の条件の書き方はSUMIFで日付範囲を指定して集計する方法、DATE関数はDATE関数の基本的な使い方|年月日から日付を作る方法を参照してください。
MAXIFS関数・MINIFS関数のよくある注意点
- 条件に合うデータがないと0が返る: 「高橋」のように該当者がいない場合、エラーではなく0になります。0が本当の最小値なのか「該当なし」なのか紛らわしいときは、COUNTIFSで複数条件を満たすセルの個数を数える方法で件数を数えて、0件なら空欄にするとよいでしょう。
- 範囲の大きさがそろっていないと#VALUE!: 最大範囲と条件範囲の行数・列数が違うとエラーになります。C2:C7に対してB2:B8のようにずれていないか確認します(#VALUE!エラーの原因と直し方も参照)。
- 古いExcelでは#NAME?になる: 買い切り版のExcel 2016以前では関数自体が使えず#NAME?になります(#NAME?エラーが出たときの確認ポイント参照)。その場合は
=MAX(IF(B2:B7="佐藤",C2:C7))を配列数式(Ctrl+Shift+Enterで確定)として入力すると同じ結果が得られます。
MAXIFS関数が登場する記事
MAXIFS関数・MINIFS関数の使い方まとめ
MAXIFSは条件付きの最大値、MINIFSは条件付きの最小値を求める関数で、=MAXIFS(最大範囲,条件範囲,条件)の形で使います。日付の列を指定すれば最新・最古の日付も求められます。同じ「条件付き」の考え方で平均や中央値を出したい場合はAVERAGEIFSで複数条件の平均を計算する方法や、サイトの人気記事エクセル関数で条件付きで中央値(MEDIAN)を計算する方法もあわせてご覧ください。





