※購入先、ダウンロードへのリンクにはアフィリエイトタグが含まれており、それらの購入や会員の成約、ダウンロードなどからの収益化を行う場合があります。

アベレージイフ関数の使い方完全ガイド|条件付き平均で失敗しないための全知識

「条件に合うデータだけ平均を出したい」
ExcelやGoogleスプレッドシートを使っていると、誰もが一度は直面する場面です。

店舗別の平均売上、欠席者を除いた平均点、80点以上の人だけの平均評価、今月分だけの平均単価――
こうした集計を正しく行うために欠かせないのが、アベレージイフ関数(AVERAGEIF)です。

しかし実際には、
「条件を入れたのに数値が合わない」
「文字列条件が一致しない」
「該当データがなくて #DIV/0! が出てしまう」
「条件範囲と平均範囲がズレている気がする」
といった悩みを抱えたまま、なんとなく使っている方も少なくありません。

アベレージイフ関数は非常に便利な一方で、条件の書き方・範囲指定・データの状態を正しく理解していないと、
「エラーは出ていないのに、実は数字が間違っている」という最も危険な状態に陥りやすい関数でもあります。

この記事では、アベレージイフ関数の基本構文から、
数値・文字列・部分一致・空白・日付条件の具体的な書き方、
#DIV/0! を出さないための安全な設計、
条件が効かないときの切り分け方法、
そして複数条件になった場合の AVERAGEIFS への正しい移行まで、
実務で本当に困らないレベルまで丁寧に解説します。

「とりあえず動く式」から、「自信を持って提出できる集計」へ。
アベレージイフ関数を、安心して使いこなすための完全ガイドとして、ぜひ最後までご覧くださ

※本コンテンツは「記事制作ポリシー」に基づき、正確かつ信頼性の高い情報提供を心がけております。万が一、内容に誤りや誤解を招く表現がございましたら、お手数ですが「お問い合わせ」よりご一報ください。速やかに確認・修正いたします。

アベレージイフ関数の基本

書式と3つの引数の役割

AVERAGEIFの書式は次のとおりです。

  • =AVERAGEIF(範囲, 条件, [平均対象範囲])

ここで重要なのは、3つの引数を“役割で”理解することです。慣れないうちは「どこに何を書けばいいか」を暗記しがちですが、役割が分かっていればデータが変わっても組み立て直せます。

  1. 範囲(条件を探す場所)

    • 「どの列(または行)で条件判定するか」を指定します。

    • 例:店舗名で絞るなら店舗名の列、点数で絞るなら点数の列、日付で絞るなら日付の列。

  2. 条件(残すルール)

    • どのデータを平均に含めるかを決めるルールです。

    • 文字列一致、数値の大小、空白、部分一致など、ここが一番つまずきやすいポイントです。

  3. 平均対象範囲(平均する数値の場所)

    • 平均を計算したい値の列(または行)を指定します。

    • 例:売上の平均なら売上列、点数の平均なら点数列、作業時間の平均なら作業時間列。

具体例で考えてみます。A列が「店舗名」、B列が「売上」だったとき、「新宿店の売上平均」を出すなら、こう整理できます。

  • 条件で見たいのは店舗名 → 範囲はA列

  • 条件は新宿店 → 条件は “新宿店”

  • 平均したいのは売上 → 平均対象範囲はB列

式は次の形になります。

  • =AVERAGEIF(A2:A100,"新宿店",B2:B100)

ここまでがAVERAGEIFの基本形です。以降は、この基本形を土台として条件指定を強化していきます。

平均対象範囲を省略できる条件

平均対象範囲は「省略できる」と説明されることがありますが、実務ではここで誤解が起きやすいです。結論から言うと、省略できるのは次のケースだけです。

  • 条件判定に使う範囲と、平均したい範囲が同じとき

たとえば、B列が点数で「80点以上の点数だけ平均したい」なら、条件判定も平均もB列です。この場合は平均対象範囲を省略できます。

  • =AVERAGEIF(B2:B100,">=80")

