多个单元格的 MATCH 函数

MATCH function for multiple cells

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

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

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

您可以使用结合了 COUNTIF 和 SUM 的数组公式来检查 Datatable1 中是否存在该值。这样的事情应该有效:

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

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

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

如果没有匹配,return 什么都没有,任何情况 return I7 处的值

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

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

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

因为是数组公式,必须按CTRL+ENTER+SHIFT[=32=输入]