ADVERTISEMENT

【Googleスプレッドシート】MAXIFS関数で条件付き最大値を取得!カテゴリ別の最高値

【Googleスプレッドシート】MAXIFS関数で条件付き最大値を取得!カテゴリ別の最高値
🛡️ 超解決

スプレッドシートで大量のデータを扱うとき、カテゴリごとに最高値を知りたいケースは多いでしょう。MAXIFS関数を使えば、複数の条件を指定して最大値を簡単に抽出できます。この記事では、MAXIFS関数の基本的な構文から実際の使用例、注意点までをわかりやすく解説します。読み終えれば、カテゴリ別の最高値を効率的に取得できるようになります。

【要点】MAXIFS関数で条件付き最大値を効率的に取得する方法

  • =MAXIFS(最大値範囲, 条件範囲1, 条件1, …): 複数の条件をすべて満たす行の最大値を返す基本構文です。条件は数値や文字列、比較演算子で指定します。
  • ワイルドカード「*」「?」を使った部分一致: 文字列条件で「*」や「?」を用いると、部分一致や1文字の違いを許容した最大値抽出が可能です。
  • 他の関数との組み合わせ(FILTER, MAX+IF): MAXIFSが使用できない環境では、FILTER関数や配列数式で代替する方法もあります。

ADVERTISEMENT

MAXIFS関数の仕組みと特長

MAXIFS関数は、指定した条件を満たすセル範囲から最大の数値を取得する関数です。引数は「最大値範囲」と「条件範囲1」「条件1」のペアを少なくとも1組、最大127組まで指定できます。すべての条件がANDで結合され、条件をすべて満たす行のみが対象になります。条件範囲と最大値範囲は同じサイズ(同じ行数)である必要があります。条件には「”>=100″」のような比較演算子や、ワイルドカードを含む文字列も使用できます。

MAXIFS関数の基本的な使い方

ここでは、売上データから地域別の最高売上を求める例で説明します。以下のようなデータがあると仮定します。

A列:地域名(東京、大阪、名古屋など)、B列:売上額(数値)。地域ごとに複数の売上データが入力されています。

単一条件で最大値を取得する手順

  1. 結果を表示するセルを選択
    最大値を表示したいセルをクリックします。例としてセルE2を選択します。
  2. 関数を直接入力
    「=MAXIFS(」と入力し、引数を指定します。最大値範囲はB列(例:B2:B100)、条件範囲はA列(例:A2:A100)、条件は「”東京”」と入力します。実際の式は「=MAXIFS(B2:B100, A2:A100, “東京”)」となります。
  3. Enterキーで確定
    Enterキーを押すと、東京の売上の中で最大値が表示されます。

複数条件で最大値を取得する手順

次に、地域と商品カテゴリの2つの条件で最大値を求める例です。C列に商品カテゴリ(食品、家電など)が入力されているとします。

  1. 関数を入力
    「=MAXIFS( B2:B100, A2:A100, “東京”, C2:C100, “食品”)」と入力します。これで東京の食品カテゴリの最高売上が求まります。
  2. セル参照で条件を指定
    条件を直接文字列で書く代わりに、セルを参照することもできます。例えばセルE4に「東京」、F4に「食品」と入力し、「=MAXIFS(B2:B100, A2:A100, E4, C2:C100, F4)」とすれば、値を変更するだけで簡単に別の条件で検索できます。
  3. 数値条件の指定
    売上額が100万円以上のデータの中での最大値を求める場合、条件に「”>=1000000″」と指定します。「=MAXIFS(B2:B100, B2:B100, “>=1000000”)」のように、条件範囲と最大値範囲を同じにすることも可能です。

ワイルドカードを使った部分一致条件

文字列条件でワイルドカードを使用できます。「*」は任意の文字列、「?」は任意の1文字を表します。例えば「東*」と指定すれば「東京」「東北」など「東」で始まる地域すべてが対象になります。

  1. 「*」を使う例
    「=MAXIFS(B2:B100, A2:A100, “東*”)」で、「東」で始まるすべての地域の最大値を取得できます。
  2. 「?」を使う例
    「=MAXIFS(B2:B100, A2:A100, “??都”)」で、2文字+「都」(例:「東京都」「神奈川都」など)にマッチしますが、実際のデータに合わせて調整してください。

MAXIFS関数使用時の注意点とよくあるエラー

条件範囲と最大値範囲のサイズ不一致

条件範囲と最大値範囲の行数が異なるとエラーになります。すべての範囲の行数を一致させてください。例えば最大値範囲がB1:B100、条件範囲がA1:A99だとエラーになります。範囲のサイズが異なる場合は、エラーが発生する前に確認しましょう。

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

条件範囲に空白セルがある場合、その行は条件を満たさないとみなされます。空白を無視したい場合は、条件を「””」と指定するか、別の方法を検討してください。ただし、空文字列を条件にすると空白セルが一致するため注意が必要です。

数値以外のデータが混在する場合

最大値範囲に文字列やエラー値が含まれていると、正しく計算できないことがあります。該当するセルを数値に変換するか、IFERRORなどでエラーを処理してください。例えば最大値範囲にエラーが含まれる場合、IFERRORを使った別の列を参照するなどの工夫が必要です。

日付データの扱い

日付はシリアル値として扱われるため、条件に日付を指定する場合は日付シリアル値か、DATE関数を使うと安全です。例えば「2023年1月1日以降」の最大値を求めるには、「=MAXIFS(B2:B100, C2:C100, “>=”&DATE(2023,1,1))」のようにします。

ADVERTISEMENT

MAXIFS関数と類似関数の比較

関数 構文 条件指定 使用例
MAXIFS =MAXIFS(最大値範囲, 条件範囲1, 条件1, …) 複数条件(AND結合) 「東京」かつ「2023年」の最高売上
MAX+IF =MAX(IF(条件範囲1=条件1, 最大値範囲)) ネストで複数条件対応(配列数式) 「東京」の最高売上(旧バージョン向け)
FILTER+MAX =MAX(FILTER(最大値範囲, (条件範囲1=条件1)*(条件範囲2=条件2))) AND条件は「*」で結合 シンプルで柔軟性が高い
QUERY =QUERY(データ範囲, “select max(売上) where 地域=’東京'”) SQLライクで複雑な条件も可能 大量データや動的条件に強い

まとめ

MAXIFS関数を使えば、複数の条件を指定して最大値を簡単に取得できます。基本構文を覚え、実際のデータで練習してみてください。応用として、日付や文字列の部分一致条件も扱えるため、さまざまなシーンで活用できます。また、FILTER関数やQUERY関数との違いを理解しておくと、状況に応じて最適な関数を選べるようになります。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

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