メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

Excelで5行または5列ごとの平均を計算するにはどうすればよいですか?

Author Xiaoyang Last modified

Excelで大規模なデータセットを扱う場合、例えば5行ごとや5列ごとにグループ化して平均を計算する必要がよくあります。手動で=AVERAGE(A1:A5)=AVERAGE(A6:A10)=AVERAGE(A11:A15)といった数式を挿入することもできますが、リストに数百または数千のセルが含まれている場合にはすぐに非現実的になります。これらの操作を手動で繰り返すのは時間のかかる作業であり、エラーも発生しやすくなります。幸いなことに、Excelにはこのタスクを自動化する方法が複数用意されており、データ分析をはるかに効率的で面倒のないものにしてくれます。本記事では、5行または5列ごとの平均値を計算するためのいくつかの実践的な方法を紹介します。数式ベースのアプローチ、Excelアドイン、VBAによる自動化、ピボットテーブル技術など、最適なソリューションを見つけるお手伝いをします。

数式を使用して5行または5列ごとの平均を計算する

Kutools for Excelを使用して5行ごとの平均を計算する

VBAコードを使用して5行または5列ごとの平均を計算する

ピボットテーブルを使用して5行ごとの平均を計算する


数式を使用して5行または5列ごとの平均を計算する

標準のExcel数式を使用したい場合、アドインやスクリプトを使わずに5行または5列ごとの計算を自動化できます。このアプローチは、単に平均のセットを生成して分析をサポートする静的なデータセットに特に適しています。ただし、データを正しく参照し、空白や不規則な間隔に対処するよう注意が必要です。

次の例では、列内の5行ごとの平均を計算する方法を示します:

1. 結果を求めたい最初のセル(たとえばC2)に以下の数式を入力してください:

=AVERAGE(OFFSET($A$2,(ROW()-ROW($C$2))*5,,5,))

ここで、A2はデータ列の開始セル、C2は数式出力セル、そして5は間隔(平均を取る行数)です。実際のデータセットに合わせてこれらの参照を調整してください。

数式を入力後、「Enter」キーを押します。最初の平均結果が表示されます。スクリーンショットをご覧ください:

a screenshot of using formula to calculate the average of every5 rows

2. 数式セルを選択し、エラー値(残りのデータに5つの値未満しかない場合の#DIV/0!など)に遭遇するまでオートフィルハンドルを下にドラッグします。これにより、各5行ごとの平均が自動的に取得されます。スクリーンショットをご覧ください:

a screenshot showing all results

ヒントと注意点: データが完全に分割されたグループに収まらない場合、エラー値を抑制するために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を押して、エラー値に達するまで右にオートフィルハンドルをドラッグします。スクリーンショットをご覧ください:

a screenshot of using formula to calculate the average of every5 columns

この数式ベースの方法は、迅速な一回限りの計算や、追加ツールを使用したくない場合に理想的です。しかし、データのサイズや形状が変わるにつれて、数式を調整したりセル範囲を手動で更新したりする必要があり、不完全なグループへの対処には特別な注意が必要かもしれません。


Kutools for Excelを使用して5行ごとの平均を計算する

Kutools for Excelは、複雑な数式を管理せずに頻繁に行グループの平均を計算する必要がある場合に便利なグラフィカルな解決策を提供します。「他の行ごとに改ページを挿入」および「データページ統計」機能を通じて、データを迅速にセグメント化し、数クリックでバッチ平均を計算できます。この方法は、繰り返しの間隔で平均を適用し、ワークシート内で直接グループ化を視覚化したい場合に特に有用です。

Kutools for Excelダウンロードしてインストール したら、次の手順に従ってください:

1. 「Kutools Plus」>「印刷」>「他の行ごとに改ページを挿入」をクリックします。スクリーンショットをご覧ください:

a screenshot of enabling the Insert Page Break Every Row feature

2. 「他の行ごとに改ページを挿入」ダイアログボックスで、間隔(例えば5)を指定して5行ごとに改ページを挿入します。これにより、Kutoolsがデータを自動的にセグメント化します。スクリーンショットをご覧ください:

a screenshot of specifying the interval of rows

3. 次に、「Kutools Plus」>「印刷」>「データページ統計」をクリックします。スクリーンショットをご覧ください:

a screenshot of enabling the Paging Subtotals feature of Kutools

4. 「データページ統計」ダイアログで、平均を計算したい列を選択し、「平均」を計算方法として選んでください。スクリーンショットをご覧ください:

a screenshot of choosing Average as the paging subtotals

5. 「OK」をクリックすると、Kutoolsは即座に5行ごとの区間に小計行を挿入し、平均値を表示します。スクリーンショットをご覧ください:

a screenshot showing the average of every5 rows

今すぐ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. コードを実行するには、 Run button ボタンをクリックするか、 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はお好みの言語で利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語、その他40以上の言語に対応!

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