Excel 複数の条件に一致するセルの中の最小値を取得(MINIFS関数)

2020年5月17日

複数の条件を満たすセルの中で、

最小の値を表示する関数でMIN関数の拡張版関数です。

COUNTIFS関数などとは違い単独条件の関数(MINIF)は存在しません。

(IFSがあればIFは不要と判断された模様)

Excel2016より前のバージョンでは

この関数は存在せず、またMINIF関数もないため

IF関数を使用した中間セルを作るか配列数式を使用する必要があります。

この記事ではMINIFS関数の仕様例を紹介します。

仕様

=MINIFS(最小範囲,条件範囲1,検索条件1 …省略… 条件範囲127,検索条件127 )
引数省略時の値説明
最小範囲省略不可集計対象となるセル範囲を指定。
最小範囲内で数値以外のセルは対象外。
条件範囲1~1271のみ省略不可条件の評価対象となるセル範囲を指定。
条件1~1271のみ省略不可集計対象に含める条件を指定。
各引数の詳細

使用例

例えば商品の中で特定のカテゴリであり、かつセール対象となっている中で

最小の売上金額を取得するようなケースに使用することが出来ます。

またセール対象且つ特定の単価以上の最小売上金額といった

大小比較が条件となる場合にも使用可能です。

集計元表

下記の表を参照するMINIFSを例示します。

集計元表
集計元表

特定の文字列に一致する中での最小値を取得する例

C列の種類に一致する、かつセール対象の中で最小の売上金額を

集計元表から検索し取得する例です。

D列がMINIFS関数を使った結果です。

結果表
結果表

MINIFS関数に下記のようにセル指定します。

引数設定例
最小範囲集計元表の金額のセル範囲(絶対参照)
条件範囲1集計元表の種類のセル範囲(絶対参照)
条件1結果表の種類のセル(D16ではC16)
条件範囲2集計元表のセール対象のセル範囲(絶対参照)
条件2“●"

条件範囲1~2と最小範囲はコピーで位置が変わっても参照先の一覧表は変わらないため、

コピーしても固定されるよう絶対参照で指定します。

今回は完全一致させていますが、ワイルドカードを用いて部分一致させることも可能です。

数値の閾値を設定して最小値を取得する例

特定の単価以上で且つセール対象の中で最大の最小金額を取得する例です。

D列がMINIFS関数を使った結果です。

結果表
結果表

条件に比較演算子を指定して、特定数値以上や以下などの条件を設定することが可能です。

ここの例では1行目は単価200円以上のセール対象の最小金額、

2行目は単価300円以上のセール対象の最小金額を出しています。

なお比較演算子は"(ダブルコーテーション)で囲み、文字列として扱う必要があります。

&(アンパサンド)は文字列連結演算子です。

スピルを利用する方法とメリット

D21の「">="&C21」は結果として">=200″と処理されます。

Office365やExcel2019以降ではスピルという形式で記述可能です。

これは複数セルに数式をコピーする場合に便利な機能です。

スピルの利用には条件を複数セルの範囲で指定します。

スピルでMINIFS関数を記述する例(E16セル)
スピルでMINIFS関数を記述する例(E16セル)

数式を入力するのは最初の一つのセルですが、

引数3と5で指定した高さ分、数式がセルのコピーなしで自動拡大されます。

E16に指定したMINIFS関数がE19まで自動拡大
E16に指定したMINIFS関数がE19まで自動拡大

スピルを利用することで今回の例では、

E16セルに入力するだけでよいため(E17以降にコピーペーストが不要)

以下のメリットがあります。

  • 入力の手間が少ない(数式のセルが多いほど効果が大きい)
  • 数式を編集した時、コピー忘れのリスクがない(最初のセルを更新すると全セルに反映)
  • 絶対参照が不要
  • 途中に行を追加した場合、数式のコピー&ペーストが不要。行削除でも壊れにくい。

関連記事

SUMIF関数やCOUNTIF関数で「以上」「以下」を指定する方法

VLOOKUP関数で集計(合計・平均・個数など)を取得したい場合の対処方法

IF系関数の使い方・活用方法の記事一覧

関数の仕様と使い方の記事一覧