Emmaは、ワークシート(たとえば、列A)に、毎週追加される番号のリストを持っています。彼女は、列の最後の12個の数値の平均を計算する必要があります。彼女はどうすればこれができるのか疑問に思い、毎週数字を追加し続けている場合でも、平均に常に最後の12の数字を反映させます。

数値の範囲にギャップがないと仮定すると、次の式を使用して最後の12個の数値の平均を計算できます。

=AVERAGE(OFFSET(A1,COUNTA(A:A)-12,0,12,1))

もちろん、この数式は列Aにないセルに配置する必要があります。COUNTA関数を使用して、列Aに何かが含まれているセルの数を計算します。列Aで100個のセルが使用されている場合、これは次のことを意味します。最終的に、次のように式が評価されます。

=AVERAGE(OFFSET(A1,100-12,0,12,1))

もちろん、100から12を引いた値は88であり、この数値は開始セル(A2)からのオフセットとして使用され、平均化される範囲はA89から始まり、12セルまで拡張する必要があることを示します。つまり、平均はA89:A100の範囲になります。列Aの下部に数値が追加されると、数式は常に最後の12個の数値を反映します。

列Aに含まれるデータが12行未満の場合、数式はエラーを返します。その可能性に対応するために、式を少し変更することをお勧めします:

=AVERAGE(OFFSET(A1,COUNTA(A:A)-MIN(COUNTA(A:A),12),0,MIN(COUNTA(A:A),12),1))

12行のハードアンドファスト値を使用する代わりに、MIN関数(2か所)は実際の行数または12の最小値を返します。したがって、ワークシートのセルA1:A5に数値しかない場合、 MIN関数は、数式がこれら5つの値のみを平均化することを保証します。

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

このヒント(10277)は、Microsoft Excel 97、2000、2002、および2003に適用されます。

Excel(Excel 2007以降)のリボンインターフェイスに関するこのヒントのバージョンは、次の場所にあります: