Excel:在比较不同Excel工作簿中的数据时,避免使用复杂的公式

Excel:在比较不同Excel工作簿中的数据时,避免使用复杂的公式,excel,Excel,当我编写公式来比较不同工作簿中的数据时,公式看起来非常混乱,因为每次我引用不同工作簿中的值时,工作簿的整个名称都会出现在公式中。是否有一种方法可以为工作簿名称指定别名,使公式更具可读性?最简单的方法是以位(单独的单元格)存储工作簿的路径 在book1中使用变量(单元格中的文本)类型: A1 = book2 A2 = Sheet1 A3 = A1 现在转到book1中的任何空单元格并键入公式 =INDIRECT("'["&A1&"]"&A2&"'!"&A3

当我编写公式来比较不同工作簿中的数据时,公式看起来非常混乱,因为每次我引用不同工作簿中的值时,工作簿的整个名称都会出现在公式中。是否有一种方法可以为工作簿名称指定别名,使公式更具可读性?

最简单的方法是以位(单独的单元格)存储工作簿的路径

在book1中使用变量(单元格中的文本)类型:

A1 = book2
A2 = Sheet1
A3 = A1
现在转到book1中的任何空单元格并键入公式

=INDIRECT("'["&A1&"]"&A2&"'!"&A3)
Indirect()
从单元格中提取值并替换它们,创建一个字符串,该字符串最终等于
=[Book2.xlsm]Sheet1!A1

因此,您可以使用在book1的任何其他单元格中输入的值,而不是对其他打开的工作簿、工作表或区域的名称进行硬编码

现在,如果要将该值与另一本书中的其他单元格进行比较,请将
A3
替换为实际值,或将
A3
A1
更改为其他单元格


=INDIRECT()
函数有一个缺点。它不适用于关闭的工作簿。

您可以使用命名范围引用其他工作簿

只需添加一个命名范围作为正常范围,然后输入:

=[WorkbookName]Sheetname!Range
乙二醇


然后,您可以在取值范围的公式中使用此选项,引用单个值可能更为棘手,您需要使用查找/索引。

另一个工作簿是关闭的还是打开的?请参阅另一个工作簿是打开的
=[Book1]Sheet1!$A$1:$A$10