基于VBA数据验证的对象总和

时间:2015-12-16 05:21:24

标签: excel vba excel-vba

目标:基于相似特定标签的对象总和(类似#post)(已使用数据验证)。

以下是截图:

这是过滤器和条件后的数据: enter image description here

这是输出应该是什么: enter image description here

例如:因此,当选择“标签”“研究投资银行业务”时,输出应为“#相似职位”的总和,即10 + 35 + 14 = 59

因为我对VBA不满意。我想知道AutoFilter是否可以工作还是SumIf?

Selection.AutoFilter
Sheets("Raw").Range("$A$1:$E$23").AutoFilter Field:=5, Criteria1:= _
    Region

我写过这段代码:'按照标签过滤数据

Dim Tag As String

Tag = Sheets("Raw").Range("I1")

Range("D2").Select
Selection.AutoFilter
 ActiveSheet.Range("$A$1:$E$23").AutoFilter Field:=4, Criteria1:= _
 Tag

但它缺少以前的代码,即基于Selected Region过滤数据。

'filtering data as per region

Dim Region As String

Region = Sheets("Raw").Range("H1")

Range("E2").Select
Selection.AutoFilter
Sheets("Raw").Range("$A$1:$E$23").AutoFilter Field:=5, Criteria1:= _
    Region

2 个答案:

答案 0 :(得分:1)

您可以使用数据透视表。

插入>枢轴表>选择所有数据并相应地更改枢轴表的位置

在值字段中输入"#相似的帖子"
在行字段中输入"标记"

您将获得如下输出:
Click here to see the output of the Pivot Table

答案 1 :(得分:-1)

以下是决议:

'filtering data as per Tag & Region

Dim Tag As String
Dim Region As String

Tag = Sheets("Raw").Range("I1")
Region = Sheets("Raw").Range("H1")

Range("D1").Select
Selection.AutoFilter
Sheets("Raw").Range("$A$1:$E$23").AutoFilter Field:=4, Criteria1:= _
 Tag
Sheets("Raw").Range("$A$1:$E$23").AutoFilter Field:=5, Criteria1:= _
    Region