我有 10 多个工作表,布局相同,所有工作表都包含来自不同工作日的数据。我正在尝试创建一个“SimpleSheet”,它仅从一天的工作表中提取特定数据,布局良好。到目前为止,我都是手动完成的:
A1 | ='DaySheet1'.A1
A2 | ='DaySheet1'.A2
我想要做的是将函数改为 DaySheet 中所说的“拉出我在 SimpleSheet 单元格 B1 中定义的工作表”
B1 | *whatever sheet*
A1 | ='B1'.A1
A2 | ='B1'.A2
答案1
使用Indirect
。
Indirect
允许您使用字符串作为工作表位置的引用。因此,如果单元格 A1 的内容设置为“DaySheet”,则可以使用公式=Indirect(A1)
!B1,结果将是 DaySheet 工作表中单元格 B1 中的内容。
来自支持页面:
您可以使用 INDIRECT 函数单独引用引用的每个属性(工作簿名称、工作表名称和单元格引用),以创建以工作表单元格引用为输入的用户定义的动态引用。
编辑:可能需要提及如何处理引用当前单元格。
要从工作表向下钻取到单元格,您可以使用字符串引用(例如“A1”)concatenate
d 进行间接引用,也可以使用address
函数动态执行此操作。以下是两者的示例:
细绳:
=INDIRECT(CONCATENATE($A$1,"!,"B1"))
动态的:
=INDIRECT(CONCATENATE($A$1,"!",ADDRESS(ROW(), COLUMN(), 4)))
第一种最简单,因为您不需要从太多单元格中复制。如果单元格太多,我会选择第二种。
MS 帮助地址功能。