我接手了一个使用以下公式的项目,但我很难理解它。此公式的原作者已不再在公司工作,其他人无法遵循它并将其用于其他应用程序。嵌套的 MATCH 函数如何与 IF 和 ISBLANK 配合使用。有人理解这个吗?仅供参考范围摘要数据输入表'!$A$3:$A3指的是此公式正上方的单元格(公式位于此处:摘要数据输入表'!A4)
{=IF(ISERROR(INDEX('商品清单'!$C$3:$C$107,MATCH(0,IF(ISBLANK('商品清单'!$C$3:$C$107),1,COUNTIF('汇总数据输入表'!$A$3:$A3,'商品清单'!$C$3:$C$107)),0))),"",INDEX('商品清单'!$C$3:$C$107,MATCH(0,IF(ISBLANK('商品清单'!$C$3:$C$107),1,COUNTIF('汇总数据输入表'!$A$3:$A3,'商品清单'!$C$3:$C$107)),0)))}
答案1
MATCH 返回“项目列表”!$C$3:$C$107 中第一个单元格的相对行号,该单元格不为空白 ( ISBLANK('Item List'!$C$3:$C$107)
) 并且还不在Summary Data Entry Sheet
A 列中创建的列表中 ( COUNTIF('Summary Data Entry Sheet'!$A$3:$A3,'Item List'!$C$3:$C$107)
)。
此公式必须放在 A 列第 4 行。 $A$3:$A3
引用将随着复制/向下拖动而发生变化,以始终将 A3 包含到正上方的单元格中作为要计算的范围。
该相对行号用于 INDEX() 返回项目列表'!$C$3:$C$107 中的值。
最终,匹配将用尽列表中满足条件的项目,并返回错误。如果出现错误,则外部 IF 测试将返回空字符串。
在 Excel 的更高版本中,可以使用 IFERROR 简化:
=IFERROR(INDEX('Item List'!$C$3:$C$107,MATCH(0,IF(ISBLANK('Item List'!$C$3:$C$107),1,COUNTIF('Summary Data Entry Sheet'!$A$3:$A3,'Item List'!$C$3:$C$107)),0)),"")
公式周围{}
的文字是 Excel 用来表示数组公式的。
退出编辑模式时,使用 Ctrl-Shift-Enter 而不是 Enter 来确认公式即可。如果操作正确,Excel 会将 放在{}
公式周围。请勿直接输入它们。