ADVERTISEMENT

【Googleスプレッドシート】MAXIFS/MINIFSで条件付き最大値!複数条件での集計

【Googleスプレッドシート】MAXIFS/MINIFSで条件付き最大値!複数条件での集計
🛡️ 超解決

データの中で特定の条件を満たす最大値や最小値を求めたい場面は多いですよね。商品カテゴリ別の最高売上額や、特定月の最低気温など、条件付きの集計が必要なケースはたくさんあります。この記事では、GoogleスプレッドシートのMAXIFS関数とMINIFS関数を使って、複数条件にも対応した条件付き最大値・最小値を簡単に求める方法を解説します。

これらの関数を使えば、複雑な数式を組む必要がなくなり、データ集計が劇的に効率化します。具体的な構文や実践的な例を交えて、初心者の方でも迷わず使えるようになります。

【要点】MAXIFSとMINIFSで条件付き集計をマスター

  • =MAXIFS(最大値範囲, 条件範囲1, 条件1, …): 指定した条件に合致する行の中から最大値を返します。
  • =MINIFS(最小値範囲, 条件範囲1, 条件1, …): 条件に合致する行の中から最小値を返します。
  • 複数条件の指定: 条件範囲と条件のペアを追加することで、AND条件で複数の条件を同時に指定できます。

ADVERTISEMENT

MAXIFS関数とMINIFS関数の概要と仕組み

MAXIFS関数は、複数の条件を満たすセルの中から最大値を返す関数です。MINIFS関数は、その最小値バージョンです。どちらもExcel 2019以降で導入され、Googleスプレッドシートでも同様に利用できます。これらの関数は、従来のMAX関数やMIN関数をIF関数で配列処理するよりも簡潔で高速です。最大値や最小値を求める範囲(最大値範囲)と、条件をチェックする範囲(条件範囲)を指定します。条件範囲は最大値範囲と同じ行数である必要があります。条件には数値、文字列、セル参照、論理式(“>=”&B1など)を使えます。

MAXIFSとMINIFSの基本的な使い方

まずは単一条件から練習しましょう。以下のような売上データがあるとします。A列に商品名、B列に売上金額が入力されています。ここから「りんご」の最大売上を求めます。

単一条件の最大値を求める

  1. セルに数式を入力する
    結果を表示したいセルを選択し、次の数式を入力します。
    =MAXIFS(B2:B10, A2:A10, "りんご")
    これで、A列が「りんご」であるB列の値の中から最大値が返ります。
  2. 条件にセル参照を使う
    条件を直接入力する代わりに、別のセルに条件を書き、そのセルを参照することもできます。たとえばC1セルに「りんご」と入力し、数式を=MAXIFS(B2:B10, A2:A10, C1)とします。これで条件を変更しやすくなります。

単一条件の最小値を求める

MINIFSも同様です。「みかん」の最小売上を求めるには、次の数式を使います。
=MINIFS(B2:B10, A2:A10, "みかん")
条件範囲と条件の指定方法はMAXIFSと同じです。

複数条件での集計方法

複数の条件を組み合わせることで、より細かい集計が可能です。たとえば、商品名と月の2つの条件で売上最大値を求めます。

2つの条件(AND条件)で最大値を求める

  1. データを準備する
    A列に商品名、B列に月(1月~12月の数値)、C列に売上があるとします。このデータ範囲を行1~行100とします。
  2. 数式を入力する
    最大値を表示したいセルに次の数式を入力します。
    =MAXIFS(C2:C100, A2:A100, "りんご", B2:B100, 1)
    これは、商品が「りんご」で月が「1月」の売上の最大値を返します。
  3. 条件に論理式を使う
    数値条件を不等式で指定することもできます。たとえば売上が500以上の最小値を求めたい場合は、次のようにします。
    =MINIFS(B2:B100, B2:B100, ">=500")
    条件範囲と最大値範囲が同じ場合でも問題ありません。

3つ以上の条件を指定する

条件範囲と条件のペアは最大で126個まで追加できます(制限は環境によります)。たとえば商品名、月、販売店の3条件を指定するには、以下のように記述します。
=MAXIFS(D2:D100, A2:A100, "りんご", B2:B100, 1, C2:C100, "東京店")
このように、条件ペアをどんどん追加します。引数の順序は、最大値範囲の後は条件範囲1、条件1、条件範囲2、条件2…となります。

ADVERTISEMENT

MAXIFS / MINIFS使用時の注意点とよくあるトラブル

これらの関数は非常に便利ですが、いくつかの注意点があります。知っておかないと意図しない結果になることがあります。

条件範囲と最大値範囲のサイズが異なる

すべての条件範囲と最大値範囲は同じ行数でなければなりません。範囲がずれているとエラーになります。たとえば最大値範囲をB2:B10、条件範囲をA2:A11とするとエラーです。必ず開始行と終了行を合わせてください。

条件に空白セルが含まれる

条件範囲に空白セルがある場合、その行は条件に一致しないとみなされます。空白セルを条件にしたい場合は、条件として空文字””を指定します。たとえば、=MAXIFS(B2:B10, A2:A10, "")でA列が空白の行の最大値を求められます。

数式の条件を引用符で囲むのを忘れる

文字列の条件は必ずダブルクォーテーションで囲みます。セル参照の場合は囲みません。論理式の場合は、全体を引用符で囲み、&で連結します。例えば、=MAXIFS(B2:B10, A2:A10, ">=50")ではなく、=MAXIFS(B2:B10, A2:A10, ">="&E1)のように書きます。

日付や時刻の条件指定

日付を条件にする場合は、DATE関数を使って指定するか、日付シリアル値を直接使います。文字列で”2024/1/1″と書くと正しく認識されない可能性があります。次のように書きます。
=MINIFS(C2:C100, A2:A100, DATE(2024,1,1))
または、日付が入力されたセルを参照します。

ワイルドカードを使う

条件にワイルドカード文字(? * ~)を使うことができます。?は任意の1文字、*は任意の文字列を表します。たとえば、商品名が「り」で始まる最大値を求めるには、=MAXIFS(B2:B10, A2:A10, "り*")とします。ワイルドカードを文字として扱いたい場合は、前に~を付けます。

MAXIFS関数とMINIFS関数の比較表

関数 目的 基本的な構文 戻り値の条件
MAXIFS 条件を満たすセルの最大値を返す =MAXIFS(最大値範囲, 条件範囲1, 条件1, …) すべての条件を満たす行の最大値
MINIFS 条件を満たすセルの最小値を返す =MINIFS(最小値範囲, 条件範囲1, 条件1, …) すべての条件を満たす行の最小値
MAX+IF(配列) 古い方法(配列数式) =MAX(IF(条件, 値範囲)) Ctrl+Shift+Enterが必要、複数条件は面倒

MAXIFSとMINIFSは、同じ構文で「最大」か「最小」かの違いだけです。MAX+IFの配列数式よりも直感的でエラーが少ないです。

まとめ

MAXIFS関数とMINIFS関数を使うことで、複数の条件を指定して簡単に最大値や最小値を抽出できます。従来の配列数式やフィルタリングを使う手間が省けるため、データ分析の効率が格段に向上します。特に、複数の条件をANDで組み合わせられる点が最大の利点です。売上管理や在庫分析など、さまざまなシーンで活用できます。次は、これらの関数とIF関数やARRAYFORMULAを組み合わせた高度な集計にも挑戦してみてください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。