これは「B2:B100の中で、80以上のセルを集めて、その平均を出す」という意味です。

一方で、条件判定と平均する列が違うのに省略すると、計算対象がズレます。たとえば「店舗名で絞って売上を平均したい」のに平均対象範囲を省略すると、平均しようとするのは店舗名列(文字列)になってしまい、意図した集計にはなりません。

実務の目安としては次の通りです。

  • 範囲と平均対象範囲が同じ列なら省略してよい

  • 違う列なら省略しない方が安全

特に、集計表を誰かに引き継ぐ可能性がある場合は、あえて省略せずに「どの列を平均しているか」を見ただけで分かる式にしておく方がトラブルを減らせます。

空白や文字列が混ざるときの挙動

実データでは「全部がきれいな数値」ということはあまりありません。空白がある、文字列が紛れている、ゼロが欠損扱いなのか実測値なのかが曖昧、などが日常的に起こります。

AVERAGEIFを使う上で、特に気を付けたいのは次の3点です。

  1. 一致するデータが0件だと #DIV/0! になりやすい

    • 条件に合うデータが一つもない場合、平均は「0件で割る」形になるためエラーになります。

    • レポートやダッシュボードでこれが出ると、見た目が崩れ、他の計算も連鎖的に崩れることがあります。

  2. “空白に見える”データが空白ではないことがある

    • 入力者がスペースを入れている

    • インポートで不可視文字が混ざっている

    • こうした場合、空白判定が効かず「条件が一致しない」と感じやすいです。

  3. 数値に見えて実は文字列(テキスト)扱いになっている

    • 例えば「100」が左寄せで表示される、先頭にアポストロフィが入っている、など。

    • 数値比較(>=80など)が効かなくなり「結果が変わらない」「おかしい」と感じます。

このあたりの“実務的な落とし穴”は後半のチェックリストでまとめて対処します。まずは次の章で、条件の書き方をテンプレとして固めましょう。


条件の書き方テンプレ集

数値条件のテンプレ

数値条件の基本は「比較演算子」です。ここで迷いやすいのは、条件を文字列として書く点です。多くの場合、次のようにダブルクォーテーションで囲みます。

  • 80以上:">=80"

  • 80より大きい:">80"

  • 60以下:"<=60"

  • 60未満:"<60"

  • 0以外:"<>0"(<> は「等しくない」)

  • 100ちょうど:"=100"(または "100" でも一致することが多いですが明示が安心)

例:点数が80以上の平均(同じ列を条件判定・平均)

  • =AVERAGEIF(B2:B100,">=80")

例:単価が0以外の平均(0を“欠損”扱いにしたい)

  • =AVERAGEIF(C2:C100,"<>0")

次に頻出なのが「しきい値をセル参照にしたい」ケースです。たとえばE1にしきい値が入っているとき、次の書き方を覚えると応用が効きます。

  • ">="&E1

  • "<"&E1

  • "<>”&E1(一致しないもの)

例:E1以上の平均

  • =AVERAGEIF(B2:B100,">="&E1)

この形を知っておくと、しきい値を変えるたびに式を編集する必要がなくなり、集計表が管理しやすくなります。

文字列一致のテンプレ

文字列の条件は基本的に「完全一致」です。最も分かりやすいのは次の形です。

  • =AVERAGEIF(A2:A100,"新宿店",B2:B100)

セル参照で指定したい場合は、条件の部分を参照に置き換えます。

  • =AVERAGEIF(A2:A100,F2,B2:B100)

文字列一致でつまずきやすいポイントは次の通りです。

  • 全角/半角の違い(例:ア と ア)

  • 前後スペース(「新宿店 」のように末尾に空白)

  • 表記ゆれ(「新宿」「新宿店」「新宿店(本店)」など)

対策としては、表記を入力規則やマスタで統一するのが理想ですが、すぐに整備できない場合は後述の「部分一致」も検討します。

部分一致とワイルドカードのテンプレ

