【Excel】MAXIFS・MINIFS関数で条件付き最大値・最小値を求める方法

【Excel】MAXIFS・MINIFS関数で条件付き最大値・最小値を求める方法
🛡️ 超解決

Excelで特定の条件を満たすデータの最大値や最小値を求めたい時がありますよね。例えば、特定の部署の最高売上や、特定の期間の最低気温を知りたい場合などです。しかし、条件が一つ増えるだけで、従来のMAX関数やMIN関数では対応できません。そこで本記事では、MAXIFS関数とMINIFS関数を使って、複数の条件を指定して最大値・最小値を求める方法を解説します。この記事を読めば、複雑な条件設定も簡単に行えるようになります。

MAXIFS関数とMINIFS関数は、Excel 2019およびMicrosoft 365のバージョンで追加された比較的新しい関数です。これらの関数を使うことで、従来の関数では煩雑だった条件付きの最大値・最小値の算出が、非常にシンプルに実行できるようになります。データ分析の効率が格段に向上するでしょう。

本記事では、MAXIFS関数とMINIFS関数の基本的な使い方から、具体的な活用例、そしてよくある疑問点までを網羅的に解説します。Excelでのデータ集計・分析スキルをさらに高めたい方は、ぜひ最後までご覧ください。

【要点】MAXIFS・MINIFS関数で条件付き最大値・最小値を求める方法

  • MAXIFS関数: 指定した条件に一致するセルの最大値を返します。
  • MINIFS関数: 指定した条件に一致するセルの最小値を返します。
  • 引数の順序: 条件範囲と条件を指定する順番が、MAX・MIN関数と異なります。

ADVERTISEMENT

目次

MAXIFS関数とMINIFS関数の概要

MAXIFS関数とMINIFS関数は、それぞれ「条件付きの最大値」と「条件付きの最小値」を求めるために設計された関数です。これらの関数が登場する以前は、MAX関数やMIN関数とIF関数を組み合わせた配列数式などを使う必要があり、数式の入力や理解が複雑でした。しかし、MAXIFS関数とMINIFS関数を使えば、これらの複雑な処理を1つの関数で完結できます。

これらの関数は、複数の条件を指定できる点が大きな特徴です。例えば、「東京」かつ「2023年」という条件を満たす売上の最大値を求める、といった高度な分析が可能になります。これは、データの中から特定の条件に合致する値だけを抽出し、その範囲での最大値・最小値を効率的に把握したい場合に非常に役立ちます。

MAXIFS関数とMINIFS関数は、Excel 2019、Excel for Microsoft 365、Excel for Mac 2019以降で利用可能です。Excel 2016以前のバージョンでは利用できないため、注意が必要です。もし古いバージョンのExcelを使用している場合は、IF関数とMAX関数・MIN関数を組み合わせた配列数式などの代替策を検討する必要があります。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

MAXIFS関数とMINIFS関数の基本的な使い方

MAXIFS関数とMINIFS関数の構文は非常によく似ています。それぞれの基本的な構文と、引数の意味について解説します。これらの構文を理解することが、関数の正確な使用の第一歩となります。

MAXIFS関数の構文と引数

MAXIFS関数の構文は以下の通りです。

MAXIFS(最大マ_範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], …)

各引数の意味は以下の通りです。

  • 最大_範囲: 最大値を求めたい数値が含まれるセル範囲を指定します。
  • 条件範囲1: 条件1を適用するセル範囲を指定します。
  • 条件1: 条件範囲1に適用する条件を指定します。数値、文字列、セル参照、比較演算子(例: “>100”)などが指定できます。
  • [条件範囲2, 条件2], …: 省略可能な引数で、最大で127個の条件範囲と条件のペアを指定できます。

重要なのは、最初に「最大値を求めたい範囲」を指定する点です。これは、MAX関数やMIN関数で単純に範囲を指定するのとは異なります。この引数を間違えると、意図した結果が得られなくなります。

MINIFS関数の構文と引数

