Excel関数 逆引き集 | 条件付き最小値 → MINIFS

Excel VBA Excel
スポンサーリンク

概要

「田中さんの売上の中で一番小さい金額は?」
「東京支店で一番小さい受注額は?」
「2024年の中で、商品Aの最小売上はいくら?」

こういう “条件付きで最小値を知りたい” ときに使うのが MINIFS 関数です。

MINIFS は、
「複数の条件をすべて満たすデータだけ」に絞り込み、
その中から 最小値だけを取り出してくれる関数 です。

SUMIFS(条件付き合計)、AVERAGEIFS(条件付き平均)、MAXIFS(条件付き最大)と並ぶ「条件付き集計」の一員です。


MINIFS の基本(書式と考え方)

書式と動き

MINIFS の基本形はこうです。

=MINIFS(最小値範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], …)

最初の引数は「最小値を取りたい範囲」です。
その後に「条件範囲」「条件」をセットでいくつでも追加していきます。

イメージとしては次の流れです。

最初に、条件範囲1 と 条件1 で絞り込む。
次に、条件範囲2 と 条件2 でもう一段絞り込む。
すべての条件を満たした行に対応する「最小値範囲」の中から、一番小さい値を返す。

つまり、条件はすべて AND(かつ)条件 です。


文字条件での MINIFS(担当者・支店ごとの最小値)

担当者ごとの最小売上を求める

前提の表のイメージ:

A列:担当者
B列:売上

「担当者が田中の売上のうち、一番小さい金額」を求めたいときは、次のように書きます。

=MINIFS(B2:B100, A2:A100, "田中")

B2:B100 が「最小値を取りたい範囲(売上)」です。
A2:A100 で「田中」の行だけに絞り、その行の B 列の中から最小値を返します。

支店ごとの最小売上(東京支店だけ)

A列:支店名
C列:売上

「東京支店の最小売上」を出したいときは、こうです。

=MINIFS(C2:C100, A2:A100, "東京")

A列が「東京」の行だけを対象に、C列の最小値を返します。


数値条件での MINIFS(しきい値+最小値)

一定以上の中で最小値を出す

B列:売上

「売上が 100,000 以上の行の中で、最も小さい売上」を知りたい場合。

=MINIFS(B2:B100, B2:B100, ">=100000")

B2:B100 の中から「100,000 以上」のセルだけを候補にして、その中で一番小さい値を返します。

不等号付きの条件(”>=100000″ など)は、必ず文字列として “” で囲むのがポイントです。

日付の範囲で最小値(2024年の最小売上)

A列:日付
B列:売上

「2024年の売上の中で一番小さい金額」を出したいときは、同じ日付列に上下の条件をかけます。

=MINIFS(B2:B100,
        A2:A100, ">=2024/1/1",
        A2:A100, "<=2024/12/31")

A列が 2024/1/1 以上、かつ 2024/12/31 以下の行だけを対象に、B列の最小値を返します。


文字+数値の複合条件で最小値を出す

担当者 × 支店 × 売上条件の最小値

A列:担当者
B列:支店
C列:売上

「担当者が田中 かつ 支店が東京 かつ 売上が 50,000 以上」の中で、一番小さい売上を知りたい場合は次のようにします。

=MINIFS(C2:C100,
        A2:A100, "田中",
        B2:B100, "東京",
        C2:C100, ">=50000")

すべての条件を満たす行の C列だけを候補にし、その中から最小値を返します。

部分一致(“田中”を含む担当者)の最小値

担当者に「田中太郎」「山田田中」などがいて、「名前に“田中”を含む人の最小売上」を出したい場合は、ワイルドカード * を使います。

=MINIFS(C2:C100, A2:A100, "*田中*")

田中” は「前後に何か文字がついていてもよいので、田中を含む文字列すべて」という意味です。


セル参照と組み合わせる MINIFS(柔軟に条件を変える)

担当者名をセルから指定する

