EXCEL VBA セル範囲の串刺し集計・計算・カウント・平均(テクニック)

EXCEL VBA テクニック シート間・セル範囲の串刺し集計・計算・カウント・平均方法。(XlConsolidationFunction)

 

●はじめに
ここでは、シート間及びセルで範囲指定した串刺し集計(合計・カウント・平均値・最大値・最小値・積などの)方法を説明を致します。シート毎に作成した表のデータを一つの合計シードなとにまとめる場合などに便利な機能です。

 

●書式の説明 (例) (クリックで拡大)
下記の例で使用しているConsolidateメゾットは、ソース先の指定ではR1C1形式でなければいけません。
【R1C1】形式 ⇒ R=行 C=列を意味します。 R1C1=”A1″  R2C2=”B2″   R10C10=”J10″

 

Function(名前)説明
xlsum合計値
xlAverage平均値
xlcountカウント
xlCountNums数値のみカウント
xlmax最大値
xlmin最小値
xlproduct

 

EXCEL VBA テクニック シート間・セル範囲の串刺し集計(カウント : xlconsolidationfunction.xlCount)

●プログラム説明①カウント集計(串刺し)
次のサンプルプログラムは、アンケート結果を集計するプログラムです。各シートに田中さん・佐藤さんのアンケート結果が記入されています。このアンケート結果を集計結果のシートにカウント集計を使いまとめます。

 

Sub kusizashi①()

    Worksheets("集計結果").Range("B4").Consolidate Sources:= _
        Array("田中!R4C2:R8C4", "佐藤!R4C2:R8C4"), Function:=xlCount
End Sub

 

●実行前 ※シート毎に、田中さん・佐藤さんのアンケート結果が記入されています。 (クリックして拡大)

 

●実行後 ※記入されているアンケート結果をカウント(Count集計)して、集計結果のシートに結果(数値)を表示させます。 (クリックして拡大)

 

 

EXCEL VBA テクニック シート間・セル範囲の串刺し集計・合計(Sum : xlconsolidationfunction.xlSum)

●プログラム説明②合計(串刺し集計)
次のサンプルプログラムは、各シートに支店データ(東京・大阪・名古屋)が入力されています。この3つのシートに記入されているでーたを合計シートに集計します。今回は、配列の機能を組み合わせt集計します。
Sub kusizashi02()

    Dim WorksWS() As Variant 'ワークシート・セル範囲を格納する動的配列を指定
    
    ReDim WorksWS(1 To 3)  '配列を再定義
    
    
    WorksWS(1) = "東京!R4C2:R9C7"      '集計元のワークシート名:セル範囲を指定
    WorksWS(2) = "大阪!R4C2:R9C7"
    WorksWS(3) = "名古屋!R4C2:R9C7"

    Worksheets("合計").Range("B4").Consolidate Sources:= _
        Array(WorksWS()), Function:=xlSum  '3つのシートを集計(合計:Sum)します。

End Sub

 

実行前 ※東京・大阪・名古屋のシートに記入されているデータを合計シートに集計します。 (クリックして拡大)

 

●実行後 ※東京・大阪・名古屋のシートに記入されている費用データが合計に集計されました。(クリックして拡大)

 

最後まで、ご覧いただきまして誠に有難うございました。
以上でシート間での集計方法の説明でした。同シートを集計等を行う場合は、この機能を使うと簡単に集計等ができますので、サンプルプログラムを参照して下さい。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。
AKIRA