エクセルでAGGREGATE関数を使ってエラーを無視して合計を求める方法

AGGREGATE関数とは 関数

エクセルで合計値を求めたいのに、エラーが混ざっていたら合計が求められない。。。
そんな疑問を持っていませんか?

お悩みポイント
  • データにエラー値が含まれていると合計が求められない!

    AGGREGATE関数説明1
  • フィルター適用後のデータを集計したい!

    説明2
  • 非表示の行を無視して計算したい!

    説明3

そんな時に便利なのが「AGGREGATE関数」です。
この記事では、エクセルを使ってエラーを無視しつつ合計を求める方法を詳しくご紹介します。

さらに、AGGREGATE関数は足し算だけでなく、さまざまな集計処理を行うことができます。
最大値や平均値、カウントなどもエラーを無視して計算できるので、とても便利です。

基本的な使い方から応用的なテクニックまで、初心者の方でもすぐに実践できる内容ですので
ぜひ最後までお読みください。


【 この記事の概要 】

  よく使う度    3.5  
  難しさ     3.5  
  覚えておくと安心度    4.0  

この記事を見てできるようになること

この記事を読めば、以下のことができるようになります。

この記事を見てできるようになること

AGGREGATE関数の基本と概要

AGGREGATE関数は、エラー処理を行いながら合計や平均などの計算ができる便利な関数です。
具体的な機能は次の通りです。

  1. フィルター適用時の集計
    • データをフィルターで絞り込んだ場合でも、フィルター後のデータに対して正確に合計や平均を計算します。
  2. 非表示行の無視
    • 非表示にした行を除外し、表示されているデータだけを集計します。
  3. エラー処理の対応
    • データ内にエラーが含まれていても、エラーを無視して計算を続行できます。
  4. 多様な集計方法の選択
    • 引数を設定することで、合計(SUM)や平均(AVERAGE)、最大値(MAX)など、様々な集計方法を選択できます。

AGGREGATE関数の構成

引数について解説
  • 集計方法 (必須)
    • 使用したい関数を 1 ~ 19 の番号で指定します。
      例えば、「SUM」や「AVERAGE」を使用することができます。
      ※1 ~ 19 の番号に対応する関数については、事項「集計方法の対応番号について」で説明します。
  • オプション (必須)
    • 集計方法で指定した関数を、どのような条件で動作させるか?設定することができます。
      例えば、「エラー処理」や「非表示セルを無視する」を指定できます。
      ※0 ~ 7 の番号に対応する関数については、事項「オプションの対応番号について」で説明します。
  • 範囲 (必須)
    • 集計方法で指定した関数を使用する範囲を指定します。
  • 範囲 2 以降 (任意)
    • 範囲が複数ある場合は、さらに範囲を指定します。
      最大 253 の範囲を指定できます。

より詳しい情報は、Microsoft公式 – AGGREGATE関数についてを参照してみてください。

AGGREGATE関数の「 集計方法 」の対応番号について

AGGREGATE関数は、次のような関数を選択して使用することができます。

「集計方法」の引数に対応する番号を入力して、目的の関数を実行します。

番号使用する関数名詳細動作
1AVERAGE平均を求める
2COUNT数値の個数をカウントする
3COUNTA空でないセルの個数をカウントする
4MAX最大値を求める
5MIN最小値を求める
6PRODUCT積を計算する
7STDEV.S標本標準偏差を求める
8STDEV.P母集団標準偏差を求める
9SUM合計を求める
10VAR.S標本分散を求める
11VAR.P母集団分散を求める
12MEDIAN中央値を求める
13MODE.SNGL最頻値を求める
14LARGE大きい方から何番目か求める
15SMALL小さい方から何番目か求める
16PERCENTILE.INC百分位数を求める
17QUARTILE.INC四分位数を求める
18PERCENTILE.EXC排他的百分位数を求める
19QUARTILE.EXC排他的四分位数を求める

AGGREGATE関数の「 オプション 」の対応番号について

AGGREGATE関数は、どのような条件で関数を処理するか?を選択できます。

オプション」の引数に対応する番号を入力して、条件を指定してください。

