日付による平均の計算(Microsoft Excel)
過去100年ほどの特定のロケールのすべての降雨量の測定値を含む巨大なワークシートがあるとします。セルA2:A37987には、1903年1月1日から2006年12月31日までの日付があります。
セルB2:B37987には、各日付の測定値があります。さらに、一部の測定値は、ゼロ(その日の降雨がない場合)または空白(その特定の日に読み取りが行われなかった場合)の場合があります。これらすべての情報を使用して、1年の特定の日の平均履歴降雨量を計算する必要があります。
1つの解決策には、ここで詳しく説明する配列数式の使用が含まれます。
。日付を含む列Aのすべてのセルを選択し、この範囲にDatesという名前を割り当てます。
。降雨データを含む列Bのすべてのセルを選択し、この範囲にRainfallという名前を割り当てます。
。セルD2から始まる列Dに、1年中すべての日を配置します。日付で満たされたD2からD366で終わるはずです。
。セルE2に、次の配列数式を入力します(Shift + Ctrl + Enterを押して数式を終了します)。数式の結果は、セルD2で指定された日付の、降雨範囲内のすべてのセルの合計です。
=SUM((MONTH(Dates)=MONTH(D2))(DAY(Dates)=DAY(D2))Rainfall)
セルF2に、次の配列数式を入力します(Shift + Ctrl + Enterを押して数式を終了します)。数式の結果は、セルD2の日付について、降雨範囲内の値を持つセルの数です。
=SUM((MONTH(Dates)=MONTH(D2))(DAY(Dates)=DAY(D2))(Rainfall<>""))
セルG2に、次の通常の式を入力します。これは、セルD2の日付の平均です。
=IF(F2<>0,E2/F2,"")
範囲E2:G2を選択し、列Dに示されているすべての日付をコピーします。
このアプローチは機能しますが、計算にはかなりの時間がかかります。これは、730個の配列数式を効果的に入力し、それぞれが37,000個を超えるセルをチェックしているためです。これは大変な作業であるため、手順7を完了した後、マシンが「ハング」したように見える場合があります。ハングしていません。計算が完了するまで少し時間がかかります。
実行する必要のある計算の数を減らすために、上記の手順のバリエーションを使用できます。前述のように、手順1〜3を実行してから、次の配列数式をセルE2に配置します。
=AVERAGE(IF(ISNUMBER(Dates)ISNUMBER(Rainfall)(MONTH(Dates)=MONTH(D2))*(DAY(Dates)=DAY(D2)),Rainfall))
次に、列Dに示されているすべての日付の数式をコピーします。
この式の結果は、前のアプローチの列Gに示されたものと同じ、実際の平均降雨量です。
この数式は、Excelでブール演算が機能する方法のために機能します。 ISNUMBER関数はTrueまたはFalseを返し、比較(MONTHおよびDAY)はTrueまたはFalseを返します。これらの結果はすべて互いに乗算され、個々のテストがすべてTrueの場合にのみTrueになります。それらがすべてTrueである場合にのみ、その特定の日付の降雨量の平均が計算されます。
1年の毎日の平均を計算するすべてのテーブルを削除するだけで、計算のオーバーヘッドをさらに削減できます。列Aと列Bに日付と降雨量を入力して、次の手順に従います。
。日付を含む列Aのすべてのセルを選択し、この範囲にDatesという名前を割り当てます。
。降雨データを含む列Bのすべてのセルを選択し、この範囲にRainfallという名前を割り当てます。
。セルD2に、平均降雨量を確認する日付を入力します。 (年は重要ではありません。計算には月と日のみが使用されます。)
。セルE2に次の数式を入力します:
=AVERAGE(IF(ISNUMBER(Dates)ISNUMBER(Rainfall)(MONTH(Dates)=MONTH(D2))*(DAY(Dates)=DAY(D2)),Rainfall))
それでおしまい。これで、セルD2の日付を必要に応じて変更でき、セルE2は常にその日付の平均降雨量を示します。セルE2の数式は、最後のアプローチで使用した数式と同じです。違いは、1年のすべての日について計算しているわけではないため、計算がはるかに高速になることです。
別のアプローチには、Excelのフィルタリング機能の使用が含まれます。
ただし、それらを適切に使用する前に、データ内の各日付の月と日のみを表示する列を作成する必要があります。セルC2で次の数式を使用します:
=MONTH(A2) & "-" & DAY(A2)
次に、オートフィルタリング([データ]、[フィルター]、[オートフィルター])をオンにし、新しい列の上部にあるドロップダウンリストを使用して、平均を設定する日付を選択します。次に、次の数式を任意のセルに配置して、選択した日付の平均降雨量を表示します。
=SUBTOTAL(1,B:B)
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(2350)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。
link日付による平均の計算。