VBA:计算满足两个条件的唯一值

时间:2016-06-14 22:42:32

标签: excel vba excel-vba excel-formula

我有三列:ID,事件和月份。我需要通过ID获取每月唯一的事件计数。

到目前为止,我按月使用CountIfs(范围(" B2:B276609"),事件名称,范围(C2:C76602"),按月计算事件数量(例如,5月份的1806次独特登录)),米))。

如何过滤上述计数,以便仅使用该计数中的唯一ID?请注意,我必须通过一堆事件类型和几个月来循环它。

为了更清楚,让我提供一些示例数据:

ID  Event  Month
1   Login  May 16
2   click  July 16
1   Save   June 16
1   Login  May 16
3   Save   June 16

由此我需要获得以下信息:

1 unique login in May 16
2 unique saves in June 16
1 unique click in July 16

2 个答案:

答案 0 :(得分:1)

基于拉尔夫评论中的链接,可以在here找到:

要知道您拥有多少独特商品,您可以使用以下常规公式:

=SUM(IF(FREQUENCY(COUNTIF(Colors,"<"&Colors),COUNTIF(Colors,"<"&Colors)),1))

然后我将其扩展到多个列只需将countif公式更改为countifs。 (显然使用不同的范围)。

=SUM(IF(FREQUENCY(COUNTIFS($A$1:$A$10,"<"&$A$1:$A$10,$B$1:$B$10,"<"&$B$1:$B$10),COUNTIFS($A$1:$A$10,"<"&$A$1:$A$10,$B$1:$B$10,"<"&$B$1:$B$10)),1))

答案 1 :(得分:1)

您可以使用Excel内置的remove duplicates功能。

ActiveSheet.Range("A2:C76602").RemoveDuplicates Columns:=Array(1,2), Header:=xlYes