MINIFS関数の使い方|エクセルで条件に合う最小値を求める・複数条件・0を除く

MINIFS関数の使い方|条件に合う最小値を求める

MINIFS関数は、条件に合う行の中で最小値を求める関数です。「男性の中でいちばん低い身長」「東店の売上の最低額」「0 を除いた最小値」のように、MIN 関数に条件を付けたいときに使います。条件はいくつでも指定できます。

この記事では、MINIFS 関数の書き方から、複数の条件、0 を除いた最小値の求め方、条件に合う行が無いときに 0 になる注意点、古い Excel での代わりの式まで、実際の Excel の画面で説明します。

練習用Excelファイル(無料ダウンロード)
「基本」「複数の条件」「0を除く」「よくある間違い」の4シートです。「基本」は記事内のツールと同じ表です。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り
目次

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 キーを押します❶。

C13 に入れる式
=MINIFS(C3:C12,B3:B12,F3)
C3:C12 最小範囲(身長)B3:B12 条件範囲(性別)F3 条件(男)
ひとことで性別が「男」の人だけで、身長のいちばん小さい値を出す
式を分けて読むと(色は画像の枠と同じ)
最小範囲C3:C12
どこから最小値を探す?
→ 身長の列
条件範囲B3:B12
どこで条件を調べる?
→ 性別の列
条件F3
何と同じ行を選ぶ?
→ F3 に入れた「男」
自分の表で使うときは
紫に「最小値を出したい列」、青に「条件を調べる列」、オレンジに「条件」を入れ替えるだけです。例:部署(A 列)が「営業」の人の、売上(D 列)の最小=MINIFS(D2:D20,A2:A20,"営業")
  • 紫と青の範囲は、同じ行(ここでは 3〜12 行目)にそろえます。ずれると #VALUE! になります。
エクセルのMINIFS関数の式と、最小値を探す範囲・条件範囲・条件を色分けした画面
エクセルのMINIFS関数の式と、最小値を探す範囲・条件範囲・条件を色分けした画面

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

エクセルのMINIFS関数で、性別が男の8人の身長からいちばん低い168を求めたことを色で示した画面
エクセルのMINIFS関数で、性別が男の8人の身長からいちばん低い168を求めたことを色で示した画面

答えは 168 になりました❷。MINIFS は、次の順に計算しています。

  1. 性別の列(B3:B12)が「男」の行を選ぶ
    ⇒ 8 人(B・C・D・F・G・H・I・J さん)
  2. その 8 人の身長(C3:C12)から、いちばん小さい値を取り出す
    ⇒ D さんの 168
ヒント:条件をセルにしておくと切り替えが楽
D13 は同じ形の式で体重の最小(52)を求めています。F3 を「女」に書き換えると、女性の最小(身長 160・体重 52)に切り替わります。

まず動かしてみよう|この記事のサンプルをその場で試せます

ブラウザの上で MINIFS 関数を試せます。条件(F3)を「女」などに書き換えると、C13・D13 の最小値が変わります。練習用ファイルの「基本」シートと同じ表です。

複数の条件・「以上」の条件で最小値を求める

=MINIFS(C3:C12,B3:B12,"男",D3:D12,">=70")
エクセルのMINIFS関数で男性かつ体重70kg以上の最小の身長を求めた例
エクセルのMINIFS関数で男性かつ体重70kg以上の最小の身長を求めた例
条件式最小の身長
男=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")
エクセルのMINIFS関数で売上0の店舗を除いた最小値とその店舗名を求めた例
エクセルのMINIFS関数で売上0の店舗を除いた最小値とその店舗名を求めた例

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

よくある間違い

エクセルのMINIFS関数で条件に合う行が無いと0になり範囲の大きさが違うとVALUEエラーになる例
エクセルのMINIFS関数で条件に合う行が無いと0になり範囲の大きさが違うとVALUEエラーになる例
症状考えられる原因対処
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の使い方)。

練習用Excelファイル(無料ダウンロード)
この記事の例がすべて入った練習用のファイルです。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

あわせて読みたい:最大値・最小値の関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次