0

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

我有一列人名,对于每个人,我都有来自 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 个匹配项,因为没有一个结果匹配。

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

非常感谢您的帮助。

最亲切的问候,

TE

4

3 回答 3

4

你可以试试:

在此处输入图像描述

中的公式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)

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

于 2020-11-26T13:09:46.107 回答
2

您可以结合使用 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 进行比较,如果为真则返回 0,否则返回最大值。

在此处输入图像描述

于 2020-11-26T12:56:22.090 回答
1

像这样的东西会在E列中起作用吗?

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

让我知道这是否适合你。

在此处输入图像描述

于 2020-11-26T13:01:21.860 回答