Excelでは通常、SUM関数などを使ってセルの合計を計算できます。しかし、「下線が引かれている金額だけを合計したい」というように、セルの見た目(書式)を条件にした集計は標準関数だけでは簡単に行えません。
この記事では、指定範囲内の下線付きセルだけを自動で合計する方法について、VBAを使ったユーザー定義関数の作成方法や注意点を分かりやすく解説します。
Excelの関数だけでは下線付きセルの合計が難しい理由
ExcelのSUMIF関数やSUMIFS関数は、セルの値や文字列などを条件にして計算できます。しかし、下線、太字、色などの「書式情報」は通常の関数では条件として扱えません。
例えば、C6:H67の範囲に入力された金額の中で、下線が付いているものだけを合計したい場合、セルの中身が同じ数値であればExcelの標準関数は下線の有無を判断できません。
このような場合は、VBAでセルの書式を確認する処理を作成すると、自動計算できるようになります。
VBAで下線付きセルを合計するユーザー定義関数を作成する
まず、ExcelのVBA画面を開きます。「開発」タブから「Visual Basic」を選択するか、Altキー+F11キーを押してVBAエディターを起動します。
次に「挿入」から「標準モジュール」を選び、以下のコードを入力します。
Function UnderlineSum(rng As Range) As Double
Dim cell As Range
Dim total As Double
total = 0
For Each cell In rng
If cell.Font.Underline <> xlUnderlineStyleNone Then
If IsNumeric(cell.Value) Then
total = total + cell.Value
End If
End If
Next cell
UnderlineSum = total
End Function
この関数は、指定した範囲内を確認し、下線が設定されているセルの数値だけを合計します。
D70セルに下線付き金額の合計を表示する方法
作成したユーザー定義関数は、通常のExcel関数と同じように使用できます。
D70セルに以下の数式を入力します。
=UnderlineSum(C6:H67)
すると、C6からH67までの範囲内で下線が付いている金額だけが合計され、D70セルに表示されます。
例えば、C6:H67の中に「1000」「2000」「3000」という金額があり、1000と3000だけに下線が付いている場合、D70には4000と表示されます。
VBAを使用するときの注意点
この方法を利用するには、Excelファイルをマクロ有効ブック(.xlsm形式)で保存する必要があります。
また、会社や学校のパソコンではセキュリティ設定によってマクロが無効になっている場合があります。その場合は、信頼できるファイルであることを確認した上でマクロを有効化してください。
さらに、下線を後から変更した場合、Excelの再計算がすぐに行われないことがあります。その場合は、F9キーを押して再計算を実行すると更新されます。
下線ではなく別の条件で管理する方法
下線は人が見た目で確認するための書式であり、集計条件として利用すると管理が複雑になることがあります。
大量のデータを扱う場合は、「集計対象」という列を追加し、対象となる金額にチェックや記号を入力してSUMIF関数で計算する方法もあります。
例えば、金額列とは別に「集計」という列を作り、対象行に「○」を入力しておけば、関数だけで簡単に合計できます。
まとめ
Excelでは、下線が付いたセルだけを合計する処理は標準関数だけでは対応が難しいため、VBAを利用したユーザー定義関数を作成する方法が便利です。
VBAでセルの下線設定を確認する処理を追加すれば、C6:H67の範囲から下線付き金額だけを抽出し、D70セルへ自動表示できます。
ただし、長期的に管理する表では書式ではなく専用の判定列を作る方が安全な場合もあります。用途に合わせて最適な方法を選ぶことが大切です。


コメント