我有一个包含文件名的列:
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 GT;' [Excel1.xlsx]数据'!$ E $ 4,5,0)))
所以我试图将所有这些文件(Excel1,Excel2,Excel3等)中的Excel工作表(数据)与主Excel(MainExcel)进行比较
无需在每一行中逐个更改IF语句,这样做是什么方式?
先谢谢!
答案 0 :(得分:1)
使用concatenate
和indirect
的组合。
由于我不知道您的工作表的完整布局,所以我不会深入了解,例如
=IF(INDIRECT(CONATENATE("[",A1,"]Data'!$C$4"))=4,TRUE,FALSE)
其中A1
是具有其他excel文件名称的单元格。
答案 1 :(得分:1)
您可以使用INDIRECT函数使用单元格引用构建对其他工作簿的引用。
作为一个例子,你可以建立 假设:
B列中的以下条目将从引用的工作簿中提取适当的值。
=INDIRECT("'["&A1&"]Sheet1'!A1")
答案 2 :(得分:0)
使用其他人所说的,假设包含第一个工作簿名称的单元格" 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")。