Georgeには、日付(列A)とそれらの日付に関連付けられた値(列B)を含むワークシートがあります。ワークシートには、過去数年間の値が含まれています。彼は、特定の年の特定の月のすべての値の平均を計算したいと考えています。たとえば、Georgeは2020年2月のすべての値の平均を計算したいと考えています。

この問題に取り組むには、いくつかの異なる方法があります。 1つの方法は、データに基づいてピボットテーブルを作成することです。 (ピボットテーブルは、大量のデータを集約および分析するのに最適です。)値フィールドを(デフォルトの合計ではなく)平均に簡単に設定し、[日付]列を必要に応じてグループ化できます。

ピボットテーブルを使用したくない場合は、ワークシートに追加できる数式がいくつもあります。たとえば、次の式はSUMPRODUCT関数を使用して平均を計算します。

=SUMPRODUCT((MONTH(A2:A1000)=5)(YEAR(A2:A1000)=2020)(B2:B1000)) / (SUMPRODUCT((MONTH(A2:A1000)=5)(YEAR(A2:A1000)=2020)1))

数式は、日付と値が行2から始まり(見出しを許可するため)、行1000を超えないことを前提としています。データに2020年2月の日付がない場合、数式は#DIVを返します。 / 0!エラー。

別のアプローチは、次のような配列数式を使用することです。

=AVERAGE(IF((MONTH(A2:A1000)=5)*(YEAR(A2:A1000)=2020),B2:B1000))

このアプローチはSUMPRODUCT数式よりも短いですが、数式を入力するときはCtrl + Shift + Enterを押したままにすることを忘れないでください。

目的の月と年のデータがない場合も、ゼロ除算エラーが発生します。

さらに別のアプローチは、Excelのデータベース機能の1つであるDAVERAGEを使用することです。あなたがする必要があるのはあなたが探しているものを定義する基準テーブルを設定することです。たとえば、列の見出しが日付(セルA1)や値(セルB1)のようにオリジナルであると仮定します。

D1:E2など、別の場所に基準テーブルを設定できます。テーブルは次のようになります:

Date         Date >1/31/20     <3/1/20

基準テーブルは、DAVERAGEで、[日付]列に1/31/20より大きい日付と3/1/20より小さい日付が含まれているものを使用することを示しています。式は次のとおりです。

=DAVERAGE(A1:B1000,"Value",D1:E2)

最初のパラメーターはデータベースを定義し、2番目のパラメーターは[値]列(列B)の情報を平均化することを示し、3番目のパラメーターはDAVERAGEに基準テーブルの場所を示します。

非常に簡単な方法の1つは、日付のフィルタリングを適用し、SUBTOTAL関数を使用することです。次の数式をセルに入力します:

=SUBTOTAL(101,B2:B1000)

データ範囲内のセルを選択し、データをフィルタリングします(リボンの[データ]タブを表示し、[フィルター]ツールをクリックします)。列Aの上部にあるフィルタリング矢印をクリックし、[日付フィルター]、[日付フィルター]の順に選択します。ドロップダウンリストからのカスタムフィルター。 Excelに[カスタムオートフィルター]ダイアログボックスが表示されます。

(図1を参照)

image

図1. [カスタムオートフィルター]ダイアログボックス。

ダイアログボックスのコントロールを使用して、1/31/20より大きく3/1/20より小さいレコードが必要であることを指定します。 [OK]をクリックすると、2020年2月内のレコードのみが表示され、小計式にはそれらの表示されているレコードの平均が表示されます。

ただし、おそらく最も簡単なアプローチは、AVERAGEIFS関数を使用することです。これにより、関連付けられた値(この場合は日付)が指定した基準を満たしているかどうかに応じて、いくつかの値の平均を計算できます。数式は次のようになります。

=AVERAGEIFS(B2:B1000,A2:A1000,">31 Jan 2020",A2:A1000,"<01 Mar 2020")

これは配列数式ではないことに注意してください。条件の基準テーブルを定義する必要はありません。これらは数式に直接組み込まれています。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(10671)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。