对VBA进行过滤和分组依据

时间:2018-12-19 12:15:36

标签: excel vba excel-vba

我有一个看起来像这样的数据

date          Product    Result
31-12-2017    abc 1234 
21-01-2018    def 1234
31-12-2017    abc 5678
21-01-2018    xyz 5678

我想过滤每个日期并计算Product中第一个字符串的出现次数,例如:对于date 31-12-2017,字符串abc重复两次。我的预期输出将在列中指出外观是单个还是多个。下面的示例:

date          Product    Result
31-12-2017    abc 1234   Multiple
21-01-2018    def 1234   Single
31-12-2017    abc 5678   Multiple
21-01-2018    xyz 5678   Single

以下是我到目前为止通过引用SO实现的结果:

Sub Filter_count()
Dim item As Variant
With ThisWorkbook.Sheets("Sheet1")

    lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row
    uniquesArray = .Range("A2:A" & lastrow)

        For Each item In uniquesArray
            ActiveSheet.Range("$A:$A").AutoFilter Field:=1, Criteria1:=item

            'Do Something


        Next

我可以按日期过滤,但不确定如何进一步进行。对于完全不同的解决方案,我也可以。 :)

谢谢。

1 个答案:

答案 0 :(得分:1)

  

完全不同的解决方案

假设date在A1中,则在该空间和D2中解析Product并向下复制:

 =IF(COUNTIFS(A:A,A2,B:B,B2)=1,"Single","Multiple")