有没有一种方法来做一个符合特定条件的重复行数?

这里作为我的数据的例子:

用户 angular色
鲍勃pipe理员
Bob Admin B
Bob Admin C
Bob Admin D
弗兰克pipe理员A
弗兰克pipe理C
弗兰克pipe理D

有没有一种方法来统计具有pipe理员A和pipe理员Bangular色或pipe理员C和pipe理员Dangular色的用户。 所以在这种情况下,我希望总数为3,因为“Bob”具有pipe理员A和B的angular色以及C&D,而Frank只有C&D。

我终于想出了一些符合我需要的东西,意识到我可能错过了关于这个问题的一些关键信息,道歉。 我用下面的公式来创build2个作为标志的列。

=IF($A3=$A2,"",IF(COUNTIFS($A:$A,$A3,$D:$D,$G$5)>0,IF(COUNTIFS($A:$A,$A3,$D:$D,$G$7)>0,"YES",""),"")) 

因此,在这种情况下,我会计算指定angular色的次数,例如“pipe理员A”(单元格G5)出现给定的用户。 如果这大于0,则对第二个angular色进行另一次计数,例如导致重复的“pipe理员B”(单元格G7)。 如果这大于0,那么我可以假设用户有两个angular色。

我把这一切全部包装在一个检查中,看看上面这一行中的用户是否与当前行相同,如果是这样,则不要进行计算。 这是为了停止同一用户出现不止一次的标志。 注意:这假定数据在用户(我的公式中的列A)sorting。

最后,我列出了所有列中的“是”,这些列中有我的公式来计算出多less将会有重复的angular色,下面的公式是列E:

 =COUNTIF($E:$E, "YES") 

我设法以较小的步骤分解结果(主要是让你可以看到发生了什么)。 在这一点上,不知道如何“浓缩”的答案可以得到,但我敢肯定,你可以压缩一些。

在列A,B中使用原始样本。

C2: =CONCATENATE(A2,":",B2)

D2: =RIGHT(B2,1)

E2 =IF(D2="A","B",IF(D2="B","A",IF(D2="C","D",IF(D2="D","C","?"))))

F2: =SUBSTITUTE(C2,CONCATENATE("Admin ",D2),CONCATENATE("Admin ",E2))

G2: =MATCH(F2,C:C,0)

H2: =IF(ISERROR(G2),0,1)

将C2:H2复制到C8:H8 ..

H1: =SUM(H2:H8)/2

你可以将其中的一些或全部组合成一个单独的列。然而,在你已经基本上“标记”“需要考虑的”行之后,最后的SUM / 2将会做“魔术”。

总结:1)确定A <=> B或C <=> D …的映射和关系,然后使用MATCH来寻找另一个匹配,并且标记该行3)最终计算匹配(和/ 2)。 。因为那些是双)