「○○を含む」「○○で始まる」「○○で終わる」のような部分一致は、ワイルドカードを使うと簡単に書けます。

  • *:任意の文字列(0文字以上)

  • ?:任意の1文字

テンプレは次の通りです。

  • 「Aで始まる」:"A*"

  • 「Aを含む」:"*A*"

  • 「Aで終わる」:"*A"

  • 「3文字目がA」:"??A*"(先頭2文字は任意、3文字目がA)

例:商品名に「パック」を含む商品の平均単価

  • =AVERAGEIF(A2:A100,"*パック*",B2:B100)

部分一致は便利ですが、誤集計の原因にもなり得ます。例えば「新宿」と「西新宿」を区別したいのに、"*新宿*" にしてしまうと両方が含まれます。部分一致を使うときは「どこまで含めてよいか」を明確にして使うのが安全です。

また、もう一つ重要な注意点があります。*? を“記号そのもの”として検索したい場合は、そのままだとワイルドカードとして扱われてしまいます。そのときは ~(チルダ)でエスケープします。

  • * を文字として探す:"~*"

  • ? を文字として探す:"~?"

例えば品番に「A*100」という文字列が含まれていて、それを探したい場合、"*A*100*" のように書くと「Aの後に何かがあって100」も拾ってしまいます。正確に * を含む形を探したいなら ~* を使います。

空白を条件にするテンプレ

未入力の行だけ、入力済みの行だけ、といった集計はかなり多いです。空白条件のテンプレは次の通りです。

  • 空白に一致:""

  • 空白以外:"<>"&""

例:備考が空白の行だけ工数の平均を出す

  • =AVERAGEIF(D2:D100,"",C2:C100)

例:備考が空白ではない行だけ工数の平均を出す

  • =AVERAGEIF(D2:D100,"<>"&"",C2:C100)

ここでの落とし穴は「空白に見えるが空白ではない」パターンです。特にスペースが入っていると、"" では一致しません。
この場合、データ側のクリーニング(TRIMで前後スペースを落とす、置換で不要文字を消すなど)を行うのが根本解決になります。関数側で無理に吸収しようとすると、式が読みづらくなり保守性が落ちます。

日付条件のテンプレ

日付条件は、うまくいけば強力ですが、つまずきやすい代表格でもあります。理由は「見た目が日付でも、内部的には文字列」というデータが混ざりやすいからです。

日付条件の基本テンプレは次の通りです。

  • ある日以降:">="&DATE(2025,12,1)

  • ある日より前:"<"&DATE(2025,12,1)

  • 今日以降:">="&TODAY()

例:2025/12/01以降の売上平均(A列が日付、B列が売上)

  • =AVERAGEIF(A2:A100,">="&DATE(2025,12,1),B2:B100)

ただし、ここで覚えておきたい考え方があります。
「ある月だけ」「ある期間内」など“範囲条件”は、AVERAGEIF(条件1つ)で無理にやるより、AVERAGEIFS(複数条件)に切り替えた方が事故が減ります

なぜなら、期間指定は本質的に「開始日以上」かつ「終了日以下(または翌日未満)」の2条件になるからです。どうしてもAVERAGEIFだけでやろうとすると、補助列で年月キーを作って文字列一致にする、などの工夫が必要になります。

例:月ごとに集計したい場合の安定策(補助列)

  • 日付が入った列の隣に「年月キー」を作る

    • =TEXT(日付セル,"yyyy-mm")

  • 12月だけの平均を出す

    • =AVERAGEIF(年月列,"2025-12",売上列)

補助列方式は「式が簡単」「見た目で確認しやすい」「引き継ぎしやすい」という強みがあります。データ量が多い現場ほど、こうした“分かりやすい設計”が効いてきます。


よくある失敗と直し方

条件が効かないときのチェックリスト

