如何将单元格值与工作表名称匹配,然后根据该值返回值

如何将单元格值与工作表名称匹配,然后根据该值返回值

我想将单元格值与工作表名称匹配,然后根据该值返回值。我该怎么做?

例如,有 2 列(A 和 B)

如果范围 A1:A5 中的值 = 其他工作表名称,则返回该其他工作表名称中 B 列的单元格值

先感谢您。

答案1

如果 Sheet1 中的 A2 包含公式,并且 B2 包含工作表名称“Sheet2”,则这将获取 Sheet2!A2 中的值:

=INDIRECT(B2&"!"&ADDRESS(ROW(),COLUMN()))

要获取 Sheet2!B2 中的值,您可以将 1 添加到COLUMN()

=INDIRECT(B2&"!"&ADDRESS(ROW(),COLUMN()+1))

解释:

  • INDIRECT使用格式化为标准单元格引用的文本(例如“A2”或“Sheet2!$A$2”)返回存储在单元格中的值。现在我们将尝试自动生成该文本。
  • ADDRESS(row, col)将单元格和列号转换为文本格式的标准单元格引用。ADDRESS(1,1) 返回“$A$1”,依此类推。
  • ROW()返回公式所在的行号和COLUMN()列号。由于公式在 A2 中,ROW()所以等于 2,COLUMN()等于 1。这些只是普通数字,所以我们可以将列号加 1 得到 B 而不是 A。我们将这些数字提供给ADDRESS(2,2)得到“$B$2”。
  • 我们将此地址附加到 B2 中我们想要的 sheet 名称后面:(B2&!"&ADDRESS(ROW(),COLUMN())不要忘记中间的感叹号),以获得我们需要的完整单元格引用:“Sheet2!$B$2”
  • 最后一步,我们将该文本提供给INDIRECT,它将去获取该地址的值。

相关内容