这是我的原始公式
=IF(ISNA(VLOOKUP($A3,INDIRECT("'"&G$2&"'!$B$3:$I$516"),6,FALSE)),"✖",
IF(VLOOKUP($A3,INDIRECT("'"&G$2&"'!$B$3:$I$516"),6,FALSE)=$D3,
IF(INDEX(INDIRECT("'"&G$2&"'!$A$3:$A$516"),
MATCH($A3,INDIRECT("'"&G$2&"'!$B$3:$B$516"),0))>0,
INDEX(INDIRECT("'"&G$2&"'!$A$3:$A$516"),
MATCH($A3,INDIRECT("'"&G$2&"'!$B$3:$B$516"),0)),"✔"),"✓"))
如果未找到值,则会显示 X;如果条件匹配,则会显示第一种复选标记;如果找到了值但条件不匹配,则会显示另一种复选标记。
我今天了解到,ISERROR 通过删除冗余查找缩短了我构建的 ISNA 结构。我如何使用它(或其他方法)来缩短此公式?
答案1
如果您使用的是 Excel 2007 或更高版本,请使用
=IFERROR(IF(VLOOKUP($A3,INDIRECT("'"&G$2&"'!$B$3:$I$516")
,6,FALSE)=D3,"✔","✓"), "✖")
如果使用 Excel 2003 或更早版本,请使用
=IF(ISNA(MATCH($A3,INDIRECT("'"&G$2&"'!$B$3:$b$516"),FALSE)),"✖",
IF(VLOOKUP($A3,INDIRECT("'"&G$2&"'!$B$3:$I$516"),6,FALSE)=D3,"✔","✓"))