A列:担当者
C列:売上
E2:担当者名(入力セル)

「E2 に入力された担当者の、最小売上」を求める式はこうなります。

=MINIFS(C2:C100, A2:A100, E2)

E2 の名前を変えるだけで、任意の担当者について「一番小さい売上」を見ることができます。

数値条件+セル参照でしきい値を変える

B列:売上
E2:基準金額

「売上が E2 以上の行だけの“最小売上”」を求めたいとき。

=MINIFS(B2:B100, B2:B100, ">="&E2)

“>=” と E2 を & で結合することで、
たとえば E2 が 100000 なら “>=100000” という条件文字列ができます。


MINIFS を使うときの注意点・コツ

最小値範囲と条件範囲の行数は必ず揃える

例えば、最小値範囲を C2:C100 にしているのに、条件範囲を A3:A101 と書いてしまうと、
1行ずれたデータを見てしまいます。

SUMIFS や AVERAGEIFS、MAXIFS と同じく、
すべての範囲の「開始行・終了行が揃っているか」を必ず確認してください。

条件はすべて AND 条件(かつ)

MINIFS に書いた条件は、すべて「かつ」で結びつきます。

担当者が田中 かつ 支店が東京 かつ 売上が 5万以上

のような「複数条件をすべて満たす」データだけが対象になります。

「A または B の最小値」といった OR 条件にしたいときは、
MINIFS を2つ書いて MIN でくるむ、などの工夫が必要です。

例として、「支店が東京 または 大阪の最小売上」を出したいなら、次のようなイメージです(考え方だけ)。

=MIN(
  MINIFS(C2:C100, A2:A100, "東京"),
  MINIFS(C2:C100, A2:A100, "大阪")
)

該当データが1件もないときはエラーになる

条件が厳しすぎて1行もヒットしないと、MINIFS はエラー(#DIV/0! ではなく #N/A 系)になります。
実務では IFERROR と組み合わせて「該当なし」と表示することが多いです。

=IFERROR(
  MINIFS(C2:C100, A2:A100, "田中"),
  "該当データなし"
)

例題

問題1

A2:A100 に担当者名、B2:B100 に売上が入っています。
「担当者が田中」の売上の中で、最小値を求める MINIFS の式を書いてください。

=MINIFS(B2:B100, A2:A100, "田中")

問題2

A2:A100 に支店名、C2:C100 に売上が入っています。
「支店が東京」の売上の中で、最小値を求める式を書いてください。

=MINIFS(C2:C100, A2:A100, "東京")

問題3

A2:A100 に日付、B2:B100 に売上が入っています。
「2024/1/1 以上 かつ 2024/12/31 以下」の日付の行の中で、売上の最小値を求める式を書いてください。

=MINIFS(B2:B100,
        A2:A100, ">=2024/1/1",
        A2:A100, "<=2024/12/31")

問題4

A2:A100 に担当者名、B2:B100 に支店名、C2:C100 に売上が入っています。
「担当者が田中 かつ 支店が東京」の売上の中で、最小値を求める式を書いてください。

=MINIFS(C2:C100,
        A2:A100, "田中",
        B2:B100, "東京")

問題5

B2:B100 に売上が入っており、E2 に基準金額が入力されています。
「売上が E2 の値以上」の行の中で最小の売上を求める MINIFS の式を書いてください。

=MINIFS(B2:B100, B2:B100, ">="&E2)

まとめ

MINIFS は、

複数の条件を同時に満たすデータだけを対象にして、
その中から 最小値だけを返す 関数です。

型はこう覚えておくと、そのまま使い回せます。

=MINIFS(最小値範囲,
        条件範囲1, 条件1,
        条件範囲2, 条件2, …)

SUMIFS・AVERAGEIFS・MAXIFS とセットで身につけると、
「誰の・どの支店の・どの期間の・どんな条件の最小値か?」を
Excel にそのまま聞けるようになります。

タイトルとURLをコピーしました