ExcelのMINIFS関数の使い方|条件付き最小値を解説

スポンサーリンク

「営業部で一番低い売上はいくらだろう」「総務部の最小コストを調べたい」。条件を絞って最小値を知りたい場面、Excelの業務でよく出てきますよね。

MIN関数なら範囲全体の最小値を出せます。でも部署別や期間別に絞り込むことはできません。

そんなときに使うのがMINIFS関数です。この記事では基本の書き方から複数条件やワイルドカードの応用パターンまで解説します。「結果が0になる」ときの対処法もカバーしています。

この記事では、次のサンプルデータを使って解説を進めます。

 A列(社員名)B列(部署)C列(月)D列(売上)
2行目田中営業部4月850,000
3行目鈴木営業部4月620,000
4行目佐藤総務部4月480,000
5行目高橋営業部5月730,000
6行目伊藤総務部5月510,000
7行目渡辺営業部5月0
8行目山本総務部6月390,000
9行目中村営業部6月920,000

MINIFS関数とは?読み方と基本の仕組み

MINIFS関数は、条件を満たすデータだけに絞って最小値を返す関数です。

読み方は「ミニイフエス関数」です。MIN(最小値)+ IF(もし)+ S(複数形)で、「複数のもしで最小値を求める」という意味になっています。

サンプルデータで言えば、MINIFS関数を使うと「営業部だけの最小売上」を一発で取り出せます。フィルターで絞り込んでからMIN関数を使う手間がなくなりますよ。

対応バージョンはExcel 2019以降とMicrosoft 365です。Excel Web AppおよびGoogleスプレッドシートでも同じ書き方で使えます。

NOTE

Excel 2016以前をお使いの場合は、配列数式 =MIN(IF(条件範囲=条件, 最小範囲)) をCtrl+Shift+Enterで入力する方法で代用できます。

入力出力
最小値を求めたい範囲 + 条件(最大126組)条件を満たす行の中で一番小さい数値(1つ)

MINIFS関数の書き方(構文と引数)

基本構文

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

引数の説明

引数必須/省略可説明
最小範囲必須最小値を求めたい数値が入っている範囲
条件範囲1必須1つ目の条件を判定する範囲
条件1必須1つ目の条件(例: “営業部”)
条件範囲2省略可2つ目の条件を判定する範囲
条件2省略可2つ目の条件

条件のペア(条件範囲と条件)は最大126組まで追加できます。条件はすべてAND条件(かつ)で評価されます。

大事なポイントが2つあります。

  • 最小範囲が第1引数にくること。SUMIFS関数MAXIFS関数と同じ順番です
  • 最小範囲と条件範囲のサイズを揃えること。行数が異なると #VALUE! エラーになります

MINIFS関数の基本的な使い方

結論から言うと、最小範囲と条件のペアを指定するだけです。

サンプルデータで、営業部の最小売上を求める式はこちらです。

=MINIFS(D2:D9, B2:B9, "営業部")

B列が「営業部」の行だけに絞り、D列の中で最小の数値を返します。結果は 0(渡辺の売上)です。

「あれ、0が返ってきた」と思った方もいるかもしれません。これはデータに0が含まれているためです。0を除外したい場合の書き方は、後ほど「パターン4」で詳しく解説します。

条件にはセル参照も使えます。F1セルに部署名を入力しておけば、ドロップダウンリストで切り替えられます。

=MINIFS(D2:D9, B2:B9, F1)

F1の値を「営業部」から「総務部」に変えるだけで、結果が自動的に切り替わります。集計レポートを作るときに便利ですよ。

条件に比較演算子を使う

「売上が50万以下」のように数値条件を指定する場合は、比較演算子を文字列として渡します。

=MINIFS(D2:D9, D2:D9, ">=500000")

使える比較演算子は次のとおりです。

演算子意味記述例
=等しい"=100"
<>等しくない"<>0"
>より大きい">500000"
>=以上">=500000"
<より小さい"<1000"
<=以下"<=1000"

セル参照と組み合わせる場合は、演算子とセルを & で結合します。

=MINIFS(D2:D9, D2:D9, ">="&F1)

F1セルに基準値を入れておけば、後から自由に変更できます。

MINIFS関数の実務活用パターン

基本の使い方がわかったところで、実務でよく使われる応用パターンを見ていきましょう。パターン3(日付の期間指定)のみ別の列構成で説明します。それ以外はサンプルデータを使って解説します。

