我有一张包含多张纸的Excel电子表格。工作表1在A列中有一个查找值,如果它存在于另一个工作表中,我想从另一个工作表中同一行的单元格中返回值,但是从D列返回。如果我努力的话,我已设法让它工作代码表:
=IF(ISERROR(MATCH(A6,Sheet2!B:B,0)),"",INDEX(Sheet2!B:B,MATCH(A6,Sheet2!B:B),0))
但我不想将搜索限制为Sheet2。我试图生成一个命名范围SheetList,用于INDIRECT()
以替换查找数组,如下所示:
=IF(ISERROR(MATCH(A6,(INDIRECT("'"&SheetList&"'!B:B")),0)),"",INDEX(INDIRECT("'"&SheetList&"'!A:A"),MATCH(A6,(INDIRECT("'"&SheetList&"'!B:B")),0)))
但我无法让它发挥作用。我觉得是时候承认失败并寻求帮助了!
由于
答案 0 :(得分:-1)
假设您只有几张要查看的内容,您可以使用嵌套的IFERROR语句完成此操作。 IFFERROR首先尝试执行计算 - 如果该计算有效,则返回该值。如果该计算导致错误,则返回您指定的替换结果。
您可以使用它来检查每张纸,每次找不到匹配时级联到下一张纸,如下所示[注意我已经调整了您的INDEX以从任何纸张列D中拉出值该表中的B与当前工作表上的A6相匹配。这可能不是你想要的那样]:
=IFERROR(INDEX(Sheet2!D:D,MATCH(A6,Sheet2!B:B)),IFERROR(INDEX(Sheet3!D:D,MATCH(A6,Sheet3!B:B)),IFERROR(INDEX(Sheet4!D:D,MATCH(A6,Sheet4!B:B)),""))))
这首先尝试从sheet2中抓取D列,其中A6在B列的B列中找到;如果它出错,则它会尝试第3页,如果出现错误,则尝试第4页。如果在第4页中找不到匹配,则会提供空白回复。
答案 1 :(得分:-1)
如果你还没有解决这个问题。尝试...
=IF(ISERROR(MATCH(A6,(INDIRECT("'"&"Sheet2"&"'!"&B:B)),0)),"",INDEX(INDIRECT("'"&"Sheet2"&"'!"A:A),MATCH(A6,(INDIRECT("'"&"Sheet2"&"'!"B:B)),0)))
或在A1中输入工作表名称,在B1中输入范围,然后引用它们
...indirect("'"&A1&"'!"&B1)...
然后您只需更改A1或B1中的值即可使其动态化:)