Excel VBA将详细信息发送到总计表

时间:2017-03-22 15:01:32

标签: excel vba excel-vba excel-2013

我有一个包含详细信息表的Excel工作簿。我想从按钮按事件转换为Total表,但我不知道如何。这是详细信息表的设置方式

Employee -- Item -- Amt -- Sale Date
Joe         Hat     10     2017-01-01
Joe         Ball    04     2017-01-02
Joe         Socks   06     2017-01-04
Joe         Cap     11     2017-01-06

我希望Totals表只显示

Employee -- Total Sales
Joe         31

VBA会实现这个目标吗?

2 个答案:

答案 0 :(得分:1)

可能是最简单的例子:

Option Explicit

Public Sub TestMe()
    Range("C1") = WorksheetFunction.SumIf(Range("A1:A4"), "Joe", Range("B1:B4"))
End Sub

此外,您可以尝试将WorksheetFunction中的范围设置为变量并使其灵活。

enter image description here

答案 1 :(得分:0)

像Vityata建议的那样,你可以简单地使用数据透视表。

选择你的桌子。在“插入”选项卡上,选择“数据透视表”。

在Create PivotTable对话框中,应该已经选择了表格范围,所以只需单击OK。

在“数据透视表字段”窗格(右侧)中,选中“员工”,然后选中“Amt”。这应该将Employee放在Rows区域中,将Amt放在Values区域中。

在数据透视表结果中,将“行标签”标题重命名为“员工”,将“总和”重命名为“总销售额”。根据需要格式化“销售”列。将标题添加到单元格A1。

更新数据后,单击“数据透视分析”选项卡上的“刷新”按钮以刷新数据透视表。您还可能需要使用“更改数据源”按钮来增加源范围。有时将Table / Range设置为Sheet1!$ A:$ D更容易,然后单击“Employee”旁边的下拉列表,选择Sort AZ,对于Label Filters,选择“Is Not Equal”到“(blank)”