パターン1: 複数条件で最小値を求める

「営業部」かつ「4月」のデータだけに絞って最小売上を求めます。条件のペアを追加するだけでOKです。

=MINIFS(D2:D9, B2:B9, "営業部", C2:C9, "4月")

B列が「営業部」かつC列が「4月」の行だけを対象に、D列の最小値を返します。結果は 620,000(鈴木の売上)です。

3つ以上の条件も同じ要領で追加できます。条件範囲と条件のペアを続けて書くだけです。

パターン2: ワイルドカードで部分一致

社員名に「藤」を含む人だけを対象にしたいときは、ワイルドカード * を使います。

=MINIFS(D2:D9, A2:A9, "*藤*")

「佐藤」と「伊藤」がマッチし、それぞれの売上480,000と510,000のうち最小値 480,000(佐藤)を返します。

ワイルドカード意味使用例
*任意の文字列(0文字以上)""
?任意の1文字"?月"

? は1文字だけを表します。「?月」なら「4月」「5月」にはマッチしますが、「10月」にはマッチしません。

TIP

ワイルドカードの使い方はCOUNTIF関数SUMIFS関数と共通です。条件付き関数をまとめて覚えると効率が良いですよ。

パターン3: 日付の期間指定で最小値を求める

「2025年4月1日から2025年6月30日まで」のように期間を絞って最小値を求める書き方です。ここでは日付データがA列、売上がB列に入っている場合を想定します。

=MINIFS(B2:B100, A2:A100, ">="&DATE(2025,4,1), A2:A100, "<="&DATE(2025,6,30))

同じ条件範囲(A列)に対して「以上」と「以下」の2条件を指定します。これで期間の絞り込みができます。

DATE関数を使うと、日付の指定ミスを防げます。">=2025/4/1" と文字列で書くこともできますが、DATE関数のほうが確実です。

パターン4: 「0以外」の最小値を求める

MINIFS関数で一番よくある困りごとがこれです。データに0が混ざっていると、意図せず0が最小値として返ってきます。サンプルデータでは渡辺の売上が0になっています。

=MINIFS(D2:D9, D2:D9, "<>0")

最小範囲と条件範囲に同じ範囲を指定し、条件を "<>0" にします。0以外のデータだけを対象に最小値を返します。結果は 390,000(山本の売上)です。

部署の絞り込みと組み合わせることもできます。

=MINIFS(D2:D9, B2:B9, "営業部", D2:D9, "<>0")

この式なら「営業部で0以外の最小売上」が求められます。結果は 620,000(鈴木)です。

TIP

MAXIFS関数では0があっても最大値に影響しないケースがほとんどです。一方、MINIFS関数では0が意図しない最小値になりやすいため、この "<>0" 条件はMINIFS関数を使うときの定番テクニックとして覚えておいてください。

パターン5: INDEX+MINIFS関数で最小値の行データを取得する

「営業部の最小売上はわかったけど、それは誰の売上?」というときに使うパターンです。

=INDEX(A2:A9, MATCH(MINIFS(D2:D9, B2:B9, "営業部"), D2:D9, 0))

処理の流れはこうなります。

  1. MINIFS関数で営業部の最小売上(0)を求める
  2. MATCH関数でその値がD列の何行目にあるかを探す
  3. INDEX関数でA列の該当行を返す

結果は 渡辺 です。ちょっとむずかしく見えますが、「最小値を求める → 位置を探す → 対応データを返す」の3ステップです。

0を除外して「実質的な最小売上の担当者」を調べたい場合は、MINIFS関数の部分に "<>0" 条件を加えます。

=INDEX(A2:A9, MATCH(MINIFS(D2:D9, B2:B9, "営業部", D2:D9, "<>0"), D2:D9, 0))

「営業部」かつ「0以外」の条件を追加すると、結果は 鈴木(620,000)になります。

よくあるエラーと対処法

MINIFS関数で「思った結果が出ない」ときの原因と対処法を整理しました。

症状原因解決策
結果が 0 になるデータに0が含まれている"<>0" 条件を追加して0を除外
結果が 0 になる条件に一致するデータがない条件の文字列を確認(全角/半角、前後のスペース)
結果が 0 になる数値に見える文字列が入っているISNUMBER関数で確認し、VALUE関数で変換
#VALUE! エラー範囲のサイズ不一致すべての範囲の行数を確認して揃える
#NAME? エラーExcel 2016以前で使用しているExcel 2019以降にアップグレード、または配列数式で代用

