【问题标题】:Get the value from a cell in various sheets in another workbook从另一个工作簿的各个工作表中的单元格中获取值
【发布时间】:2020-05-12 00:00:13
【问题描述】:

我正在尝试使用 Excel 公式而不是 VBA 执行以下操作。我有两个工作簿(比如 WB1 和 WB2),并且都在 Excel 中打开。在 WB1 中,我有一张带有单元格(比如A1)的表格,其中可以有不同的代码,其中一部分是 WB2 中一张表格的名称。代码的形式为DOD8.2x1.9, DOD8.2x2.4...DOD9.2x1.9, DOD9.2x2.4.., DOD10.2x4.9 等,其中直到x 的字符指的是WB2 中的工作表(即DOD8.2, DOD9.2, DOD10.2 等)。我需要 WB1 中另一个单元格的公式(比如B1),它可以获取 WB2 中由该代码定义的工作表中特定单元格的值。我知道B1=[WB2.xlsx]DOD8.2!$EB$6=[WB2.xlsx]DOD10.2!$EB$6 形式的公式是如何从WB2 中的特定工作表中获取单元格值,并且公式=LEFT(A1, FIND("x",A1)-1) 将提取单元格A1 的相关部分给我WB2 中特定工作表的名称,但我无法弄清楚如何使用它来构造一个将两者结合起来的公式,以自动选择由A1 中的代码定义的工作表。我尝试用LEFT(A1, FIND("x",A1)-1) 替换通用公式中的工作表名称(例如DOD10.2),所以我最终使用不同的连接方法得到=[WB2.xlsx]LEFT(A1, FIND("x",A1)-1)!$EB$6,但没有任何效果。任何人都可以提出实现这一目标的方法吗?

【问题讨论】:

  • 研究 INDIRECT 公式。
  • 感谢您的提示。我试过这个=(INDIRECT("[WB2.xlsx]"&"(LEFT(A1, FIND(""x"",A1)-1))"&"!"&"$EB$6")) 和这个=[WB2.xlsx]&"INDIRECT(LEFT(A1, FIND(""x"",A1)-1))"&"!$EB$6",但是第一个出现#REF! 错误,第二个出现Formula problem。我尝试构建公式的字符串是否正确?

标签: excel excel-formula


【解决方案1】:

你们很亲密。

假设您有工作簿WB2,其中包含您描述的三个工作表:DOD8.2DOD9.2DOD10.2。在每张工作表的 A1 单元格中,分别有文本值 foobarbaz

在电子表格WB1 中,您可以按如下方式访问这三个值:

=INDIRECT(CONCAT("[WB2.xlsx]", LEFT(A1, FIND("x",A1)-1), "!$A$1"))

例如:

concat 函数构建一个字符串,表示WB2 中所需工作表的引用。然后indirect 函数将该字符串解释为实际的单元格引用,并显示单元格的内容。

如果你更喜欢使用& 而不是concat,那么你可以使用这个:

=INDIRECT("[WB2.xlsx]" & LEFT(A1, FIND("x",A1)-1) & "!$A$1")

【讨论】:

  • 我自己也设法使用& 解决了这个问题,但我不知道concat 函数。我将来会使用它。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-11
  • 1970-01-01
  • 2013-10-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多