计算 3 列中同一行中的匹配项数

Count how many matches in the same row across 3 columns

希望有人能提供帮助,如果可能的话,我正在寻找解决以下问题的公式。

我有一列人名,对于这些人中的每一个人,我都有来自 3 个不同来源的 3 列数据 - 我需要确定这 3 列中的数据与每个人匹配的次数。经过广泛的谷歌搜索后,我只能找到将结果汇总在从 COUNTIF 范围派生的单元格中的解决方案,但是我需要将每个人的结果汇总在同一行中。

例如: “Dave”在单元格 A2 中,他的结果是:列 B2 = FAIL,C2 = PASS 和 D2 = PASS - 所以在这种情况下我们有 2 场比赛,因为有 2 次通过。 “Sue”在单元格 A3 中,她的结果是:列 B3 = FAIL,C3 = FAIL 和 D3 = FAIL - 所以在这种情况下我们有 3 场比赛,因为有 3 场比赛失败。 “Colin”在单元格 A4 中,他的结果是:B4 列 = TBA,C4 = FAIL 和 D4 = PASS- 所以在这种情况下,我们有 0 个匹配项,因为 none 结果匹配。

理想情况下,我希望每个人的匹配项数列在 E 列中,因此 Dave 的匹配结果将在单元格 E2 中,Sue 的匹配结果将在 E3 中,而 Dave 的匹配结果将在 E4 中。

非常感谢您的帮助。

最诚挚的问候,

TE

您可以结合使用 IF() MAX() 和 COUNTIF。
在 E2 中:

=IF(MAX(COUNTIF(B2:D2,B2),COUNTIF(B2:D2,C2),COUNTIF(B2:D2,D2))=1,0,MAX(COUNTIF(B2:D2,B2),COUNTIF(B2:D2,C2),COUNTIF(B2:D2,D2)))

所以它进行三个独立的 countif 来查看每个单元格中有多少是“重复的”。
取它们的最大值并与 1 进行比较,如果为真则 return 0,否则 return 最大值是多少。

在 E 列中这样的东西行得通吗?

=if(countif(B2:D2,B2)=3,3,if(countif(B2:D2,B2)=2,2,if(countif(B2:D2,C2)=2,2,0)))

让我知道这是否适合你。

你可以试试:

E1中的公式:

=INDEX({0,2,3},MAX(COUNTIF(B1:D1,B1:D1)))

给好奇的小伙伴解释一下:

  • COUNTIF(B1:D1,B1:D1) - 将生成一个包含三个值的数组(每列 1 个),关于这些值在三个单元格中出现的频率。
  • MAX() - 获取前一个数组的最大值。
  • INDEX({0,2,3}) - 由于 MAX() 的结果只能是 1-3,我们可以将其作为行参数提供给 INDEX() 函数。这将导致 0、2 或 3。

不那么冗长而且可能更明确的是:

=MIN(((B1=C1)+(C1=D1)+(B1=D1))*2,3)

在最后一个公式中,我们使用了 TRUEFALSE 等价于 10 的事实,因此我们可以添加多个布尔值。通过一些数学运算,我们就可以得到我们想要的结果。