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関数の使い方をマスターしましょう!
※ 本記事の内容は、実際にエクセルで操作して確認した上でご利用ください。