SUMIF函数在Microsoft Excel中使用VBA多条件
在本文中,我们将学习如何使用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编辑器。单击“开发人员”选项卡。从“代码”组中,选择“ Visual Basic”。 *单击插入,然后单击模块
-
这将创建新的模块。
-
在Module Sub VBASumifs()mysalesman = [H3] myregion = [H4] myproduct = [H5]中输入以下代码
tsales = Application.WorksheetFunction.SumIfs([nsales],[nsalesman],mysalesman,[nregion],myregion,[nproduct],myproduct)
[H6] = tsales End Sub
单击“插入功能区”>“形状”>“绘制图片”,右键单击图片,然后单击“分配宏”
-
分配宏后;单击更新销售按钮,我们将在单元格H6中获得输出
注意:-更改销售员姓名,地区和产品后,您必须单击更新销售。
查找满足两个日期之间条件的销售;以下是条件的快照:
我们将使用以下代码:
子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多个条件来计算两个日期之间的总销售额的方法。