Excel でピボットテーブルを使って、日・月・四半期・時間ごとの平均を計算するにはどうすればよいですか?
日付および時刻フィールドを含む大規模なデータセットを扱う際、Excel で日単位、月単位、四半期単位、または時間単位など、特定の期間ごとの平均値を計算することがよくあります。各期間ごとにフィルターをかけて手動で計算するのは非常に時間がかかり、ミスも起こりやすくなります。特に、長期間にわたるトランザクションデータやイベントベースのレコードが複数のカテゴリにまたがっている場合、この作業はさらに困難を極めます。 幸いにも、Excel には期間ごとの平均を効率的に計算するためのさまざまな方法があります。たとえば、ピボットテーブル、専用アドイン、組み込み関数、さらにはマクロによる自動化などが活用できます。それぞれの方法には適した具体的なシナリオやメリットがあり、ユーザーのワークフローおよびExcel 機能への習熟度によって、最適な選択肢は異なります。
- 日・月・四半期・時間ごとの平均を PivotTable で算出
- 詳細な時系列データから日・週・月・年ごとの平均を一括計算するにはKutools for Excel をご利用ください
- Excel 関数で日・月・四半期・時間ごとの平均を算出
- VBA コードでデータをグループ化し、平均計算を自動化
PivotTable で日/月/四半期/時間ごとの平均を計算する
Excel のピボットテーブル機能は、日付や月、四半期、時間など離散的な期間ごとに素早く平均値を算出したいときに特に役立つ、実用的なデータ集計・分析ツールです。以下に示す方法を使えば、手動でのフィルタリングや繰り返しの計算を回避でき、データが更新されても簡単に調整可能なインタラクティブなサマリーを作成できます。
1。元のデータテーブル全体(ヘッダーを含む)を選択し、挿入タブのピボットテーブルをクリックします。
![リボンの[挿入]タブにあるピボットテーブルボタン](http://cdn.extendoffice.com/images/stories/doc-excel/average-per-day/doc-average-per-day-2.png)
![[ピボットテーブルの作成]ダイアログボックス](http://cdn.extendoffice.com/images/stories/doc-excel/average-per-day/doc-average-per-day-3.png)
2。表示された「ピボットテーブルの作成」ダイアログボックスで、集計結果を現在のワークシート内に配置する場合は、既存のワークシートを選択します。場所としてピボットテーブルを表示したいセルを指定し、OKをクリックしてください。
注:ピボットテーブルを新しいワークシートに表示するには、代わりに新しいワークシートオプションを選択してください。選択した場所が既存のデータと重複しないようご注意ください。これにより、上書きの警告を回避できます。
3。ピボットテーブルのフィールドリストペイン(通常は右側に表示)で、日付/時刻列を行エリアに、金額(数値データ)列を値エリアにそれぞれドラッグします。この初期設定により、各タイムスタンプごとにデータが集計されます。

![右クリックメニューの[グループ化]オプション](http://cdn.extendoffice.com/images/stories/doc-excel/average-per-day/doc-average-per-day-5.png)
4。結果を特定の期間で整理するには、PivotTable 内の任意の日付エントリを右クリックし、コンテキストメニューからグループ化を選択してください。この機能を使えば、データを日、月、四半期、時間などの間隔で簡単にまとめて集計できます。
5。「グループ化」ダイアログボックスで、単位フィールドから希望のグループ化期間(例:月)を選択し、OKをクリックして適用します。その後、金額の合計値を右クリックし、集計の方法>平均を選択すると、PivotTable に各期間グループごとの平均値が表示され、即座に比較・分析が可能になります。
![[グループ化]ダイアログボックス](http://cdn.extendoffice.com/images/stories/doc-excel/average-per-day/doc-average-per-day-6.png)
![右クリックメニューの[集計の設定] > [平均]](http://cdn.extendoffice.com/images/stories/doc-excel/average-per-day/doc-average-per-day-7.png)

期間ベースの平均を新しいデータで更新する必要がある場合は、PivotTable を分析タブ > 更新から簡単に再計算できます。つまり、PivotTable は定義された時間間隔に基づく平均を効率的かつ視覚的に算出してレビューするのに最適ですが、グループ化構造が変更されたり、データ形式に不整合があったりする場合には、手動での再設定が必要になる場合があります。
詳細な時系列データから日・週・月・年ごとの平均を一括計算するにはKutools for Excel をご利用ください

日次、週次、月次、年次など特定の期間ごとに平均を頻繁に算出する必要がある場合(特に詳細な時系列データセットを扱う際)、手動でのグループ化と計算は繰り返しが多く、ミスも発生しやすくなります。Kutools for Excel はこの作業を大幅に簡素化する専用ユーティリティを提供しており、その代表例としてTo Actualおよび高度な行のマージ機能があります。これらの機能を使えば、日付フォーマットと一括集計が効率的に行え、大幅な時間節約を実現します。
Kutools for Excel— 300 以上の必須ツールでExcel を強化し、作業をより迅速・簡単に。AI 機能を活用して、スマートなデータ処理と生産性の飛躍的な向上を実現します。今すぐ入手
1。日時を含むセルを選択し、目的の期間に合わせて書式を設定します。たとえば日次の平均を取得するには、データを選択してホーム>数値の書式>短い日付を選びましょう。これにより、時刻情報を含んだ値が日付のみに変換されます。![数値書式ドロップダウンの[短い日付]オプション](http://cdn.extendoffice.com/images/stories/doc-excel/average-per-day/doc-average-per-day-01.png)
注: 週間、月間、または年間の平均を算出するには、Kutools for Excel が提供する日付形式を適用機能とTo Actual 機能を使えば、タイムスタンプを必要な形式にわずか数回のクリックで変換できます。これにより、一貫したグルーピングと正確な計算が実現します。

2。フォーマット済みの日付と値を含むデータセット全体をハイライトし、Excel リボンからKutools > コンテンツ > 高度な行のマージを選択します。![リボンの Kutools タブにある[高度な行の結合]オプション](http://cdn.extendoffice.com/images/stories/doc-excel/average-per-day/doc-average-per-day-03.png)
3。開いたダイアログボックスで、リストから日付/時刻列を選択し、主キーとしてマークします。次に、値列(例:金額)を選択して、計算>平均に設定してください。OKをクリックすると、Kutools が各日付ごとの平均を即座に算出します。![[列に基づく行の結合]ダイアログボックス](http://cdn.extendoffice.com/images/stories/doc-excel/average-per-day/doc-average-per-day-04.png)
指定した時間間隔ごとの平均が即座に計算され、分析がぐっと効率化されます。日付のグループ化が「日」ではなく「月」や「年」に設定されている場合、結果はそれに応じて自動的に集計されます。また、日付の再フォーマットはKutools>フォーマット>日付形式を適用で行い、Kutools>To Actualで仕上げることができます。
Kutools for Excel— 300 以上の必須ツールでExcel を強化し、作業をより迅速・簡単に。AI 機能を活用して、スマートなデータ処理と生産性の飛躍的な向上を実現します。今すぐ入手
Excel 関数で日・月・四半期・時間ごとの平均を算出
PivotTable やアドインを使わずに、直接数式で計算したい方にぴったり!Excel の組み込み関数 AVERAGEIFSやSUMIFS/COUNTIFSを使えば、特定の期間の平均値をセル単位で柔軟に計算できます。この方法は、カスタマイズされた計算が必要なとき、テーブルの再更新を避けたいとき、あるいは結果をデータの隣に即座に表示したいときに最適です。
以下は、各日の平均値を数式で算出する例です。
1。データの日付が A 列(A2:A100)、数値データが B 列(B2:B100)にあると仮定します。新しい列(例:セル C2)に、特定の日(例:A2 の日付)の平均を計算する次の数式を入力してください。1。データの日付が A 列(A2:A100)、数値データが B 列(B2:B100)にあると仮定します。新しい列(例:セル C2)に、特定の日(例:A2 の日付)の平均を計算する次の数式を入力してください。
=AVERAGEIFS(B$2:B$100, A$2:A$100, A2) 2。Enter キーを押して数式を適用します。すべての日付に対して計算を行うには、数式をデータの横にコピーしてください。ヒント
: 日次の平均を各ユニークな日付につき1 回だけ表示したい場合は、まずデータをユニークな日付で並べ替えまたはフィルターし、その後で数式を適切に適用してください。: If you want daily averages to appear only once per unique day, first sort or filter your data for unique dates, and then apply the formula accordingly.
VBA コードでデータをグループ化し、平均計算を自動化
日常的に非常に大規模なデータセットを処理する方や、異なる期間にわたり平均計算を繰り返す必要がある方にとって、VBA マクロによるワークフローの自動化は、一貫性と効率性を飛躍的に高めます。マクロを使えば、日次・月次・四半期ごと・時間単位でのデータのグループ化と平均計算を完全に自動化し、手作業による繰り返し作業を一切省くことが可能です。このアプローチは、上級Excel ユーザーの方や、頻繁に再計算が必要なケース、あるいは新しいシートへの迅速な適応が求められるシナリオに最適です。
1。開発者ツール > Visual Basicをクリックして、まず VBA エディターを開きます。Microsoft Visual Basic for Applicationsウィンドウが表示されたら、挿入 > 標準モジュールをクリックし、次のコードをモジュールにコピーしてください。
Sub AverageByPeriod()
Dim ws As Worksheet
Dim dataRange As Range
Dim periodCol As String, valueCol As String
Dim dict As Object
Dim cell As Range
Dim periodKey As String
Dim i As Long, lastRow As Long
Dim sumDict As Object, countDict As Object
Set ws = ActiveSheet
periodCol = "A" ' Date/Time column
valueCol = "B" ' Value column
lastRow = ws.Cells(ws.Rows.Count, periodCol).End(xlUp).Row
Set dict = CreateObject("Scripting.Dictionary")
Set sumDict = CreateObject("Scripting.Dictionary")
Set countDict = CreateObject("Scripting.Dictionary")
For i = 2 To lastRow
' Grouping by month example; change to format for day/hour/quarter if needed
periodKey = Format(ws.Cells(i, periodCol).Value, "yyyy-mm")
If Not dict.Exists(periodKey) Then
dict.Add periodKey, dict.Count + 1
sumDict.Add periodKey, ws.Cells(i, valueCol).Value
countDict.Add periodKey, 1
Else
sumDict(periodKey) = sumDict(periodKey) + ws.Cells(i, valueCol).Value
countDict(periodKey) = countDict(periodKey) + 1
End If
Next i
ws.Cells(1, 4).Value = "Period"
ws.Cells(1, 5).Value = "Average"
i = 2
Dim k As Variant
For Each k In dict.Keys
ws.Cells(i, 4).Value = k
ws.Cells(i, 5).Value = sumDict(k) / countDict(k)
i = i + 1
Next k
End Sub 2。コードを貼り付けたら、
ボタンをクリックしてマクロを実行してください。このマクロは、データ(A 列と B 列の2 行目以降)を読み取り、指定した期間(現在は月単位に設定されています)でグループ化し、各グループの平均値を D 列および E 列に表示します。
ヒント:
- 日ごとにグループ化するには、
Format(..., "yyyy-mm-dd")の行を変更してください。 - 四半期ごとのグループ化は、次のように記述します。
periodKey = "Q" & WorksheetFunction.RoundUp(Month(ws.Cells(i, periodCol).Value) /[[PH_42]]) & "-" & Year(ws.Cells(i, periodCol).Value) - 必ず、列()
periodCol、valueCol)がデータのレイアウトと一致していることを確認してください。
注意事項:
- エラーまたは空白の結果が表示される場合は、グループ化対象の列に空白セルや日付以外の値が含まれていないかご確認ください。
- 必要に応じて列の割り当てを調整してください。データが A 列と B 列以外から始まる場合は、
periodColおよびvalueColを適切に更新してください。 - マクロを実行する前に、必ず作業内容を保存して意図しないデータの変更を回避してください。
デモ:1 時間ごとのデータから日/週/月/年ごとの平均を計算する
関連記事:
最高の Office 業務効率化ツール
| 🤖 | KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気の機能:検索・ハイライト、または重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー LOOKUP:複数条件 VLookup | 複数値 VLookup | 複数シート間 VLookup | ファジーマッチ.... | |
| 高度なドロップダウンリスト:ドロップダウンリストをすばやく作成 | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト.... | |
| 列マネージャー:指定した数の列を追加|列の移動|非表示列の表示状態を切り替え|範囲および列の比較... | |
| 注目の機能:グリッドフォーカス | デザインビュー |強化された数式バー | ワークブックとシートマネージャー | リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除、...)| 50+チャートタイプ(ガントチャート、...)| 40+実用的関数(誕生日に基づいて年齢を計算します、...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入、...)| 12 変換ツール(単語に変換する、為替レートの変換、...)| 7 結合と分割ツール(高度な行のマージ、セルの分割、...)|さらに多数 |
Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。
Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします
- Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
- 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
- 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!
すべてのKutools アドインが、たった1 つのインストーラーで完結。
Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。
- オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
- インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
- 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
- 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
- 最高のお得感— 個別アドイン購入よりお得