入力番号動作
0 または 省略ネストされた SUBTOTAL 関数と AGGREGATE 関数を無視します。
1非表示の行、ネストされた SUBTOTAL 関数と AGGREGATE 関数を無視します。
2エラー値、ネストされた SUBTOTAL 関数と AGGREGATE 関数を無視します。
3非表示の行、エラー値、ネストされた SUBTOTAL 関数と AGGREGATE 関数を無視します。
4何も無視しません。
5非表示の行を無視します。
6エラー値を無視します。
7非表示の行とエラー値を無視します。

AGGREGATE関数がよく使われる場面

AGGREGATE関数は、特定の条件下での集計作業において非常に有用です。
以下のような場面で特に役立ちます。

よく使われる事例
  • データのフィルタリング後に集計を行いたい場合
    • フィルターを適用した後のデータに対して、合計や平均を計算する際に使用されます。
      SUM関数ではフィルタリングが反映されないため、AGGREGATE関数を使うと便利です。
  • エラーが含まれているデータの集計
    • データ範囲にエラー値が含まれている場合、通常のSUM関数などでは正確な計算ができません。
      AGGREGATE関数を使用することでエラーを無視して集計できます。
  • 非表示行を除外した集計
    • 非表示にした行を除外して集計を行いたい場合に、AGGREGATE関数が便利です。
      特に、データの部分的な表示・非表示を頻繁に行うシートで活用されます。
  • 複数の条件で動作する集計が必要な場合
    • エラー処理や非表示セルの無視など、複数の条件で集計を行う必要がある場合にAGGREGATE関数が役立ちます。

AGGREGATE関数の注意ポイント

AGGREGATE関数を使用する際には、いくつかの注意点があります。
以下の点に留意して使用することで、正確かつ効率的なデータ処理が可能になります。

注意ポイント
  • 対応する集計方法とオプションの組み合わせ
    • AGGREGATE関数は、集計方法とオプションの組み合わせによって動作が異なります
      誤った組み合わせを指定すると、期待した結果が得られない可能性がありますので、各オプションの意味を理解した上で使用しましょう。
  • ネストされた関数の処理
    • AGGREGATE関数は、ネストされたSUBTOTAL関数やAGGREGATE関数を無視する設定ができますが、この設定を使用すると、意図しない結果を引き起こすことがあります。
      特に複雑なシートでは、設定を慎重に確認してください。
  • 範囲の指定
    • AGGREGATE関数を使用する際の範囲指定は、必ず正確に行いましょう
      特にフィルタリングや非表示行を考慮する場合、範囲指定のミスが集計結果に直接影響します。
  • エラー処理に依存しすぎない
    • AGGREGATE関数はエラーを無視することができますが、エラー自体を修正することはありません
      データの信頼性を確保するためにも、エラーの原因を確認し、可能であれば修正することが望ましいです。

AGGREGATE関数の使用例をご紹介

それでは、AGGREGATE関数の使用例を2つ紹介します。

以下に紹介する使用例は、すべてコピペしてすぐに実行できるコードです。
気になる例は、ぜひご覧いただき、実際に実行してみてください。

使用例1: エラーを無視して合計を求める