「条件を入れたのに結果が変わらない」「明らかに違う数字が出る」――こうしたときは、原因を一つずつ潰すのが近道です。次のチェックリストを上から順に確認すると、ほとんどの問題は切り分けできます。

  • 条件が文字列なら、ダブルクォーテーションで囲んでいるか

    • "新宿店" のように書けているか

  • 数値条件の演算子が正しいか

    • ">=80" のように、演算子が条件の先頭にあるか

  • しきい値をセル参照にする場合、演算子と参照を連結できているか

    • ">="&E1 のように & を使っているか

  • 条件範囲に表記ゆれがないか

    • 「新宿店」と「新宿 店」などが混ざっていないか

  • 条件範囲に前後スペースが混ざっていないか

    • 見た目では分からないので要注意

  • 数値が文字列になっていないか

    • 左寄せ表示、インポート由来のテキスト化など

  • 日付が日付として認識されているか

    • 見た目だけ日付の文字列になっていないか

  • 条件範囲と平均対象範囲の行数・列数が一致しているか

    • 片方だけ1行ずれていないか

  • 式をコピーした結果、参照がずれていないか

    • 固定したい範囲は $(絶対参照)を検討する

  • フィルターで絞っても、関数は非表示行も含めて計算することを理解しているか

    • 「表示されている分だけ平均したい」なら別の方法が必要になる場合があります

このチェックリストの中で、特に多い原因は次の2つです。

  1. 条件範囲と平均対象範囲のズレ

  2. データの型(数値なのか文字列なのか、日付なのか文字列なのか)

「式が悪い」と思いがちですが、実はデータ側が原因であることが非常に多いです。式を複雑化させる前に、まずデータの状態を疑うのが、結果的に一番早い解決につながります。

#DIV/0!が出る理由と消し方

AVERAGEIFで #DIV/0! が出る最も典型的な理由は、次の状態です。

  • 条件に合うデータが1件もない(件数0)

平均は「合計 ÷ 件数」です。件数が0なら割り算できないため、エラーになります。これは“間違い”というより“計算できない状態を正直に表している”と捉えると理解しやすいです。

しかし、レポートや集計表ではエラー表示がそのまま出るのは困ります。そこで、表を崩さないための方法を2つ覚えておくと便利です。

方法1:IFERRORでまとめて抑止する

  • =IFERROR(AVERAGEIF(A2:A100,F2,B2:B100),0)

  • 該当なしなら0(または "" 空白)にする

この方法はシンプルで、式が短いのが利点です。ただし「本当に0なのか、該当なしで0表示なのか」が見分けづらいことがあります。分析用途なら空白、報告用途なら0、など使い分けると良いです。

方法2:COUNTIFで件数を先に判定する

  • =IF(COUNTIF(A2:A100,F2)=0,"",AVERAGEIF(A2:A100,F2,B2:B100))

この方法は「該当なしのときは空白」「該当ありのときだけ平均」という意図が明確になります。
また、後工程で「全体平均」「合計」などの集計をするとき、該当なしが空白だと誤解が起きにくいケースが多いです。

運用で迷ったら、次の考え方が判断の助けになります。

  • 0が「実測の0」として意味を持つなら、該当なしは空白にする

  • 0が「表示上の都合」で問題ないなら、IFERRORで0にしてもよい

  • 上司や関係者が数字を見て判断する資料なら、「該当なし」を空白や注記で分かるようにする方が安全

範囲ズレで誤集計を起こすパターン

AVERAGEIFの怖さは、エラーではなく“それっぽい数字”が出てしまう誤集計です。
特に多いのが 範囲ズレ です。範囲ズレは、次のような状態で起こります。

  • 条件範囲:A2:A100
    平均対象範囲:B3:B101(1行ずれている)

  • 条件範囲:A2:A500
    平均対象範囲:B2:B480(途中までしか含まれていない)

  • 行追加・行削除のあと、片方の範囲だけが更新されていない

これがなぜ危険かというと、「数字は出る」ため、見た目では気付きにくいからです。
しかも、ズレた状態でも“平均っぽい値”になりやすく、検算しないと長期間見逃されることがあります。

