通过iserror和vlookup通过工作表寻找值

时间:2017-11-08 11:26:01

标签: excel

我正在尝试遍历几个工作表来检测值。这个值将存在于许多工作表中,但我想找到最早的工作表。每个选项卡包含每周数据。第一周将首次包含数据。下周将包括前几周的数据。我的目标是找到第一次报告用户的时间。我已尝试使用for循环,匹配和索引函数的不同VBA代码,但没有运气。

我决定使用以下功能:

  

= IF(ISERROR(VLOOKUP(A3,表1 DataExtract.xlsx [#DATA],1,FALSE)),"!"&#34 6/11/2017年&#34)

这行代码完美无缺,完成了任务,但只能搜索24个工作表中的1个。

我尝试多次运行此命令,但没有运气

  

= IF(ISERROR(VLOOKUP(A2,DataExtract.xlsx表1 [#DATA],1,FALSE)),"!"&#34 6/11/2017年&#34) ,   IF(ISERROR(VLOOKUP(A2,DataExtract.xlsx表2 [#DATA],1,FALSE)),"!"&#34 13/11/2017年&#34),   IF(ISERROR(VLOOKUP(A2,DataExtract.xlsx表3 [#DATA],1,FALSE)),"!"&#34 20 /二千零十七分之一十一&#34)

每个不同的表包含存储在不同工作表中的每周数据。

可以修改此代码以使其正常工作,或者我唯一的机会是继续搜索宏来执行我的任务吗?任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

感谢对这篇文章发表评论的用户的帮助,我设法解决了我的问题。

以下代码是我需要的代码。它使用第二个if函数作为第一个表达式的false部分,当在第一个表中找不到它搜索的值时,它位于不同的工作簿中。

  

= IF(NOT(ISERROR(VLOOKUP(F2,DataExtract.xlsx!Table1 [电子邮件地址],1,FALSE))),“6/11/2017”,   IF(不是(ISERROR(VLOOKUP(F2,DataExtract.xlsx!Table2 [电子邮件地址],1,FALSE))),“13/11/2017”,“Not There”))