MINIFS関数の構文はMAXIFS関数とほぼ同じで、最大_範囲が最小_範囲に変わるだけです。

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

各引数の意味は以下の通りです。

  • 最小_範囲: 最小値を求めたい数値が含まれるセル範囲を指定します。
  • 条件範囲1: 条件1を適用するセル範囲を指定します。
  • 条件1: 条件範囲1に適用する条件を指定します。
  • [条件範囲2, 条件2], …: 省略可能な引数で、最大で127個の条件範囲と条件のペアを指定できます。

MINIFS関数も、最初に「最小値を求めたい範囲」を指定する点に注意してください。

具体的な数式入力例

ここでは、具体的なデータを使ってMAXIFS関数とMINIFS関数の数式を入力してみましょう。例えば、以下のような売上データがあるとします。

A列: 地域 (東京、大阪、名古屋)

B列: 商品カテゴリ (A, B, C)

C列: 売上金額

例1: 東京の売上の中で、商品カテゴリAの最大売上を求める場合

数式: =MAXIFS(C2:C10, A2:A10, “東京”, B2:B10, “A”)

この数式では、C2からC10の範囲(売上金額)から、A2からA10の範囲(地域)が「東京」であり、かつB2からB10の範囲(商品カテゴリ)が「A」である行の最大値を返します。

例2: 大阪の売上の中で、商品カテゴリBの最小売上を求める場合

数式: =MINIFS(C2:C10, A2:A10, “大阪”, B2:B10, “B”)

この数式では、C2からC10の範囲(売上金額)から、A2からA10の範囲(地域)が「大阪」であり、かつB2からB10の範囲(商品カテゴリ)が「B」である行の最小値を返します。

条件範囲と条件のペアは、必要に応じて追加できます。例えば、さらに「担当者」という条件を追加したい場合は、以下のように記述します。

例3: 東京の売上の中で、商品カテゴリAかつ担当者が「山田」の最大売上を求める場合

数式: =MAXIFS(C2:C10, A2:A10, “東京”, B2:B10, “A”, D2:D10, “山田”)

D列に担当者名が入っていると仮定しています。

MAXIFS・MINIFS関数を使った応用例

MAXIFS関数とMINIFS関数は、単に最大値・最小値を求めるだけでなく、様々なデータ分析に応用できます。ここでは、いくつかの具体的な応用例を紹介します。

応用例1: 特定期間の最高・最低気温の算出

日ごとの最高気温・最低気温のデータがあり、特定の月や週の最高・最低気温を知りたい場合に活用できます。例えば、A列に日付、B列に気温が入っているとします。

数式例 (2023年1月1日~2023年1月31日の最高気温):