結果が「0」になるときの対処法

MINIFS関数で一番多いトラブルがこれです。原因は大きく3つあります。

1. データに0が含まれている

最も多いパターンです。売上0や未入力セルが0として扱われ、それが最小値になります。対処法はパターン4で紹介した "<>0" 条件の追加です。

=MINIFS(D2:D9, B2:B9, "営業部", D2:D9, "<>0")

2. 条件に一致するデータがない

条件の文字列が全角/半角で違っていたり、前後に見えないスペースが入っていたりすることがあります。TRIM関数で空白を除去してから比較すると解決することが多いですよ。

3. 数値に見えて中身が文字列

CSVファイルの取り込み後に起きやすい問題です。

=ISNUMBER(D2)

TRUE なら数値、FALSE なら文字列です。文字列だった場合は、データタブの「区切り位置」機能で変換するか、VALUE関数を使って数値に変換してみてください。

#VALUE! エラーが出るとき

最小範囲と条件範囲の行数が合っていないときに出ます。たとえば最小範囲が D2:D9 なのに条件範囲が B2:B5 だと #VALUE! になります。

すべての範囲の開始行と終了行を揃えれば解決します。

似た関数との違い・使い分け

MINIFS関数に関連する条件付き関数をまとめて比較します。

関数機能使い分けのポイント
MIN最小値を返す条件なしで全体の最小値を求めるとき
MINIFS条件付きの最小値部署別・月別など条件で絞りたいとき
MAXIFS条件付きの最大値条件を絞って最大値を求めたいとき
SUMIFS条件付きの合計条件を絞って合計を求めたいとき
COUNTIFS条件付きの件数条件を絞って件数を数えたいとき
AVERAGEIFS条件付きの平均条件を絞って平均を求めたいとき
SMALLN番目に小さい値下から2位・3位の値を取得したいとき
LARGEN番目に大きい値上から数えたいとき

MIN関数との違い

MIN関数は範囲全体から最小値を返します。条件指定はできません。「全体の最小値」ならMIN関数、「条件を絞った最小値」ならMINIFS関数です。

=MIN(D2:D9)
=MINIFS(D2:D9, B2:B9, "営業部")

上の式はD列全体の最小値、下の式は営業部だけの最小値です。使い分けはシンプルですよ。

MAXIFS関数との違い

MAXIFS関数は構文がMINIFS関数と完全に同じで、方向が逆なだけです。

=MINIFS(D2:D9, B2:B9, "営業部")
=MAXIFS(D2:D9, B2:B9, "営業部")

営業部の「最小売上」と「最大売上」をセットで出すと、データの振れ幅がすぐにわかります。

SUMIFS関数との違い

SUMIFS関数は条件付きの「合計」を返す関数です。MINIFS関数は条件付きの「最小値」を返します。

引数の構造は同じ(対象範囲が第1引数)なので、関数名を変えるだけで切り替えられます。

=SUMIFS(D2:D9, B2:B9, "営業部")
=MINIFS(D2:D9, B2:B9, "営業部")

「営業部の売上合計」と「営業部の最小売上」を並べて比較すると、低パフォーマンスの把握に役立ちますよ。

まとめ

  • MINIFS関数は条件を満たすデータだけに絞って最小値を返す関数
  • 書き方は =MINIFS(最小範囲, 条件範囲1, 条件1, ...) で、条件は最大126組まで指定できる
  • 比較演算子(>=<>など)やワイルドカード(*?)も使える
  • 日付の期間指定はDATE関数と組み合わせると確実
  • 「0が返る」ときは "<>0" 条件の追加がMINIFS関数の定番テクニック
  • データ型の確認にはISNUMBER関数を使う
  • 条件なしの最小値はMIN関数、条件付きの最大値はMAXIFS関数を使う
  • Excel 2019以降またはMicrosoft 365で利用可能

MINIFS関数は条件付き集計関数の中でも、「0が返る問題」をきちんと理解しておくことが大切な関数です。まずは =MINIFS(範囲, 条件範囲, 条件) の基本形から試してみてください。MAXIFS関数SUMIFS関数もセットで覚えると、条件付きの集計がぐっと効率的になりますよ。


この記事で紹介した関数・関連記事

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