Excelで5行または5列ごとの平均を計算するにはどうすればよいですか?
Excelで大規模なデータセットを扱う場合、例えば5行ごとや5列ごとにグループ化して平均を計算する必要がよくあります。手動で=AVERAGE(A1:A5)
、=AVERAGE(A6:A10)
、=AVERAGE(A11:A15)
といった数式を挿入することもできますが、リストに数百または数千のセルが含まれている場合にはすぐに非現実的になります。これらの操作を手動で繰り返すのは時間のかかる作業であり、エラーも発生しやすくなります。幸いなことに、Excelにはこのタスクを自動化する方法が複数用意されており、データ分析をはるかに効率的で面倒のないものにしてくれます。本記事では、5行または5列ごとの平均値を計算するためのいくつかの実践的な方法を紹介します。数式ベースのアプローチ、Excelアドイン、VBAによる自動化、ピボットテーブル技術など、最適なソリューションを見つけるお手伝いをします。
Kutools for Excelを使用して5行ごとの平均を計算する
数式を使用して5行または5列ごとの平均を計算する
標準のExcel数式を使用したい場合、アドインやスクリプトを使わずに5行または5列ごとの計算を自動化できます。このアプローチは、単に平均のセットを生成して分析をサポートする静的なデータセットに特に適しています。ただし、データを正しく参照し、空白や不規則な間隔に対処するよう注意が必要です。
次の例では、列内の5行ごとの平均を計算する方法を示します:
1. 結果を求めたい最初のセル(たとえばC2)に以下の数式を入力してください:
=AVERAGE(OFFSET($A$2,(ROW()-ROW($C$2))*5,,5,))
ここで、A2はデータ列の開始セル、C2は数式出力セル、そして5は間隔(平均を取る行数)です。実際のデータセットに合わせてこれらの参照を調整してください。
数式を入力後、「Enter」キーを押します。最初の平均結果が表示されます。スクリーンショットをご覧ください:
2. 数式セルを選択し、エラー値(残りのデータに5つの値未満しかない場合の#DIV/0!
など)に遭遇するまでオートフィルハンドルを下にドラッグします。これにより、各5行ごとの平均が自動的に取得されます。スクリーンショットをご覧ください:
ヒントと注意点: データが完全に分割されたグループに収まらない場合、エラー値を抑制するためにIFERROR()
のようなエラーハンドリング関数を使用できます。例えば:
=IFERROR(AVERAGE(OFFSET($A$2,(ROW()-ROW($C$2))*5,,5,)),"")
行全体の5列ごとの平均を計算するには、以下の数式を使用します(A3に入れて右にドラッグ):
=AVERAGE(OFFSET($A$1,,(COLUMNS($A$3:A3)-1)*5,,5))
ここで、A1は開始セル、A3は数式出力セル、5は各グループの列数です。データレイアウトに応じてセル参照を調整してください。
数式を入力し、「Enter」キーを押した後、 Enterを押して、エラー値に達するまで右にオートフィルハンドルをドラッグします。スクリーンショットをご覧ください:
この数式ベースの方法は、迅速な一回限りの計算や、追加ツールを使用したくない場合に理想的です。しかし、データのサイズや形状が変わるにつれて、数式を調整したりセル範囲を手動で更新したりする必要があり、不完全なグループへの対処には特別な注意が必要かもしれません。
Kutools for Excelを使用して5行ごとの平均を計算する
Kutools for Excelは、複雑な数式を管理せずに頻繁に行グループの平均を計算する必要がある場合に便利なグラフィカルな解決策を提供します。「他の行ごとに改ページを挿入」および「データページ統計」機能を通じて、データを迅速にセグメント化し、数クリックでバッチ平均を計算できます。この方法は、繰り返しの間隔で平均を適用し、ワークシート内で直接グループ化を視覚化したい場合に特に有用です。
Kutools for Excelをダウンロードしてインストール したら、次の手順に従ってください:
1. 「Kutools Plus」>「印刷」>「他の行ごとに改ページを挿入」をクリックします。スクリーンショットをご覧ください:
2. 「他の行ごとに改ページを挿入」ダイアログボックスで、間隔(例えば5)を指定して5行ごとに改ページを挿入します。これにより、Kutoolsがデータを自動的にセグメント化します。スクリーンショットをご覧ください:
3. 次に、「Kutools Plus」>「印刷」>「データページ統計」をクリックします。スクリーンショットをご覧ください:
4. 「データページ統計」ダイアログで、平均を計算したい列を選択し、「平均」を計算方法として選んでください。スクリーンショットをご覧ください:
5. 「OK」をクリックすると、Kutoolsは即座に5行ごとの区間に小計行を挿入し、平均値を表示します。スクリーンショットをご覧ください:
今すぐKutools for Excelをダウンロードして無料試用!
Kutoolsを使用することで、反復的なデータグループ化や分析を簡単に行え、数式を調整したりスクリプトを書いたりする必要がありません。ただし、挿入された改ページは印刷レイアウトやビューに影響を与える可能性があるため、レポートで必要でなければ使用後に削除することをお勧めします。
VBAコードを使用して5行または5列ごとの平均を計算する
大規模または常に変化するデータセットに対して固定行数または列数ごとに平均値を繰り返し計算する必要がある場合、VBAを使用してこのプロセスを自動化することで多くの手間を省けます。VBAを使用すると、データをループして必要なグループにまとめ、各バッチの平均結果を出力できます。この方法は特に、高度なユーザーまたは動的なデータブロックを扱うユーザーに適しており、ワークシートが数式で散らかることを避けられます。以下は簡単にカスタマイズ可能な汎用的なVBAマクロです。
5行ごとの平均を自動化する:
1. 「開発」>Visual BasicをクリックしてMicrosoft Visual Basic for Applicationsウィンドウを開きます。次に、「挿入」>モジュールをクリックし、以下のコードをモジュールに貼り付けます:
Sub AverageEvery5Rows()
Dim DataRange As Range
Dim OutputCell As Range
Dim GroupSize As Integer, i As Integer, j As Integer
Dim LastRow As Long, StartRow As Long
Dim SumValue As Double, CountValue As Integer
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set DataRange = Application.InputBox("Select the data range to average (single column)", xTitleId, Selection.Address, Type:=8)
Set OutputCell = Application.InputBox("Select the first cell for output", xTitleId, , Type:=8)
GroupSize = Application.InputBox("Enter group size (e.g. 5)", xTitleId, 5, Type:=1)
On Error GoTo 0
If DataRange Is Nothing Or OutputCell Is Nothing Then Exit Sub
LastRow = DataRange.Rows.Count
StartRow = 1
i = 0
Do While StartRow <= LastRow
SumValue = 0
CountValue = 0
For j = 0 To GroupSize - 1
If (StartRow + j) <= LastRow Then
SumValue = SumValue + DataRange.Cells(StartRow + j, 1).Value
CountValue = CountValue + 1
End If
Next j
If CountValue > 0 Then
OutputCell.Offset(i, 0).Value = SumValue / CountValue
Else
OutputCell.Offset(i, 0).Value = ""
End If
StartRow = StartRow + GroupSize
i = i + 1
Loop
End Sub
2. コードを実行するには、 ボタンをクリックするか、 F5キーを押します。データ範囲(1列)を選択し、出力の開始セルを選んで、グループサイズ(例えば5)を指定します。このマクロは、指定された出力列に5行ごとの平均を上から順に出力します。
同様のマクロを使用して、行全体の5列ごとの平均を計算できます。
5列ごとの平均を自動化する:
Sub AverageEveryNColumns()
Dim DataRange As Range
Dim OutputCell As Range
Dim GroupSize As Long
Dim totalCols As Long, totalRows As Long
Dim startCol As Long, endCol As Long, outCol As Long
Dim v As Variant
Dim r As Long, c As Long
Dim sumVal As Double, cntVal As Long
Dim xTitleId As String
xTitleId = "KutoolsforExcel"
On Error Resume Next
Set DataRange = Application.InputBox("Select the data range (single rows)", _
xTitleId, Selection.Address, Type:=8)
Set OutputCell = Application.InputBox("Select the first cell for output (results will spill to the right)", _
xTitleId, , Type:=8)
GroupSize = Application.InputBox("Enter group size (e.g. 5)", xTitleId, 5, Type:=1)
On Error GoTo 0
If DataRange Is Nothing Or OutputCell Is Nothing Then Exit Sub
If GroupSize < 1 Then
MsgBox "Group size must be >= 1.", vbExclamation
Exit Sub
End If
Application.ScreenUpdating = False
Application.EnableEvents = False
Dim prevCalc As XlCalculation
prevCalc = Application.Calculation
Application.Calculation = xlCalculationManual
totalCols = DataRange.Columns.Count
totalRows = DataRange.Rows.Count
v = DataRange.Value
outCol = 0
For startCol = 1 To totalCols Step GroupSize
endCol = startCol + GroupSize - 1
If endCol > totalCols Then endCol = totalCols
sumVal = 0
cntVal = 0
For r = 1 To totalRows
For c = startCol To endCol
If Not IsEmpty(v(r, c)) Then
If IsNumeric(v(r, c)) Then
sumVal = sumVal + CDbl(v(r, c))
cntVal = cntVal + 1
End If
End If
Next c
Next r
If cntVal > 0 Then
OutputCell.Offset(0, outCol).Value = sumVal / cntVal
Else
OutputCell.Offset(0, outCol).Value = ""
End If
outCol = outCol + 1
Next startCol
CleanExit:
Application.Calculation = prevCalc
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
ピボットテーブルを使用して5行ごとの平均を計算する
5行ごとのグループ平均を計算するもう一つの実用的な方法は、ピボットテーブルを使用し、シーケンス番号またはインデックス列を組み合わせてデータをグループ化する方法です。この方法は、構造化されたテーブル形式のデータで作業し、数式を書いたりアドインを使ったりせずに素早くインタラクティブな要約が必要なユーザーにとって特に有用です。ピボットテーブルはデータの変更を動的に処理し、柔軟なグループ化をサポートします。これは大規模なデータセットや定期的なレポート作成に最適です。
ヘルパー列とピボットテーブルを使用してこの操作を実行する方法は次のとおりです:
1. データの隣に「インデックス」または「グループ」列を追加して、5行ごとのグループをマークします。最初のデータ行(B2)に次のように入力します:
=INT((ROW()-ROW($A$2))/5)+1
この数式は各行に連続してラベルを付け、5行ごとに同じグループ番号を割り当てます。この数式をデータセット全体に適用します。
2. データと新しいインデックス列を選択し、「挿入」>「ピボットテーブル」をクリックします。ピボットテーブル作成ダイアログで、データ範囲を確認し、ピボットテーブルの配置先を選んでください。
3. 新しく作成されたピボットテーブルのフィールドリストで、「グループ」フィールドを「行」エリアにドラッグし、値フィールド(例:「売上」)を「値」エリアにドラッグします。
4. 「値」エリアのドロップダウンをクリックし、「値フィールドの設定」を選択して「平均」を選んでください。
これで、ピボットテーブルは元のデータの5行ごとの平均を、ヘルパー列によって便利にグループ化して表示します。
ピボットテーブル方式の主な利点は、ソースデータが変更されたときに柔軟かつ容易に更新できる点です。ただし、ヘルパー列を追加する必要があり、データを正確にフォーマットされたままにする必要がある状況には適さない場合があります。
関連記事:
新しい数値が入力される際に列の最後の5つの値の平均を求めるにはどうすればよいですか?
Excelで上位または下位3つの値の平均を求めるにはどうすればよいですか?
最高のオフィス業務効率化ツール
🤖 | Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Execution|コード生成|カスタム数式の作成|データの分析とグラフの生成|Kutools Functionsの呼び出し…… |
人気の機能:重複の検索・ハイライト・重複をマーキング|空白行を削除|データを失わずに列またはセルを統合|丸める…… | |
スーパーLOOKUP:複数条件でのVLookup|複数値でのVLookup|複数シートの検索|ファジーマッチ…… | |
高度なドロップダウンリスト:ドロップダウンリストを素早く作成|連動ドロップダウンリスト|複数選択ドロップダウンリスト…… | |
列マネージャー:指定した数の列を追加 |列の移動 |非表示列の表示/非表示の切替| 範囲&列の比較…… | |
注目の機能:グリッドフォーカス|デザインビュー|強化された数式バー|ワークブック&ワークシートの管理|オートテキスト ライブラリ|日付ピッカー|データの統合 |セルの暗号化/復号化|リストで電子メールを送信|スーパーフィルター|特殊フィルタ(太字/斜体/取り消し線などをフィルター)…… | |
トップ15ツールセット:12 種類のテキストツール(テキストの追加、特定の文字を削除など)|50種類以上のグラフ(ガントチャートなど)|40種類以上の便利な数式(誕生日に基づいて年齢を計算するなど)|19 種類の挿入ツール(QRコードの挿入、パスから画像の挿入など)|12 種類の変換ツール(単語に変換する、通貨変換など)|7種の統合&分割ツール(高度な行のマージ、セルの分割など)|… その他多数 |
Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...
Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に
- Word、Excel、PowerPointでタブによる編集・閲覧を実現。
- 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
- 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!
全てのKutoolsアドインを一つのインストーラーで
Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。





- オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
- 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
- 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
- 30日間フル機能お試し —— 登録やクレジットカード不要
- コストパフォーマンス最適 —— 個別購入よりお得