範囲ズレを防ぐには、次のいずれかの設計が効果的です。

  • 表の範囲をきちんと揃えて指定する(基本中の基本)

  • Excelのテーブル化(構造化参照)を使い、追加行に追従させる

  • 補助列や集計用の列を作り、目視で検算しやすい形にする

  • チェック列(COUNTIFなど)で件数も一緒に出す

    • 平均だけだと違和感に気づきにくいので、「件数」も並べて出すと異常が見つかりやすいです

例えば、店舗別平均を作るなら「平均売上」と同じ行に「件数(該当数)」も出しておくと、急に件数が減ったりゼロになったりしたときに、範囲ズレや条件不一致にすぐ気づけます。


AVERAGEIFSとの使い分け

1条件はAVERAGEIFが速い

条件が1つで済むなら、AVERAGEIFは非常に扱いやすい関数です。式が短く、読みやすく、テンプレも使い回せます。

例:部署が「営業部」の平均残業時間

  • =AVERAGEIF(部署列,"営業部",残業列)

例:点数が60点以上の平均点

  • =AVERAGEIF(点数列,">=60",点数列)(平均対象範囲は省略も可能)

1条件で完結する限り、AVERAGEIFを軸に考えるのが自然です。

2条件以上はAVERAGEIFSに切り替える

条件が2つ以上になると、AVERAGEIFだけで頑張る方法も存在しますが、引き継ぎや保守、誤集計リスクを考えると、基本は AVERAGEIFS が適切です。

例:「営業部」かつ「等級A」の平均単価

  • =AVERAGEIFS(単価列,部署列,"営業部",等級列,"A")

例:「2025/12/01以降」かつ「2026/01/01より前」(12月分)の平均売上

  • =AVERAGEIFS(売上列,日付列,">="&DATE(2025,12,1),日付列,"<"&DATE(2026,1,1))

このように、期間指定は典型的に複数条件になります。
「月だけ集計したい」場面ほどAVERAGEIFSが自然にフィットします。

AVERAGEIFSの利点は次の通りです。

  • 条件を「範囲・条件」のペアで追加できるため、意図が読み取りやすい

  • 条件を増やしても構造が崩れにくい

  • 後から見た人が修正しやすい(どの条件が効いているかが明確)

「最初は1条件だったけど、途中で条件が増えた」という現場は多いので、拡張が見えているなら早めにAVERAGEIFSへ寄せるのも一つの戦略です。

置き換え手順と例

AVERAGEIFからAVERAGEIFSへ移るときに迷うポイントは、「引数の並びが変わる」ことです。
ただし、考え方はシンプルで、次の手順に沿えば迷いません。

  1. まず「平均したい列(平均範囲)」を先頭に置く

  2. 次に「条件範囲1」「条件1」を書く

  3. 追加したい条件があれば、「条件範囲2」「条件2」を足していく

置き換え例で確認しましょう。

もともと:店舗が新宿店の売上平均

  • =AVERAGEIF(A2:A100,"新宿店",B2:B100)

ここに「商品が商品A」という条件を追加したい場合(C列が商品名)

  • =AVERAGEIFS(B2:B100,A2:A100,"新宿店",C2:C100,"商品A")

この形に慣れると、さらに「担当者」「曜日」「キャンペーン有無」など、条件が増えても整然と扱えます。
逆に、AVERAGEIFのまま無理やり条件を増やすと、式が複雑になり、誤集計や修正漏れが起きやすくなります。


Excelとスプレッドシートで迷わないコツ

式の考え方は同じ、参照の癖が違う

ExcelとGoogleスプレッドシートでは、AVERAGEIFという関数名も基本の考え方もほぼ共通です。
そのため「どちらで覚えても応用できる」のですが、混乱が起きるのは関数の違いではなく、主に次のような“データの入り方”や“参照の扱い”の差です。

  • CSVや外部データを取り込んだとき、数値や日付が文字列として入る

  • 入力規則や表記統一の仕組みが弱いと、文字列条件が一致しにくい

  • 共有編集の環境では、意図せずスペースや表記ゆれが混ざる

  • 範囲参照をコピーする運用が多いと、相対参照ズレが発生しやすい

