エクセルの関数とマクロ:SUBTOTAL関数の場合

excel

1. SUBTOTAL関数の基本

SUBTOTAL関数は、指定されたセル範囲の集計を行いますが、自動フィルターで非表示にされた行は無視します。以下は基本的な使い方です。

=SUBTOTAL(function_num, ref1, [ref2], ...)
  • function_num: 関数番号を指定します。
  • ref1, ref2, …: 集計対象のセル範囲を指定します。

2. マクロでのSUBTOTAL関数の代替

Subtotal関数は、指定したリストや範囲のサブトータルを計算する関数であり、サブトータルの計算方法は関数の第1引数で指定します。以下に、エクセルのSubtotal関数をマクロで実現する例を示します。

Sub CalculateSubtotals()
Dim DataRange As Range
Dim SubtotalType As Long

' サブトータルを計算する範囲を指定します
Set DataRange = Range("A2:A10") ' 例として A2 から A10 の範囲を使用します

' サブトータルの計算方法を指定します
SubtotalType = 9 ' 例として 9 を指定します(SUM 関数を使用)

' サブトータルを計算します
DataRange.Subtotal GroupBy:=1, Function:=SubtotalType, TotalList:=Array(1), _
Replace:=True, PageBreaks:=False, SummaryBelowData:=True
End Sub

このマクロでは、指定した範囲(A2:A10)のデータに対して、指定したサブトータルの計算方法(SUM)を適用します。マクロを実行すると、指定した範囲に対してサブトータルが計算され、結果が表示されます。

この例ではSubtotalType = 9としていますが、Subtotal関数の種類に応じて適切な数値を指定してください。以下は一般的なSubtotal関数の種類に対応する数値です。

  • 1: AVERAGE
  • 2: COUNT
  • 3: COUNTA
  • 4: MAX
  • 5: MIN
  • 6: PRODUCT
  • 7: STDEV
  • 8: STDEVP
  • 9: SUM
  • 10: VAR
  • 11: VARP

これらの数値を SubtotalType に指定することで、対応するサブトータルの計算方法を適用できます。

3. SUBTOTAL関数の有効な使用場面

SUBTOTAL関数は、以下のような場面で有効です。

  • 自動フィルターを使用してデータを集計する場合: 自動フィルターを使用してデータをフィルタリングし、非表示の行を無視して集計する必要がある場合に便利です。

4. 類似する関数との比較

SUBTOTAL関数に類似する関数はありません。SUMやAVERAGEなどの他の関数は、非表示の行も含めて集計しますが、SUBTOTAL関数は非表示の行を無視します。

5. 結び

SUBTOTAL関数は、エクセルでデータの集計を行う際に非常に便利な関数です。自動フィルターを使用してデータをフィルタリングする際には、SUBTOTAL関数を活用しましょう。


この記事を参考に、エクセルでのSUBTOTAL関数の使い方をマスターしましょう!

※ 本記事の内容は、実際にエクセルで操作して確認した上でご利用ください。

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