更新日:、 作成日:
エクセル MAXIFS 関数:複数の条件に一致する最大値を取得する
はじめに
エクセルの MAXIFS 関数の使い方を紹介します。
MAXIFS 関数は複数の条件に一致するセルの最大値を取得します。
=MAXIFS(A1:A3,A1:A3,">=100",A1:A3,"<=999") のようにして、100 ~ 999 の範囲の最大値を取得できます。
=MAXIFS(B1:B3,A1:A3,"=*エクセル*") のようにして、「エクセル」を含むセルの最大値を取得できます。
ワイルドカードを使用して部分一致にしたり、以上や以下などを複数条件にして合計を求めたいときに使用します。
MAXIFS 関数の引数
MAXIFS(最大範囲, 条件範囲1, 条件1)
MAXIFS(最大範囲, 条件範囲1, 条件1, 条件範囲2, 条件2 …)
すべての条件範囲の中ですべての条件を満たすセルと対応する最大範囲の中から最大値を取得します。
引数「最大範囲」 | セルの範囲を指定します。この範囲の最大値を取得します。 | 配列不可 |
引数「条件範囲」 | 引数「条件」の対象になるセルの範囲を指定します。 | 配列不可 |
引数「条件」 | 最大値を取得する条件を比較演算子やワイルドカードを使って指定します。 | スピル化 |
スピル化:セルの範囲や配列を指定すると結果が「スピル」します。
配列不可:配列を指定できません。セルの範囲のみ指定できます。
引数「条件」
使用できる比較演算子には次のものがあります。
演算子 | 演算名 | 使用例 | 結果 |
= | 等しい | "=2" | 2 と同じ |
<> | 等しくない | "<>2" | 2 以外 |
> | 大きい | ">2" | 2 より大きい |
< | 小さい | "<2" | 2 より小さい |
>= | 以上 | ">=2" | 2 以上 |
<= | 以下 | "<=2" | 2 以下 |
使用できるワイルドカードには次のものがあります。
パターン | 説明 | 使用例 | 一致例 |
* | 任意の長さの文字 | "あ*" | あ, あい, あいう |
? | 任意の 1 文字 | "あ?" | あい, あか, あき |
~ | ワイルドカードの文字 * ? を検索する | "あ~?~*" | あ?* |
スポンサーリンク
使い方、条件が一つ
MAXIFS 関数の条件が一つの使い方を紹介します。
値が 99 以下の最大値を取得する
値が 99 以下の最大値を取得します。
名前がエクセルの最大値を取得する
名前が エクセル の値の最大値を取得します。
特定の文字が入っているセルの最大値を取得する
ワイルドカードを使用して、名前に ワード が入っている値の最大値を取得します。
=MAXIFS(C3:C6,B3:B6,"=ワード*")
=MAXIFS(C3:C6,B3:B6,"=*ワード")
名前が ワード で始まる値は "=ワード*" のように入力します。
名前が ワード で終わる値は "=*ワード" のように入力します。
使い方、複数条件
MAXIFS 関数の複数条件の使い方を紹介します。
数値が指定の範囲内の最大値を取得する
値が 100 以上でセル「C3」以下の最大値を取得します。
"比較演算子"&セル名 のようにしてセル参照を使用できます。
日付が指定の範囲内の最大値を取得する
日付がセル「D3」以上で 2000/12/31 までの値の最大値を取得します。
終了日を "<="&DATE(2000,12,31) にすると、時刻が含まれるときに終了日が条件に一致しなくなるので、次の日より小さい判定にしています。
名前がエクセルかつ値が 100 以上の最大値を取得する
名前が エクセル で値が 100 以上の最大値を取得します。
名前がエクセルかつバージョンが 365 の最大値を取得する
名前が エクセル でバージョンが 365 の最大値を取得します。
高度な使い方
MAXIFS 関数と他の関数を組み合わせた使い方などを紹介します。
OR 条件
複数条件のどれか一つでも条件に一致しているセルの最大値を取得するには、判定用の列を作成してその中に「OR 関数」で条件を入力します。その結果を引数「条件範囲」に指定して最大値を取得します。
名前が エクセル またはバージョンが 365 の条件を入力します。
その結果が TRUE のものを引数「条件」に指定して最大値を取得します。
判定用の列を作成しない (スピル)
判定用の列を作成しないで最大値を取得するには「スピル」を使用します。
「IF 関数」の中にセルの範囲を入力しているのでスピルします。
「IF 関数」の条件に一致するときは、最大値を取得するための値を返しています。それを「MAX 関数」で最大値を取得します。
条件に「OR 関数」を使用していないのはスピルされないためです。
数式を Ctrl + Shift + Enter で確定すると「配列数式」になり、すべてのバージョンで使用できます。
判定用の列を作成しない (ラムダ)
判定用の列を作成しないで最大値を取得するには「MAP 関数」を使用します。複雑なので詳細は関数のページをご覧ください。
MAP(B3:B7,C3:C7,D3:D7,
LAMBDA(b,c,d,
IF(OR(b="エクセル",c=365),d,FALSE))))
「MAP 関数」に条件を入力します。OR 条件にしたり、「EXACT 関数」を使用して大文字小文字を区別できます。
解説
引数「最大範囲」が日付なら、日付の実際の値は数値なのでその値として扱います。
引数「最大範囲」に文字列や TRUE や FALSE、空のセルが含まれるときは、そのセルを無視します。
引数「最大範囲」に 1 つも有効な数値が含まれていないときは 0 になります。
引数「条件範囲」を複数指定したときは、すべての条件に一致するセルの最大値を取得します。AND 条件です。
引数「条件範囲」に一致するセルが 1 つもないときは 0 になります。
引数「最大範囲」と引数「条件範囲」の大きさが違うときはエラー #VALUE! になります。
引数「条件」に比較演算子を入力するときは "" で囲んで入力します。
引数「条件」に比較演算子を省略した "エクセル" は "=エクセル" と同じ条件になります。
引数「条件」にセル参照を入力するときは "比較演算子"&セル名 のように & で比較演算子とセル名を結合します。
引数「条件」に日付を入力するときは「DATE 関数」を使用します。時刻を入力するときは「TIME 関数」を使用します。"="&DATE(2000,1,1) のように & で比較演算子と結合します。
引数「条件」は大文字と小文字を区別しません。 "=ABC" としたときは abc などと一致します。
スポンサーリンク