KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel で動的範囲の平均を計算するには、どうすればよいですか?

著者Kelly変更日

Excel では、入力値や更新された条件に基づくデータ、あるいは継続的に増加・変化するデータの平均を求める必要が頻繁に生じます。こうした動的で固定されていない範囲の平均計算は、レポート作成やダッシュボード構築、柔軟な条件に基づくデータ集計において特に一般的です。幸い、Excel には動的範囲の平均を計算するための実用的な手法が複数用意されており、高度なツールも含めて、それぞれ特定のシナリオに最適です。以下では、こうした平均を計算するための代表的なアプローチと、そのメリット、適用可能なケース、操作のヒントをご紹介します。


方法1:Excel で動的範囲の平均を計算する

数式は、月次売上や累計など、範囲の開始点または終了点が頻繁に変化する動的範囲の平均を計算するのに非常に柔軟なアプローチです。入力セルで動的範囲の境界を定めることで、数式を書き直すことなく最新のデータに即座に対応できます。

これを設定するには、セル C4 などの空白セルを選択して、次の数式を入力してください。

=IF(C2=0,"NA",AVERAGE(A2:INDEX(A:A,C2)))

次に、Enterキーを押すと、平均値が表示されます。

動的範囲の最終セルの行番号と等しい数値を含むセル

C4 セルに入力された数式

この数式は、A2 から C2 で指定された行までのすべてのセルを自動的に範囲に含めるため、C2 の値が変更されると平均対象の範囲も自動で調整されます。これにより、新しいデータを追加したり、特定のサブセットを分析したい場合でも、平均範囲を柔軟に拡張または縮小できます。

注記

(1)この数式では、=IF(C2=0,"NA",AVERAGE(A2:INDEX(A:A,C2)))A2が平均対象範囲の先頭セルを表し、C2はその範囲の末尾セルの行番号を格納したセルを参照しています。データ構造に応じて、これらの参照を適宜調整してください。C2 セルが有効な行番号を指していない場合、「#N/A」エラーなどが発生し、意図しない結果となる可能性があります。

(2)代替手段として、次のようにすることも可能です。

=AVERAGE(INDIRECT("A2:A"&C2))

この方法も同様に効果的で、範囲のテキスト参照を作成し、それをINDIRECT 関数が動的に解釈します。ただし、INDIRECT 関数は、閉じたワークブックや大規模なデータセットと組み合わせると計算速度に影響を及ぼす可能性があるため、ご注意ください。可変データにはINDEX 関数を使う方が効率的です。

実用的なヒント:データが継続的に増加する場合(たとえば、毎日新しい行を追加するなど)、COUNTA 関数または COUNT 関数を使って上限セル参照を自動設定できます。これにより、動的範囲が常に最新のエントリを確実にカバーします。

適用シナリオ:日々のデータログ、時系列エントリ、または範囲の開始・終了がユーザー入力や集計セルによって決まる分析。メリット:直接的で追加ツールを必要としません。制限事項:行位置が大きく変更された場合は、手動で数式を調整する必要があります。


条件に基づいて動的範囲の平均を計算する

動的範囲が位置ではなく特定の条件(地域、カテゴリ、ユーザー定義ラベルなど)によって定義される場合は、動的名前付き範囲と INDIRECT 関数などを組み合わせて計算を調整できます。これは特に、ドロップダウンから選択すると即座に関連する平均が表示されるダッシュボードで役立ちます。

異なる条件に基づくさまざまな平均値

まず、データセットを行見出しまたは列見出しでグループ化します。手順は次のとおりです。

1.範囲全体(例:A1:D11)を選択し、選択範囲から作成ボタンをクリックします。選択範囲から名前を作成ボタンこのボタンは、名前の管理ペイン内にあります。表示されるポップアップダイアログで、最上行最も左の列の両方にチェックを入れて、OKをクリックしてください。これにより、行と列のデータに自動的に名前付き範囲が割り当てられ、数式での参照がぐっと簡単になります!

名前マネージャー ペイン

2.任意の空白セルに、次の数式を入力してください。

=AVERAGE(INDIRECT(G2))

ここでは、G2が、ユーザーが行または列の見出し名を入力または選択するための条件セルです。G2 の値が「Region1」から「Region2」などに変更されると、数式は対応する範囲の平均を動的に計算します。#REF!エラーを回避するには、G2 に入力する値が定義済みの名前(大文字・小文字を含む)と完全に一致していることをご確認ください。

セルに入力された数式

最適な用途:レポート用ダッシュボード、条件駆動型分析。メリット:ユーザー操作による非常に柔軟な動的レポートや単一セル分析を実現します。制限事項:適切な名前の管理と一貫した入力値に依存します。

Excel で塗りつぶし色別にセルを自動集計(カウント/合計/平均)する

セルに塗りつぶし色を付けてマークし、後でそれらのセルをカウントしたり、合計や平均を計算することがあります。そんなとき、Kutools for Excel の色でカウントユーティリティを使えば、この作業が簡単に解決できます!


Kutools の「色別カウント」インターフェース

Kutools for Excel— 300 以上の必須ツールでExcel を強化し、作業をより迅速・簡単に。AI 機能を活用して、スマートなデータ処理と生産性の飛躍的な向上を実現します。今すぐ入手


VBA コード – マクロで動的範囲の平均を計算する

最後の N 行の平均、複数の動的条件に基づく平均、さらには複数シート間のデータを統合して平均するなど、高度な動的動作が必要な場合は、カスタム VBA マクロを作成できます。この方法は、組み込みの数式が複雑になりすぎる場合や、頻繁に変化する構造に自動対応する必要がある場合に特に有効です。

例えば、ユーザーが入力した N に基づいて A 列の最後の 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 の基本的な理解が必要で、構造が変更された場合には手順のメンテナンスが必要です。


最高の Office 業務効率化ツール

🤖KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気の機能検索・ハイライト、または重複をマーキング     空白行を削除する     データを失うことなく列の結合またはセルを     数式を使用しない四捨五入...
スーパー LOOKUP複数条件 VLookup    複数値 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 でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
  • 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
  • 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!

すべてのKutools アドインが、たった1 つのインストーラーで完結。

Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。

ExcelWordOutlookTabsPowerPoint
  • オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
  • インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
  • 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
  • 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得