エラー(#N/A)を無視して合計を求める方法を紹介します。

例えば、このようなエクセルデータがあるとします。

合計値を求めたい場合に、範囲内にエラー値(#N/A)が含まれていると「SUM関数」では、計算することが出来ません
計算結果も、エラー(#N/A)となってしまいます。

エラーを無視して合計を求めたい場合、次のように「AGGREGATE関数」を記述します。

=AGGREGATE(9,6,$B$2:$B$6)

引数の解説

この例では、引数を下記の通り設定しています。

引数の解説
AGGREGATEの計算式

  • 集計方法 ⇒ 9
  • オプション ⇒ 6
  • 範囲 ⇒ $B$2:$B$6
    • B2からB6までの範囲を合計します。
      ※このように範囲を指定する場合は、絶対参照($記号)を使用すると、オートフィルを行っても範囲がずれることはありません。

計算結果

このように「AGGREGATE関数」を使用することで、エラーを無視して範囲内の数値を合計することができます。

使用例2: フィルターを使用してデータを絞り込んだ状態の合計

表でフィルターを使用してデータを絞り込んだ場合の合計を求める方法を紹介します。

例えば、このようなエクセルデータがあるとします。

フィルターを使用して商品名「商品A」でデータを絞り込んだ場合、「SUM関数」を使用すると、フィルターを適用した後でも、全てのデータの合計を表示してしまいます。

フィルターで非表示になった行を無視して合計値を求めたい場合、次のように記述します。

=AGGREGATE(9,3,$B$2:$B$6)

引数の解説

この例では、引数を下記の通り設定しています。

引数の解説

  • 集計方法 ⇒ 9
  • オプション ⇒ 3
    • 「3」は、「非表示の行、エラー値、ネストされた SUBTOTAL 関数と AGGREGATE 関数を無視します。」を意味します。
      そのため、フィルターで非表示の行を無視して合計を計算しています。
      オプション一覧をもう一度見る。
  • 範囲 ⇒ $B$2:$B$6
    • B2からB6までの範囲を合計します。
      ※「$」マークは、絶対参照($記号)を使用すると、オートフィルを行っても範囲がずれることはありません。

計算結果

このように「AGGREGATE関数」を使用することで、フィルターを適用しても、範囲内の合計値を常に変化させながら確認することができます。

AGGREGATE関数 と SUBTOTAL関数との比較

AGGREGATE関数と同様の処理を行うことができる関数に「SUBTOTAL関数」があります。

先ほど行った「使用例2: 表でフィルターを使用してデータを絞り込んだ場合」については、SUBTOTAL関数を使用しても処理が可能です。

その場合、SUBTOTAL関数では次のように記述します。

=SUBTOTAL(9,$B$2:$B$6)

計算結果

AGGREGATE関数 と SUBTOTAL関数 の違いを解説

では、この2つの関数は何が違うのか?というと以下の通りです。

  • AGGREGATE関数
    • エラー処理も可能
      • AGGREGATE関数は、エラー値が含まれるデータに対して、エラーを無視して集計を行うことができます。
        この機能により、エラーが含まれる範囲でも正確な結果を得ることができます。
    • 多機能
      • AGGREGATE関数は、「SUM」や「AVERAGE」などの基本的な集計だけでなく、様々な集計方法(例えば最大値や標準偏差の計算)に対応しており、より柔軟な使用が可能です。
  • SUBTOTAL関数
    • エラー処理はできない
      • SUBTOTAL関数は、エラー処理に対応していません。
        データにエラーが含まれている場合、そのエラーが結果に影響を与えてしまいます。
        例えば、エラー値を含む範囲でSUMを使用すると、計算結果がエラーとなります。

        ※本記事の「使用例1: エラーを無視して合計を求める」は、SUBTOTAL関数では処理できません。
    • シンプルで使いやすい
      • SUBTOTAL関数は、機能が限定されている分、シンプルで直感的に使いやすいという利点があります。
        特にエラー処理が不要な場合には、簡単に使用できるため、多くの場面で利用されています。

結果: AGGREGATE関数 と SUBTOTAL関数は、どちらを使用するべきか?

どちらを使用するかは、状況によりますが、次の使い分けがおすすめです。

  • AGGREGATE関数
    • エラー処理が必要な場合や、複数の集計方法を柔軟に使用したい場合に特に有用です。
  • SUBTOTAL関数
    • シンプルで使いやすいため、エラー処理が不要な基本的な集計作業に適しています。

SUBTOTAL関数については、別記事で解説を行っていますので、合わせてご覧いただけたらと思います。

AGGREGATE関数のまとめ

AGGREGATE関数は、エクセルでのエラーを無視して合計を求めるなど、多くの集計作業で非常に役立つ関数です。

この記事では、基本的な使い方から応用的なテクニックまでを詳しく解説しました。

ポイントのおさらい

さらに学ぶために

VBA(Visual Basic for Applications)を使用することで、AGGREGATE関数と同様の処理を自動化することが可能です。
関数からさらにステップアップしたい場合には、VBAを使用してみるのも良いでしょう。

この記事が役に立ったと思った方は、ぜひサイトマップから違う記事もご覧ください。

タイトルとURLをコピーしました