Excelで動的範囲の平均を計算する方法は?
Excelでは、入力値に基づいたり、更新された基準に応じたり、継続的に増加または変化するデータを分析する際に、固定されていない範囲の平均を計算する必要がよくあります。このようなケースは、レポート作成やダッシュボード、柔軟な条件に基づくデータ集計が必要な場面で一般的です。幸いなことに、Excelには数式から高度なツールまで、動的範囲の平均を計算するための複数の実用的な方法が用意されています。それぞれが特定のシナリオに適しています。以下では、そのような平均を計算するためのいくつかのアプローチと、それらの価値、適用可能な状況、操作のヒントについて説明します。
方法1: Excelで動的範囲の平均を計算する
数式は、月次売上や累積合計のように範囲の開始点や終了点が頻繁に変わる場合に、動的範囲の平均を計算するための汎用的な方法です。入力セルによって動的範囲の境界を決定することにより、数式を書き直すことなく更新されたデータに対応できます。
これを設定するには、空白のセル(例:セルC4)を選択し、次の数式を入力します:
=IF(C2=0,"NA",AVERAGE(A2:INDEX(A:A,C2)))
その後、「Enter」キーを押して結果の平均値を確認します。

この数式は、A2からC2で指定された行までのすべてのセルを自動的に含む範囲に調整されるため、C2の値が変わると平均される範囲も変わります。これにより、新しいデータが追加されたり、特定のサブセットを分析したい場合にも柔軟に対応できます。
注意:
(1) この数式 =IF(C2=0,"NA",AVERAGE(A2:INDEX(A:A,C2)))
において: A2は平均を取る範囲の最初のセルを表し、C2はターゲット範囲の最後のセルの行番号を保持しているセルを指します。必要に応じて、独自のデータ構造に基づいてこれらの参照を変更してください。C2のセルが有効な行を参照していることを確認してください。そうしないと、予期しない結果や "NA" が表示される可能性があります。
(2) 別の方法として、次を使用することもできます:
=AVERAGE(INDIRECT("A2:A"&C2))
この方法も同様に効果的であり、INDIRECT
はテキスト参照を動的に解釈します。ただし、閉じられたワークブックや大規模なデータセットでINDIRECTを使用する際は注意が必要です。これは揮発性のあるデータに対してはINDEXほど効率的ではないため、計算速度に影響を与える可能性があります。
実践的なヒント: データが継続的に増加する場合(例えば、毎日新しい行を追加する場合)、COUNTAやCOUNT関数を使用して上限セル参照を自動的に設定することができます。これにより、動的範囲が常に最新のエントリをカバーするようになります。
適用可能なシナリオ: 日々のデータログ、時系列エントリ、または範囲の開始点や終了点がユーザー入力や集計セルによって決定される分析全般。利点: 直接的で、追加のツールを必要としない。制限: 行位置が大幅に変更された場合は手動での数式調整が必要。
基準に基づいて動的範囲の平均を計算する
動的範囲が位置ではなく、特定の基準(地域、カテゴリ、ユーザー定義のラベルなど)によって定義される場合、動的名前付き範囲とINDIRECTなどの関数を組み合わせて計算を適応させることができます。これは特に、ユーザーがドロップダウンから選択して即座に関連する平均を見ることができるダッシュボードで役立ちます。
まず、見出し行または列ごとにデータセットをグループ化します。手順は以下の通りです:
1. 全体の範囲(例:A1:D11)を選択し、「 選択範囲から作成 」ボタンをクリックします。 「 名前 」ペイン内にあるポップアップダイアログで、「 最上行 」と「 最も左の列 」の両方をチェックし、「 OK」をクリックします。このステップにより、行と列のデータに自動的に名前付き範囲が割り当てられ、数式での参照が簡素化されます。
2. 選択した空白のセルに、次の数式を入力します:
=AVERAGE(INDIRECT(G2))
ここで、G2はユーザーが行または列のヘッダー名を入力または選択する基準セルです。G2が変更されると(例:「Region1」から「Region2」へ)、数式は対応する範囲の平均を動的に計算します。G2の入力が定義された名前と完全に一致していることを常に確認してください(大文字小文字の区別を含む)。そうしないと、#REF! エラーが発生します。
最適な使用法: レポートダッシュボード、基準に基づく分析。利点: ユーザーの操作による非常に柔軟な動的レポートや単一セル分析が可能。制限: 正確な名前の管理と一貫した入力値に依存する。
Excelで塗りつぶし色に基づいてセルを自動的にカウント/合計/平均する
時には、塗りつぶし色でセルをマークし、後でこれらのセルをカウントしたり、合計を求めたり、平均を計算したりすることがあります。Kutools for Excelの 色でカウント 機能は、それを簡単に解決するのに役立ちます。

Kutools for Excel - 必要なツールを300以上搭載し、Excelの機能を大幅に強化します。永久に無料で利用できるAI機能もお楽しみください!今すぐ入手
VBAコード – マクロを使用して動的範囲の平均を計算する
最終N行の平均、複数の動的基準に基づく平均、または複数のシート間でのデータの結合などの高度な動的動作については、カスタムVBAマクロを作成できます。この方法は、組み込みの数式がシナリオに複雑すぎる場合、または頻繁に変化する構造に適応する自動化が必要な場合に特に役立ちます。
たとえば、列Aにおける最後のN行の平均を計算したい場合があり、このNはユーザーが入力します。また、非連続的かつユーザー指定の範囲から平均を計算することも可能です。
1. 「開発ツール > Visual Basic」に移動して、Microsoft Visual Basic for Applicationsエディターを開きます。次に、「挿入 > モジュール」を選択し、次のVBAコードを貼り付けます:
Sub DynamicAverage_LastNRows()
Dim ws As Worksheet
Dim rng As Range
Dim lastRow As Long
Dim N As Long
Dim result As Double
Dim xTitleId As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set ws = Application.ActiveSheet
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
N = Application.InputBox("How many last rows to average?", xTitleId, 5, Type:=1)
If N <= 0 Or N > lastRow - 1 Then
MsgBox "Invalid input for N!", vbExclamation
Exit Sub
End If
Set rng = ws.Range("A" & lastRow - N + 1, "A" & lastRow)
result = Application.WorksheetFunction.Average(rng)
MsgBox "Average of the last " & N & " rows in column A: " & result, vbInformation
End Sub
2「 」ボタンをクリックしてマクロを実行します。ポップアップダイアログボックスに平均する最後の行数を入力し(例:5,10など)、OKを押します。結果はメッセージボックスに表示されます。
より複雑な条件に基づいて平均を求める場合(例:基準に基づく場合や複数のシートから取得する場合)、VBAコードをそれに応じて調整できます。たとえば、基準値用のInputBoxを追加したり、複数のワークシートをループして範囲を結合してから平均を計算するなどです。
このアプローチは最大限の柔軟性を提供し、複雑または反復的な動的平均計算を自動化できます。ただし、セキュリティリスクを回避するために、マクロを有効にし、信頼できるワークブックでこの方法を使用してください。新しいマクロを実行する前に作業内容を保存し、自動化による変更を行う際はバックアップを作成することを検討してください。
利点: 自動化が可能で、複雑または大規模なデータのシナリオに対応でき、非常に具体的なビジネスロジックに合わせてカスタマイズ可能。欠点: VBAに関する基本的な理解が必要で、構造が変更された場合に手順のメンテナンスが必要。
最高のオフィス業務効率化ツール
🤖 | 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日間フル機能お試し —— 登録やクレジットカード不要
- コストパフォーマンス最適 —— 個別購入よりお得