=MAXIFS(B2:B100, A2:A100, “>=2023/1/1”, A2:A100, “<=2023/1/31")

MINIFS関数を使えば、同様に最低気温も算出できます。

応用例2: 部署ごとの最高・最低給与の算出

従業員リストがあり、部署ごとの給与の最大値・最小値を把握したい場合にも便利です。A列に部署名、B列に給与が入っているとします。

数式例 (営業部の最高給与):

=MAXIFS(B2:B50, A2:A50, “営業部”)

MINIFS関数を使えば、営業部の最低給与も算出できます。

応用例3: 商品コードごとの最高・最低単価の算出

仕入れデータや販売データがあり、特定の商品コードの最高・最低単価を把握したい場合です。A列に商品コード、B列に単価が入っているとします。

数式例 (商品コード「ABC-123」の最高単価):

=MAXIFS(B2:B200, A2:A200, “ABC-123”)

MINIFS関数を使えば、商品コード「ABC-123」の最低単価も算出できます。

応用例4: 複合条件での最大・最小値算出

複数の条件を組み合わせて、より詳細な分析を行うことができます。例えば、ある店舗で、特定の商品が、特定期間に販売された最高・最低価格を知りたい場合などです。

データ例:

A列: 店舗名

B列: 商品名

C列: 販売日

D列: 販売価格

数式例 (「新宿店」で「商品X」が「2023年1月1日」以降に販売された最高価格):

=MAXIFS(D2:D100, A2:A100, “新宿店”, B2:B100, “商品X”, C2:C100, “>=2023/1/1”)

MINIFS関数を使えば、同様に最低価格も算出できます。このように、MAXIFS・MINIFS関数は、複雑な条件設定にも柔軟に対応できます。

ADVERTISEMENT

MAXIFS・MINIFS関数と他の関数との比較

MAXIFS関数・MINIFS関数は、似た機能を持つ他の関数と比較することで、その特徴がより明確になります。ここでは、MAX関数・MIN関数、SUMIFS関数・AVERAGEIFS関数との違いを解説します。

MAX関数・MIN関数との違い

MAX関数とMIN関数は、指定した範囲内のすべての数値の中から、最大値・最小値を返します。条件を指定する機能はありません。一方、MAXIFS関数とMINIFS関数は、指定した条件に合致するデータのみを対象に、最大値・最小値を返します。条件付きの分析が必要な場合は、MAXIFS・MINIFS関数が適しています。

SUMIFS関数・AVERAGEIFS関数との違い

SUMIFS関数は条件に合致するセルの合計値を、AVERAGEIFS関数は条件に合致するセルの平均値を返します。これらは、MAXIFS関数・MINIFS関数と同様に、複数の条件を指定できる関数です。MAXIFS・MINIFS関数は、これらの関数と組み合わせて使用することで、より詳細なデータ集計・分析が可能になります。例えば、特定の条件での最大値と合計値を同時に把握したい場合などに役立ちます。

MAXIFS・MINIFS関数でよくある質問と回答

MAXIFS関数とMINIFS関数を利用する上で、よくある疑問点とその回答をまとめました。これらの情報を参考に、関数の理解を深めてください。

Q1: 条件範囲と最大・最小値の範囲のサイズが異なるとどうなりますか?

A1: エラー値「#VALUE!」が返されます。各引数で指定するセル範囲は、同じ行数・同じ列数である必要があります。誤った範囲指定は、計算結果に影響を与えるため、注意深く確認してください。

Q2: 条件に一致するデータがない場合はどうなりますか?

A2: 条件に一致するデータが存在しない場合、MAXIFS関数は0を返します。MINIFS関数は、0を返します。これは、条件に合致するデータがないことを示すのではなく、計算結果が0になることを意味します。この挙動を理解しておかないと、データがないにも関わらず「0」という結果を見て、誤った解釈をしてしまう可能性があります。

Q3: 文字列を条件に指定する場合、大文字・小文字は区別されますか?

A3: いいえ、文字列の比較において大文字・小文字は区別されません。例えば、条件に「東京」と指定した場合、「東京」も「とうきょう」も(もしデータにあれば)一致するものとして扱われます。ただし、全角・半角の違いは区別されますので、入力時には注意が必要です。

Q4: 条件にセル参照を使うことはできますか?

A4: はい、可能です。例えば、条件をセルE1に入力しておき、数式で「E1」と指定することで、条件を簡単に変更できるようになります。これは、複数の条件を試行錯誤する場合などに非常に便利です。

例: =MAXIFS(C2:C10, A2:A10, E1)

Q5: 127個以上の条件を指定することはできますか?

A5: いいえ、MAXIFS関数およびMINIFS関数で指定できる条件の最大数は127個までです。それ以上の条件が必要な場合は、SUMPRODUCT関数など、別の関数やテクニックを検討する必要があります。

Q6: Excel 2016以前のバージョンでMAXIFS・MINIFS関数は使えますか?

A6: いいえ、Excel 2019以降のバージョンで利用可能な関数です。Excel 2016以前のバージョンでは、MAXIFS関数・MINIFS関数は認識されず、エラーとなります。その場合は、IF関数とMAX関数・MIN関数を組み合わせた配列数式などを使用する必要があります。

MAXIFS・MINIFS関数と配列数式(Excel 2016以前向け)

Excel 2019より前のバージョンをご利用の場合、MAXIFS関数やMINIFS関数は使えません。その代わりに、IF関数とMAX関数・MIN関数を組み合わせた配列数式を使用することで、同様の機能を実現できます。ここでは、その基本的な考え方と入力方法を解説します。

配列数式の考え方

配列数式は、複数のセル範囲を一度に処理する数式です。MAXIFS関数・MINIFS関数のように、複数の条件を満たすデータだけを抽出してから、その最大値・最小値を求める処理を、IF関数を使って実現します。IF関数で条件を満たすデータだけを抽出し、MAX関数・MIN関数でその中から最大値・最小値を見つけ出します。

MAX関数とIF関数を組み合わせた配列数式

例えば、先ほどの例で「東京」かつ「商品カテゴリA」の最大売上を求める場合、配列数式は以下のようになります。

数式: =MAX(IF((A2:A10=”東京”)*(B2:B10=”A”), C2:C10))

この数式を入力した後、Enterキーではなく、Ctrl + Shift + Enter キーを同時に押して確定する必要があります。これにより、数式が配列数式として認識され、波括弧 `{}` で囲まれます。

数式中の `*` は、AND条件(両方の条件を満たす)を表します。OR条件(どちらかの条件を満たす)の場合は `+` を使用します。

MIN関数とIF関数を組み合わせた配列数式

同様に、最小値を求める場合はMIN関数とIF関数を組み合わせます。

数式: =MIN(IF((A2:A10=”東京”)*(B2:B10=”A”), C2:C10))

こちらも、Ctrl + Shift + Enter キーで確定してください。

配列数式の注意点

配列数式は、MAXIFS関数・MINIFS関数よりも入力が複雑で、間違いやすいというデメリットがあります。また、大量のデータに対して使用すると、計算に時間がかかる場合があります。可能であれば、Excel 2019以降のバージョンにアップデートし、MAXIFS関数・MINIFS関数を利用することをおすすめします。

また、配列数式が正しく入力されているかどうかは、数式バーに波括弧 `{}` が表示されているかで判断できます。もし波括弧が表示されていない場合は、再度Ctrl + Shift + Enterで確定し直してください。

機能 MAXIFS / MINIFS関数 (Excel 2019以降) MAX / MIN + IF関数 (配列数式, Excel 2016以前)
構文の簡潔さ 非常にシンプルで分かりやすい 複雑で入力ミスしやすい
条件数 最大127個 数式構造によるが、複雑化しやすい
入力方法 通常通りEnterキーで確定 Ctrl + Shift + Enterで確定する必要がある
パフォーマンス 一般的に高速 データ量が多いと遅くなる場合がある
互換性 Excel 2019以降 古いバージョンでも利用可能

このように、MAXIFS・MINIFS関数は、従来の配列数式に比べて多くのメリットがあります。Excelのバージョンが許すのであれば、これらの新しい関数を活用することを強く推奨します。

まとめ

本記事では、ExcelのMAXIFS関数とMINIFS関数について、その概要から基本的な使い方、応用例、そして他の関数との比較までを詳しく解説しました。これらの関数を使うことで、複数の条件に合致するデータの最大値・最小値を、これまで以上に簡単かつ効率的に求めることができるようになります。Excel 2019以降をご利用の方は、ぜひこれらの関数を積極的に活用して、データ分析の幅を広げてください。もし古いバージョンのExcelをお使いの場合は、配列数式という代替手段も存在しますが、MAXIFS・MINIFS関数の方が直感的で扱いやすいため、可能であればバージョンアップを検討することをおすすめします。

MAXIFS関数とMINIFS関数は、ビジネスシーンにおける様々なデータ集計・分析作業の効率を劇的に向上させる可能性を秘めています。今回ご紹介した内容を参考に、ご自身の業務でどのように活用できるかを考えてみてください。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】