MINIFS関数は、条件に合う行の中で最小値を求める関数です。「男性の中でいちばん低い身長」「東店の売上の最低額」「0 を除いた最小値」のように、MIN 関数に条件を付けたいときに使います。条件はいくつでも指定できます。
この記事では、MINIFS 関数の書き方から、複数の条件、0 を除いた最小値の求め方、条件に合う行が無いときに 0 になる注意点、古い Excel での代わりの式まで、実際の Excel の画面で説明します。
MINIFS関数の書き方(構文)
=MINIFS(最小値の範囲, 条件の範囲1, 条件1, [条件の範囲2, 条件2], …)
| 引数 | 意味 |
|---|---|
| 最小値の範囲 | 最小値を求める数値の範囲(身長など) |
| 条件の範囲1 | 条件を調べる範囲(性別など)。最小値の範囲と同じ大きさにする |
| 条件1 | 条件(”男”、”>=70″、セル番地など) |
| 条件の範囲2, 条件2… | 2つ目以降の条件(省略可)。すべての条件に合う行だけが対象 |
MINIFS は Microsoft 365・Excel 2019 以降で使えます。
基本の使い方:男性の身長・体重の最小値を求める
手順:C13 に MINIFS の式を入れて Enter
10人の身体測定の表から、性別(B 列)が F3 の「男」の人だけを対象に、身長の最小値を求めます。C13 に次の式を入力して、Enter キーを押します❶。
=MINIFS(C3:C12,B3:B12,F3) C3:C12B3:B12F3紫に「最小値を出したい列」、青に「条件を調べる列」、オレンジに「条件」を入れ替えるだけです。例:部署(A 列)が「営業」の人の、売上(D 列)の最小
=MINIFS(D2:D20,A2:A20,"営業") - 紫と青の範囲は、同じ行(ここでは 3〜12 行目)にそろえます。ずれると #VALUE! になります。

確認:168 は男性 8 人の中でいちばん低い身長

答えは 168 になりました❷。MINIFS は、次の順に計算しています。
- 性別の列(B3:B12)が「男」の行を選ぶ
⇒ 8 人(B・C・D・F・G・H・I・J さん) - その 8 人の身長(C3:C12)から、いちばん小さい値を取り出す
⇒ D さんの 168
まず動かしてみよう|この記事のサンプルをその場で試せます
ブラウザの上で MINIFS 関数を試せます。条件(F3)を「女」などに書き換えると、C13・D13 の最小値が変わります。練習用ファイルの「基本」シートと同じ表です。
複数の条件・「以上」の条件で最小値を求める
=MINIFS(C3:C12,B3:B12,"男",D3:D12,">=70")

| 条件 | 式 | 最小の身長 |
|---|---|---|
| 男 | =MINIFS(C3:C12,B3:B12,"男") | 168 |
| 男・体重70kg以上 | =MINIFS(C3:C12,B3:B12,"男",D3:D12,">=70") | 169 |
| 身長170cm以上 | =MINIFS(C3:C12,C3:C12,">=170") | 172 |
| (最大)男 | =MAXIFS(C3:C12,B3:B12,"男") | 198 |
条件を2つにすると、「男」かつ「体重 70kg 以上」の人だけが対象になり、168cm の D さん(52kg)が外れて 169 になりました(②)。「以上」「以下」は ">=70" のように記号と数値を ” で囲みます。最大値は同じ書き方の MAXIFS で求められます(MAXIFS関数)。
0 を除いた最小値を求める
売上がまだ入っていない店舗が 0 になっていると、MIN の結果は 0 になってしまいます。最小値の範囲と条件の範囲を同じにして、条件を ">0" にすると、0 を除いた最小値になります。
=MINIFS(B2:B6,B2:B6,">0")

MIN では 0(②)、MINIFS で 0 を除くと南店の 95 でした(③)。その店舗名は =XLOOKUP(E2,B2:B6,A2:A6) で取り出しています(最大値と最小値の差を求める方法)。
よくある間違い

| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| 0 になる | 条件に合う行が1つも無い(エラーにはならない) | 条件のつづりや範囲を確かめる。COUNTIFS で件数も確かめる。 |
| #VALUE! になる | 最小値の範囲と条件の範囲の大きさが違う | 2つの範囲を同じ行数にする。 |
| #NAME? になる | MINIFS が使えない Excel(2016 以前) | MIN と IF を組み合わせた式で代用する。 |
試したところ、いない「不明」を条件にすると 0 でした(①)。本当の最小値が 0 なのか、該当者がいないのか見分けられないので注意します。範囲を C3:C12 と B3:B11 のようにずらすと #VALUE! です(②)。=MIN(IF(B3:B12="男",C3:C12)) でも同じ 168 になりました(③)。Excel 2019 より前では、この式を配列数式(Ctrl+Shift+Enter)として入力します。
よくある質問
最小値の人の名前を知りたいときは?
MINIFS の結果と条件を組み合わせて FILTER で取り出します。=FILTER(A3:A12,(B3:B12="男")*(C3:C12=MINIFS(C3:C12,B3:B12,"男"))) のように書きます(FILTER関数の使い方)。
条件に合う平均・合計・件数は?
AVERAGEIFS・SUMIFS・COUNTIFS を使います。書き方は MINIFS とほぼ同じです(SUMIFS・COUNTIFS・AVERAGEIFSの使い方)。
