使用列中的文件名编辑IF语句

我有一个文件名列:

Excel1.xlsx Excel2.xlsx Excel3.xlsx etc etc etc 

我也有这个IF声明:

= IF( '[MainExcel.xlsx]数据'!$ C $ 4 = '[Excel1.xlsx]数据'!$ C $ 4中,IF( '[MainExcel.xlsx]数据'!$ E $ 4 ='[Excel1.xlsx]数据 '!$ E $ 4,7,IF('[Excel1.xlsx]数据'!$ C $ 4> [Excel1.xlsx]数据'!$ E $ 4,5,0)))

所以我想用一个主Excel(MainExcel)来比较所有这些文件(Excel1,Excel2,Excel3等)中的Excel工作表(数据)

这样做的任何方式,而不必在每一行中逐一更改IF语句?

先谢谢了!

使用concatenateindirect的组合。

由于我不知道你的工作表的完整布局,所以我不会太深入,但是,例如

 =IF(INDIRECT(CONATENATE("[",A1,"]Data'!$C$4"))=4,TRUE,FALSE) 

其中A1是具有另一个excel文件名称的单元格。

您可以使用INDIRECT函数来使用单元格引用来构build对其他工作簿的引用。

作为一个例子,你可以build立。
承担:

  • Excel1.xlsx – > Excel3.xlsx分别在Sheet1的单元格A1中具有值1,2,3,
  • 所有的工作簿都是开放的(否则我们将不得不添加path信息
  • 该文件的名称是在A列

列B中的以下条目将从引用的工作簿中提取适当的值。

 =INDIRECT("'["&A1&"]Sheet1'!A1") 

只要使用别人所说的,假定包含第一个工作簿名称“Excel1.xlsx”的单元格位于单元格A1中,则请尝试:

 =IF(Data!$C$4=INDIRECT("["&A1&"]Data!$C$4"),IF(Data!$E$4=INDIRECT("["&A1&"]Data!$E$4"),7,IF(INDIRECT("["&A1&"]Data!$C$4")>INDIRECT("["&A1&"]Data!$E$4"),5,0))) 

另外,我注意到,第一次比较为false的情况并不包含在你的后续值中(你的函数只返回值“false”)。