例えばテーブル「productテーブル」の
・列「productName」が”りんご”の
・列「price」の合計値
を取得できます!
VBAから
・ワークシート関数「SumIf」
を使用することで、取得できます!
VBAコード
ここでは例として、
・シート「data」上の
・テーブル化された表「productテーブル」の
・列「productName」が”りんご”の
・列「price」の合計値
します。
Option Explicit
Sub sample()
Dim ws As Worksheet
Dim tableName As String
Dim productColumnName As String
Dim priceColumnName As String
Dim productNameRange As Range
Dim priceRange As Range
Dim targetStr As String
Dim total As Long
'対象シート
Set ws = Worksheets("sample")
'テーブル名
tableName = "productテーブル"
'列名
productColumnName = "productName"
'列名
priceColumnName = "price"
'対象文字列
targetStr = "りんご"
With ws.listObjects(tableName)
'列「productName」のセル範囲を取得
Set productNameRange = .ListColumns(productColumnName).DataBodyRange
'列「price」のセル範囲を取得
Set priceRange = .ListColumns(priceColumnName).DataBodyRange
End With
'列「productName」が「対象文字列」の列「price」の合計値を取得
total = WorksheetFunction.SumIf(productNameRange, targetStr, priceRange)
MsgBox (targetStr & "の合計値は『" & total & "』です。")
End Sub
実行結果
テーブル化された表の、条件の一致したセルの合計値を取得できました。
参考①
表のテーブル化については、以下の記事をご確認ください。
参考②
テーブル化されていない表でも、同様のことができます。
詳細は以下の記事をご確認ください。
※以下の記事で紹介しているやり方は「おおざっぱなやり方」です。
参考③
上記で使用したワークシート関数「SumIf」の詳細は、公式サイトをご確認ください。