Microsoft ExcelでVBAを使用して複数の条件でSUMIF関数
この記事では、VBAコードを使用してExcelで複数の条件を使用してVBAでSUMIF関数を使用する方法を学習します。
出力を取得するには、OFFSET関数とCOUNTA関数を組み合わせて名前マネージャーリストを作成します。
例を挙げて理解しましょう:
-
2012年から2014年までのセールスマン、地域、製品の販売レポートがあります。
-
次の条件を満たす売上高を調べたい:-
-
すべての条件について。名前範囲を作成する必要がありますSalesmanの動的な名前範囲を作成するには:
Ctrl + F3ショートカットキーを押します> [新規]をクリックして、数式を= OFFSET(Sheet1!$ B $ 1,1,0、COUNTA(Sheet1!$ A:$ A)-1)として入力します
同様に、他の条件の名前付き範囲を作成します* CTRL + F3を押して、名前マネージャーウィンドウを開きます(既に作成されているリストを参照してください)
-
[数式]タブの[名前の貼り付け]機能を使用すると、定義済みの名前の範囲リスト全体がセルに表示されます。
-
リストの貼り付けをクリック
nDate * = OFFSET(Sheet1!$ A $ 1,1,0、COUNTA(Sheet1!$ A:$ A)-1)
nProduct * = OFFSET(Sheet1!$ D $ 1,1,0、COUNTA(Sheet1!$ A:$ A)-1)
nRegion * = OFFSET(Sheet1!$ C $ 1,1,0、COUNTA(Sheet1!$ A:$ A)-1)
nSales * = OFFSET(Sheet1!$ E $ 1,1,0、COUNTA(Sheet1!$ A:$ A)-1)
nSalesman * = OFFSET(Sheet1!$ B $ 1,1,0、COUNTA(Sheet1!$ A:$ A)-1)
VBエディターを起動するには、以下の手順に従う必要があります。[開発者]タブをクリックします。[コード]グループから、[VisualBasic]を選択します
-
[挿入]、[モジュール]の順にクリックします
-
これにより新しいモジュールが作成されます。
-
モジュールサブに次のコードを入力しますVBASumifs()mysalesman = [H3] myregion = [H4] myproduct = [H5]
tsales = Application.WorksheetFunction.SumIfs([nsales]、[nsalesman]、mysalesman、[nregion]、myregion、[nproduct]、myproduct)
[H6] = tsales End Sub
[リボンの挿入]> [形状]> [画像の描画]をクリックします。画像を右クリックして、[マクロの割り当て]をクリックします
-
マクロを割り当てた後。 [販売の更新]ボタンをクリックすると、セルH6に出力が表示されます
注:-セールスマンの名前、地域、製品を変更した後、[販売の更新]をクリックする必要があります。
2つの日付の間の条件を満たす販売を見つけるため。以下は基準のスナップショットです:
次のコードを使用します:
サブSumifs2Dates()
mysalesman = [H3] myregion = [H4] myproduct = [H5]
stdate = [H6]
EndDate = [H7]
tsales = Application.WorksheetFunction.SumIfs([nsales]、[nsalesman]、mysalesman、[nregion]、myregion、[nproduct]、myproduct、[ndate]、 “> =”&stdate、[ndate]、 “⇐”& EndDate)
[H8] = tsales End Sub
-
Alt + F8ショートカットキーを押してマクロウィンドウを開き、マクロを選択します。
-
または、F5キーを押してVBA画面でコードを実行することもできます。
-
マクロを実行した後、セルH8に出力を取得します
これは、VBAでSUMIFの複数の基準を使用して、2つの日付間の総売上を計算する方法です。