つまり、迷わないコツは「関数を暗記する」よりも、「データの型」「範囲指定」「参照ズレ」を疑う視点を持つことです。
条件が効かないときは、まず次を確認すると早いです。

  • 条件範囲のセルを別セルにコピーして、見た目が同じか(前後スペースがないか)

  • 数値が計算できる状態か(文字列化していないか)

  • 日付を並べ替えたときに正しく並ぶか(文字列日付だと崩れることがある)

式が正しくても、データが正しくなければ正しい結果は出ません。

困ったら一次情報で仕様確認するポイント

「これは自分のミスなのか、仕様なのか」を切り分けたいときは、公式ヘルプ(一次情報)に戻るのが最短です。特に次のテーマは、仕様を知っているだけで解決が早くなります。

  • ワイルドカード *? の意味

  • ~(チルダ)でワイルドカードを文字として扱う方法

  • 該当なしで #DIV/0! が出る理由

  • 平均対象範囲を省略した場合の扱い

  • 条件範囲と平均範囲の対応関係(範囲ズレが起きる条件)

実務では、関数の名前や構文を調べるより「この条件の書き方は正しいのか」「このデータの型は何か」を確認する方が重要です。
疑問が出たら、まずは小さなサンプル(2〜5行程度)で同じ条件を試し、そこで挙動が理解できれば本番の表にも落とし込めます。


まとめ

アベレージイフ関数で失敗しないための要点

アベレージイフ関数(AVERAGEIF)は、条件付き平均を短い式で出せる便利な関数です。一方で、ミスが起きる原因はかなりパターン化しています。最後に、押さえておくべき要点を整理します。

  • 「条件を探す範囲」と「平均する範囲」を役割で分けて考える

  • 数値条件は ">=80"、セル参照なら ">="&E1 の形にする

  • 文字列一致は表記ゆれ・前後スペースが最大の敵

  • 部分一致は *? を使えるが、拾いすぎに注意する

  • 空白条件は """<>"&"" をテンプレで覚える

  • 一致なしで #DIV/0! が出るので、IFERRORや件数判定で表を崩さない

  • 範囲ズレは“数字が出るのに間違う”最危険パターン。件数も並べて検算しやすくする

  • 条件が2つ以上になったら、AVERAGEIFSへ切り替える方が安全で保守もしやすい

次に取るべき行動

すぐに手元の表で再現できる形にするために、次の順で進めると迷いません。

  1. まずは1つ、基本形のAVERAGEIFを作る

    • 条件範囲、条件、平均範囲を役割で決めて入力する

  2. 次に、該当なしでも表が崩れないようにする

    • IFERRORまたはCOUNTIF判定を追加する

  3. 仕上げとして、条件が増える可能性を見て設計を整える

    • 期間指定や複数条件が見えるなら、AVERAGEIFSや補助列の導入も検討する

この流れで作っておけば、「数字が合っているか不安」「直し方が分からない」という状態から抜け出しやすくなります。

仕様変更と更新への注意

関数そのものの仕様は大きく変わりにくい一方で、現場ではデータの取り込み方や入力の仕方が変わり、突然「条件が効かない」「日付が一致しない」といった問題が起こります。
そういうときほど、式を複雑にする前に次を確認すると復旧が早いです。

  • データの型(数値・文字列・日付)が想定通りか

  • 条件の書き方(引用符、演算子、連結)が正しいか

  • 条件範囲と平均対象範囲がズレていないか

そして、どうしても判断がつかない場合は、公式ヘルプで「その挙動が仕様かどうか」を確認すると、迷いが一気に減ります。条件付き平均は集計の土台になることが多いので、今回のテンプレとチェックリストを手元に残し、表を作るたびに再利用していくのがおすすめです。