【问题标题】:Excel: Count if value is present in 3 columnsExcel:计算值是否存在于 3 列中
【发布时间】:2020-09-08 18:19:50
【问题描述】:

如何计算所有三列中存在的值的数量?

例如,“L160”是所有 3 列中唯一的值,因此公式应该等于 1。

Screenshot of values

【问题讨论】:

  • 您只想知道第三列中的值是否存在于其他两列中? 1 如果它在每一列中至少一次?如果它不存在于任何列中,则为 0?
  • 如果第一列 3 次,第二列 2 次,第三列 4 次,应该是多少? 1 还是?
  • @ForwardEd,该数字不会在列中出现多次,因为它们代表人并且是唯一代码。正确,只要在所有 3 列中看到相同的代码,它就应该只是读取 1。

标签: excel excel-formula formula


【解决方案1】:

以下公式将检查 C 中的值是否在 A 中至少出现一次,在 B 中至少出现一次,并确保 C 中的值不为空。如果所有三个条件都为真,则返回 1,失败则返回 0

=--AND(COUNTIF(A:A,C2)>=1,COUNTIF(B:B,C2)>=1,C2<>"")

将上面的公式放在空单元格中并根据需要复制下来。

【讨论】:

  • 谢谢@ForwardEd,这似乎效果最好!我最初希望我不需要帮助列来添加它,但它会工作得很好! :) 一切顺利!
【解决方案2】:

您可以使用Match() 函数开始:如果找到字符串,则显示位置。如果没有,您会收到一条错误消息。使用If() 函数检查此返回值:如果值正常(大于0),则返回值1,否则返回0。

=IF(MATCH(C2;A$2:A$39;0)>0;1;0)

结果要么是 1(C2 出现在 A 列中)要么是 #Error(我尝试得到 0,但失败了,不过没问题)。

您可以执行 3 次,然后添加结果,例如:

=IF(MATCH(C2;A$2:A$39;0)>0;1;0)
+IF(MATCH(C2;B$2:B$39;0)>0;1;0)
+IF(MATCH(C2;C$2:C$5;0)>0;1;0)

您将结果除以三,以便成功的结果等于 1。

在此之上,您应用 IFERROR() 函数,将错误转换为 0。

你走吧:-)

【讨论】:

  • 只需将三个ISNUMBER(MATCH()) 相乘即可得到 1 或 0。
【解决方案3】:

如果有新的动态数组公式:

=SUMPRODUCT(ISNUMBER(MATCH(UNIQUE(FILTER(C:C,C:C<>"")),A:A,0))*ISNUMBER(MATCH(UNIQUE(FILTER(C:C,C:C<>"")),B:B,0)))

不需要辅助列。

【讨论】:

  • 悬而未决的问题是,在给定列中有多个条目的情况下,OP 是否希望答案为 1 或更多?
猜你喜欢
  • 1970-01-01
  • 2012-05-05
  • 2020-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多