目次
このチュートリアルでは、ExcelのMAXIFS関数を使って、条件付きで最大値を取得する方法を紹介しています。
従来、Excelで条件付きで最高値を求める場合、MAX IF式を自作する必要がありました。 経験豊富なユーザーにとっては大したことではありませんが、初心者にとっては、まず、式の構文を覚えなければならず、次に、配列式の扱い方を知らなければならないため、一定の困難が伴うかもしれません。 幸い、Microsoftは、最近、新たに導入したを使えば、条件付きMAXを簡単に実現できます。
エクセルMAXIFS関数
MAXIFS関数は、1つまたは複数の基準に基づいて、指定された範囲内で最大の数値を返します。
MAXIFS 関数のシンタックスは以下のとおりです。
MAXIFS(max_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)どこで
- 最大範囲 (必須) - 最大値を求めたいセルの範囲です。
- 基準範囲1 (必須) - で評価する最初の範囲です。 クライテリア1 .
- 基準1 - 最初の範囲に使用する条件。 数値、テキスト、または式で表すことができる。
- 基準範囲2 / クライテリア2 最大126の範囲と基準のペアがサポートされています。
このMAXIFS関数は、WindowsとMacのExcel 2019、Excel 2021、Excel for Microsoft 365で利用できます。
例として、地元の学校で最も背の高いサッカー選手を探してみましょう。 生徒の身長がセル D2:D11 (max_range) に、スポーツが B2:B11 (criteria_range1) にあると仮定して、criteria1 として「サッカー」という言葉を使うと、以下の数式が表示されます。
=MAXIFS(D2:D11, B2:B11, "フットボール")
より汎用性のある数式にするために、あるセル(例えばG1)に対象のスポーツを入力し、そのセル参照を クライテリア1 の議論になります。
=maxifs(d2:d11, b2:b11, g1)
注 max_range と クライテリア・レンジ 引数は同じサイズと形状、すなわち同じ数の行と列を含まなければならず、そうでない場合は #VALUE!
エクセルでMAXIFS関数を使う方法 - 計算式の例
このように、ExcelのMAXIFSは非常にわかりやすく、使いやすいのですが、ちょっとしたニュアンスの違いで大きな違いがあります。 以下の例では、Excelの条件付きMAXを最大限に活用する方法を試してみましょう。
複数の条件から最大値を求める
このチュートリアルの最初の部分では、1 つの条件に基づいて最大値を取得する最も単純な形の MAXIFS 式を作成しました。 ここでは、その例をさらに進めて、2 つの異なる条件を評価することにします。
仮に、中学校で一番背の高いバスケットボール選手を見つけたいとします。 それを実現するために、次のような引数を定義します。
- 最大範囲 - 高さ - D2:D11 を含むセルの範囲。
- 基準範囲1 - スポーツを含むセルの範囲 - B2:B11.
- 基準1 - "バスケットボール "がセル G1 に入力されている。
- 基準範囲2 - 学校の種類を定義するセルの範囲 - C2:C11.
- 基準2 - "junior "と入力し、セルG2に入力される。
これらの議論をまとめると、次のような式が得られる。
ハードコード」された基準で
=MAXIFS(D2:D11, B2:B11, "バスケットボール", C2:C11, "ジュニア")
あらかじめ設定されたセルに基準を設けて
=maxifs(d2:d11, b2:b11, g1, c2:c11, g2)
なお、ExcelのMAXIFS関数は ケースインセンシティブ というように、大文字小文字を気にする必要はありません。
複数のセルに数式を使用する場合は、次のように、すべての範囲を絶対セル参照でロックしてください。
=maxifs($d$2:$d$11, $b$2:$b$11, g1, $c$2:$c$11, g2)
これにより、数式が他のセルに正しくコピーされます。数式がコピーされるセルの相対位置に基づいて基準参照が変更され、範囲は変更されません。
この例では、最も背の高い人の名前を抽出します。 ここでは、古典的なINDEX MATCH式を使用し、MATCHの最初の引数でMAXIFSをルックアップ値としてネストします。
=index($a$2:$a$11, match(maxifs($d$2:$d$11, $b$2:$b$11, g1, $c$2:$c$11, g2)), $d$2:$d$11, 0))
この式から、中学校で一番背の高いバスケットボール選手の名前が「リアム」であることがわかる。
Excel MAXIFSと論理演算子
数値条件を評価する必要がある場合は、以下のような論理演算子を使用します。
- 大
- 下
- 以上
- 以下 (<=)
- ふつう
等号演算子(=)は、ほとんどの場合省略可能です。
通常、演算子を選択することは問題ありませんが、最も厄介なのは正しい構文で基準を作ることです。 以下にその方法を示します。
- 論理演算子に続く数値やテキストは、">=14" や "running" のように二重引用符で囲む必要があります。
- セル参照や他の関数の場合、引用符で文字列を始め、アンパサンドで参照を連結して文字列を終了させます。例えば、">"&B1 や "<"&TODAY() など。
実際にどのように機能するかを見るために、サンプルテーブルに年齢欄(C列)を追加して、13歳から14歳の男の子の中での最大身長を求めてみましょう。 これは、次のような基準で行うことができます。
基準1:">=13"
基準2:"<=14"
同じ列の数字を比較するので、どちらの場合もcriteria_rangeは同じ(C2:C11)です。
=MAXIFS(D2:D11, C2:C11, ">=13", C2:C11, "<=14")
条件を数式でハードコードしたくない場合は、別々のセル(例:G1 と H1)に入力し、以下の構文で入力します。
=MAXIFS(D2:D11, C2:C11, ">="&G1, C2:C11, "<="&H1)
下のスクリーンショットはその結果です。
論理演算子には、数値の他に、文字列の条件も使えます。 特に、「~と等しくない」という演算子は、何かを計算から除外したいときに便利です。 たとえば、バレーボールを除くすべてのスポーツで最も背の高い生徒を求めるには、次の式を使用します。
=MAXIFS(D2:D11, B2:B11, "volleyball")
G1が除外競技のこちらとか。
=MAXIFS(D2:D11, B2:B11, ""&G1)
ワイルドカード文字を含む MAXIFS 計算式(部分一致)
特定のテキストまたは文字を含む条件を評価するには、条件に次のワイルドカード文字のいずれかを含めます。
- クエスチョンマーク(?)で任意の1文字にマッチします。
- アスタリスク(*)で任意の文字列にマッチします。
この例では、ゲームスポーツで最も背の高い人を探してみましょう。 このデータセットに含まれるゲームスポーツの名前はすべて「ball」という単語で終わっているので、この単語を条件に含め、それ以前の文字にはアスタリスクを使用して一致させます。
=MAXIFS(D2:D11, B2:B11, "*ball")
また、あるセル、例えばG1に "ball "と入力し、ワイルドカード文字とセルリファレンスを連結することもできます。
=MAXIFS(D2:D11, B2:B11, "*"&G1)
結果は次のようになります。
日付範囲内の最大値を取得する
Excelの内部システムでは、日付は通し番号として保存されているため、日付の基準は数字を扱うのと同じ方法で作業します。
これを説明するために 年齢 列をなして 生年月日 このタスクを達成するために、2004年1月1日以上、2004年12月31日以下の生年月日を「フィルタリング」する必要があります。
基準を構築する際には、Excelが理解できる形式で日付を提供することが重要です。
=MAXIFS(D2:D11, C2:C11, ">=1-Jan-2004", C2:C11, "<=31-Dec-2004")
または
=MAXIFS(D2:D11, C2:C11, ">=1/1/2004", C2:C11, "<=12/31/2004")
誤認を防ぐために、DATE関数を利用するのは理にかなっています。
=MAXIFS(D2:D11, C2:C11, ">="&DATE(2004,1,1), C2:C11, "<="&DATE(2004,12,31)")
この例では、G1に対象年を入力し、DATE関数で日付を供給します。
=MAXIFS(D2:D11, C2:C11, ">="&DATE(G1,1,1), C2:C11, "<="&DATE(G1,12,31)")
注)数値と異なり、日付を単独で基準として使用する場合は、引用符で囲む必要があります。 例えば、以下のようになります。
=maxifs(d2:d11, c2:c11, "10/5/2005")
複数の条件からOR論理で最大値を求める
Excel の MAXIFS 関数は、AND ロジックで条件をテストするように設計されています - つまり、以下の数字だけを処理します。 max_range しかし、状況によっては、ORロジックで条件を評価する必要がある場合もあります。
わかりやすくするために、次のような例を考えてみましょう。 バスケットボールとアメフトのどちらかをやっている人の身長の最大値を求めるとします。 その場合、基準1として「バスケットボール」、基準2として「アメフト」を使っても、Excelは両方の基準が「真」に評価されると考えるので、うまくいきません。
解決策は、各スポーツごとに2つの別々の MAXIFS 式を作成し、古き良き MAX 関数を使ってより大きな数値を返すことです。
=MAX(MAXIFS(C2:C11, B2:B11, "バスケットボール"), MAXIFS(C2:C11, B2:B11, "フットボール"))
以下のスクリーンショットは、この数式を、あらかじめ定義された入力セルであるF1とH1に条件を設定したものです。
もう一つの方法は、ORロジックによるMAX IF式を使うことです。
Excel MAXIFSに関する7つの注意点
以下では、数式を改善し、よくある誤りを避けるのに役立ついくつかの指摘を紹介します。 これらの指摘のいくつかは、すでに例の中でヒントや注意として説明されていますが、すでに学んだことを簡単にまとめておくと役に立つかもしれません。
- ExcelのMAXIFS関数は、以下の基準で最も高い値を取得することができます。 一 または たげんてき .
- デフォルトでは、Excel MAXIFS は、以下のように動作します。 アンドロジック つまり、指定された条件をすべて満たす最大の数を返す。
- この関数が動作するためには、最大範囲と基準範囲に 同形 と 形 .
- SUMIF関数は ケースインセンシティブ つまり、テキスト基準の文字の大文字と小文字を認識しません。
- 複数のセルに対して MAXIFS 計算式を書くときは、次のことを忘れないようにしましょう。 レンジをロックする を絶対セル参照で指定すると、数式が正しくコピーされます。
- を意識してください。 クライテリアのシンタックス 主なルールは以下の通りです。
- 単独で使用する場合、テキストと日付は引用符で囲み、数字とセル参照は引用符で囲んではいけません。
- 数値、日付、テキストを論理演算子で使用する場合は、">=10 "のように式全体をダブルクォートで囲み、セル参照やその他の関数は">"&G1のようにアンパサンドで連結して使用する必要があります。
- MAXIFSは、Excel 2019およびExcel for Office 365でのみ利用可能です。 それ以前のバージョンでは、この機能は利用できません。
以上、Excelで条件付きで最大値を求める方法でした。 読んでいただきありがとうございました!また、当ブログでお会いできることを楽しみにしています。
練習用ワークブックをダウンロードする。
Excel MAXIFS 計算式の例 (.xlsx ファイル)