IF(ISNA(INDEX(INDIRECT("'"&$A5&"'!"&CHAR(COLUMN()+68)&":"&CHAR(COLUMN()+68)),MATCH($B$3,INDIRECT("'"&$A5&"'!$E:$E"),0))),0,INDEX(INDIRECT("'"&$A5&"'!"&CHAR(COLUMN()+68)&":"&CHAR(COLUMN()+68)),MATCH($B$3,INDIRECT("'"&$A5&"'!$E:$E"),0)))

问题描述:

IF(ISNA(INDEX(INDIRECT("'"&$A5&"'!"&CHAR(COLUMN()+68)&":"&CHAR(COLUMN()+68)),MATCH($B$3,INDIRECT("'"&$A5&"'!$E:$E"),0))),0,INDEX(INDIRECT("'"&$A5&"'!"&CHAR(COLUMN()+68)&":"&CHAR(COLUMN()+68)),MATCH($B$3,INDIRECT("'"&$A5&"'!$E:$E"),0)))

公式主体部分:INDEX(INDIRECT("'"&$A5&"'!"&CHAR(COLUMN()+68)&":"&CHAR(COLUMN()+68)),MATCH($B$3,INDIRECT("'"&$A5&"'!$E:$E"),0))
INDEX在【指定的工作表区域】中,根据MATCH找到的数据位置,返回对应值.
MATCH是在A5指定的【工作表中的E列】(“INDIRECT("'"&$A5&"'!$E:$E")”),搜索B3数据位置.
INDIRECT("'"&$A5&"'!"&CHAR(COLUMN()+68)&":"&CHAR(COLUMN()+68)是【指定的工作表区域】,INDIRECT将文本字符串转为数据区域引用.“"'"&$A5&"'!"”是指定工作表名并转为标准的引用格式;“&”是文本连接符,将多个文本连成文本字符串;“CHAR(COLUMN()+68)”当前列序数加上68,转为英文字母(加上68是为了使结果刚好是英文字母在字符集中的数字代码区域).
ISNA是检测这个公式是不出错.
IF让出错公式返加0,否则,返回公式结果.