Excel VBA | 集計・統計(WorksheetFunction × Offset × Resize)の黄金パターン集

Excel VBA VBA
スポンサーリンク

ここでは WorksheetFunction × Offset × Resize を組み合わせて「範囲を動的に指定し、集計・統計処理を自動化する」黄金パターンをまとめます。
WorksheetFunction で統計関数を呼び出し、OffsetResize で柔軟に範囲を指定することで、表のサイズが変動しても対応可能になります。


基本パターン 10選

1. 合計値を右隣に出力

Dim rng As Range
Set rng = Range("A2").Resize(10, 1)
Range("A2").Offset(0, 1).Value = WorksheetFunction.Sum(rng)
VB

👉 A2から10行分の合計を右隣に出力。


2. 平均値を下段に出力

Dim rng As Range
Set rng = Range("B2").Resize(20, 1)
rng.Offset(rng.Rows.Count, 0).Value = WorksheetFunction.Average(rng)
VB

👉 B列20行分の平均を最終行の下に出力。


3. 最大値を右隣に出力

Dim rng As Range
Set rng = Range("C2").Resize(15, 1)
Range("C2").Offset(0, 1).Value = WorksheetFunction.Max(rng)
VB

👉 C列15行分の最大値を右隣に出力。


4. 最小値を下段に出力

Dim rng As Range
Set rng = Range("D2").Resize(12, 1)
rng.Offset(rng.Rows.Count, 0).Value = WorksheetFunction.Min(rng)
VB

👉 D列12行分の最小値を最終行の下に出力。


5. 標準偏差を右隣に出力

Dim rng As Range
Set rng = Range("E2").Resize(30, 1)
Range("E2").Offset(0, 1).Value = WorksheetFunction.StDev(rng)
VB

👉 E列30行分の標準偏差を右隣に出力。


6. 件数を下段に出力

Dim rng As Range
Set rng = Range("F2").Resize(25, 1)
rng.Offset(rng.Rows.Count, 0).Value = WorksheetFunction.Count(rng)
VB

👉 F列25行分の件数を最終行の下に出力。


7. 空白セルの件数を右隣に出力

Dim rng As Range
Set rng = Range("G2").Resize(20, 1)
Range("G2").Offset(0, 1).Value = WorksheetFunction.CountBlank(rng)
VB

👉 G列20行分の空白セル件数を右隣に出力。


8. 条件付き件数(COUNTIF)

Dim rng As Range
Set rng = Range("H2").Resize(20, 1)
Range("H2").Offset(0, 1).Value = WorksheetFunction.CountIf(rng, ">=100")
VB

👉 H列20行分で100以上の件数を右隣に出力。


9. 条件付き合計(SUMIF)

Dim rng As Range
Set rng = Range("I2").Resize(20, 1)
Range("I2").Offset(0, 1).Value = WorksheetFunction.SumIf(rng, "VIP", Range("J2").Resize(20, 1))
VB

👉 I列で「VIP」の行に対応するJ列の合計を右隣に出力。


10. 動的範囲の平均(Resizeで拡張)

Dim rng As Range
Set rng = Range("K2").Resize(Cells(Rows.Count, "K").End(xlUp).Row - 1, 1)
Range("K2").Offset(0, 1).Value = WorksheetFunction.Average(rng)
VB

👉 K列の最終行まで動的に範囲を取得し、平均を右隣に出力。


✅ まとめ

  • WorksheetFunction → SUM, AVERAGE, MAX, MIN, STDEV, COUNT, COUNTIF, SUMIF など統計関数を活用
  • Offset → 結果を隣列や下段に自在に出力
  • Resize → データ範囲を動的に拡張・縮小して柔軟に対応
  • 黄金パターン → 合計・平均・最大/最小・標準偏差・件数・条件付き集計を一瞬で自動化

💡 この「集計・統計 × WorksheetFunction × Offset × Resize」パターン集を使えば、売上表・勤怠表・在庫表などの 統計処理+動的集計 を一瞬で自動化できます。

タイトルとURLをコピーしました