【问题标题】:MATCH function for multiple cells多个单元格的 MATCH 函数
【发布时间】:2021-09-22 12:55:00
【问题描述】:

我有一个如下公式,它检查两个单元格是否有 Datatable1 的 MATCH(分配了一个带有一些数据的名称)。这里如果有一个单元格与 Datatable1 匹配,则将值写入 I7。

IF(OR((ISNUMBER(MATCH($L7;DataTable1;0))=TRUE);(ISNUMBER(MATCH($O7;DataTable1;0))=TRUE));$I7;"")

是否可以用单个 MATCH 函数压缩公式并检查 $L7 或 $O7 是否与 Datatable1 匹配?唯一的原因是缩短公式。

【问题讨论】:

  • 请注意,您不需要=TRUE
  • 你可以试试:=IF(OR(ISNUMBER(MATCH(CHOOSE({1;2};$L7;$O7);DataTable1;0))),$I7,"")=IF(SUMPRODUCT(COUNTIF(DataTable1;CHOOSE({1;2};$L7;$O7)));$I7;"")
  • 超级!效果很好。谢谢

标签: excel if-statement excel-formula match


【解决方案1】:

您可以使用组合 COUNTIF 和 SUM 的数组公式来检查 Datatable1 中是否存在该值。像这样的东西应该可以工作:

=SUM(COUNTIF(DataTable1;$L7);COUNTIF(DataTable1;$O7))

如果没有巧合,这将返回 0,如果有 1 或 2 个巧合,则返回 1 或 2。然后你只需要将它包装到你的 IF 中:

=IF(SUM(COUNTIF(DataTable1;$L7);COUNTIF(DataTable1;$O7))=0;"";$I7)

如果不匹配,则不返回任何内容,在 I7 处返回任何情况下的值

它更简洁,是一个更短的公式。

编辑:查看@ScottCraner 后,您可以添加 CHOOSE 并使其更短,但作为数组公式:

=IF(SUM(COUNTIF(DataTable1;CHOOSE({1;2};$L7;$O7)))=0;"";$I7)

因为是数组公式,所以必须按CTRL+ENTER+SHIFT

输入

【讨论】:

  • 谢谢! IF(SUM(COUNTIF(DataTable1;CHOOSE({1;2};$L7;$O7)))=0;"";$I7)这个很适合我
猜你喜欢
  • 2017-10-08
  • 1970-01-01
  • 2015-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多