使用列中的文件名编辑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语句?
先谢谢了!
使用concatenate
和indirect
的组合。
由于我不知道你的工作表的完整布局,所以我不会太深入,但是,例如
=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”)。