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

时间:2014-06-16 18:46:05

标签: excel if-statement excel-formula

我有一个包含文件名的列:

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语句,这样做是什么方式?

先谢谢!

3 个答案:

答案 0 :(得分:1)

使用concatenateindirect的组合。

由于我不知道您的工作表的完整布局,所以我不会深入了解,例如

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

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

答案 1 :(得分:1)

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

作为一个例子,你可以建立 假设:

  • Excel1.xlsx - > Excel3.xlsx分别具有值1,2,3 Sheet1上的单元格A1,
  • 所有工作簿都是开放的(否则我们必须添加路径信息
  • 文件名在A列中

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")。