Excel 在两列中计数,并获取唯一计数

Excel 在两列中计数,并获取唯一计数,excel,excel-formula,Excel,Excel Formula,是否有任何公式可以在两列中计数,并且只返回唯一的计数。 我有一个表,其中两列可以有一个“X”,我想计算这个“X”的“或”。 也就是说,如果它在一列或另一列或两列中,那么数一数,否则不要 例如: A B C foo X bar X Doo X X Boo 预期结果为3(foo、bar、Doo)。 我不能做a=COUNTIF(B:B,“X”)+COUNTIF(C:C,“X”),因

是否有任何公式可以在两列中计数,并且只返回唯一的计数。
我有一个表,其中两列可以有一个“X”,我想计算这个“X”的“或”。
也就是说,如果它在一列或另一列或两列中,那么数一数,否则不要

例如:

 A       B        C
foo      X
bar               X
Doo      X        X
Boo          

   
预期结果为3(foo、bar、Doo)。
我不能做a
=COUNTIF(B:B,“X”)+COUNTIF(C:C,“X”)
,因为那会给我4分。
=COUNTIF(B:C,“X”)
返回4。
SUMPRODUCT((B:B=“X”)*(C:C=“X”)*1)
=1,
SUMPRODUCT((B:C=“X”)*1)
=4

有什么公式可以计算这个案子吗


遗憾的是,我没有Office 365在工作

在D列中使用concat公式,这样D1=concat(A1,B1),D2=concat(A2,B2)等等

D1=CONCAT(A1,B1)
然后使用D列上的counta函数对所有非空单元格进行计数,希望如此简单

=COUNTA(D:D)
这对你有帮助吗

或者试试看

= COUNTIFS(B:B, "X",C:C, "") + COUNTIFS(B:B, "",C:C, "X") + COUNTIFS(B:B, "X",C:C, "X")
如果您有Excel365,则可以将
FILTER()
函数与
COUNTA()
一起使用


如果您有Excel O365,您可以尝试:

=COUNTA(UNIQUE(FILTER(A:A,(B:B="X")+(C:C="X"))))
如果您有旧版本的Excel,可以尝试:

=SUM(--(FREQUENCY(IF((B1:B4="X")+(C1:C4="X")>0,MATCH(A1:A4,A1:A4,0)),ROW(A1:A4))>0))
不是,最后一个公式是O365之前在Excel中输入的CSE公式。此外,如果数据从不同的行开始,则需要相应地调整公式。请参阅将解释如何使用的链接


如果只想计算至少包含一个“X”的行,请尝试:

这将简单地连接B和C列,然后检查结果值是“X”还是“XX”。如果您甚至没有标题,则可能会更简单:

=SUMPRODUCT(--(B:B&C:C<>""))
=SUMPRODUCT(-B:B&C:C“”)

如果希望te减去标题:
=SUMPRODUCT(--(B:B&C:C“”)-1
请查看下面的
SUMPRODUCT
实现是否对您有用

=SUMPRODUCT(--ISNUMBER(搜索(“X”,B2:B5和C2:C5,1))

或者它需要很紧,避免通配符匹配等问题。然后您也可以尝试:


=SUMPRODUCT(-((B2:B5=“X”)+(C2:C5=“X”)>0))

在计算此条件时,A列是否有任何后果?@shrivallabha.redij否。为了简单起见,我省略了另一个专栏,但A专栏并不相关,这绝对是一个可能的解决方案。不是像我希望的那么简单,但它可以工作。=COUNTIFS(B:B,“X”,C:C,“”)+COUNTIFS(B:B,”,C:C,“X”),如果这有帮助,我会将其添加到答案中,并进行编辑以考虑到这一点,如果它对您有效,请将其标记为答案。第一个解决方案对于相对较多的列非常有用。第二个解决方案在逻辑上更清晰,如果它只针对2列..我将使用这个解决方案。唯一的原因是公式的可读性。我注意到理解你几周前写的东西是非常重要的。我没有365,但我很确定这会让我的电脑慢下来。它需要几秒钟来“设置”公式,但遗憾的是,我无法让它工作。也许这是我的错。让我试几次more@Andreas,完全没问题。我会把答案留在这里,以备将来参考。很抱歉编辑了,我以为会计算两次。这个公式实际上也非常可读,而且要短得多。不过,我花了相当长的时间才使它在VBA中工作。不知道反斜杠在VBA中有这么多麻烦。(更不用说弄清楚问题出在这个人物身上了)。如果有人尝试此答案并尝试使用VBA,请将反斜杠替换为逗号,它将起作用。问题是/曾经是一个公式。虽然我可以说我在VBA中需要它,但我也会冒险结束这个问题,因为在同一个问题中我实际上有两个问题。有人可能会提出一个循环计数的解决方案。这是正确的,但不是我想要的。将公式转换为VBA公式应该不是问题。这也很好。
=SUMPRODUCT(--(B:B&C:C={"X";"XX"}))
=SUMPRODUCT(--(B:B&C:C<>""))