假设您有一个总计工作表和 5 个其他工作表,这些工作表包含总计工作表的数据。假设每个工作表都定义了相同的表结构。例如
ID | # played
1 | 4
2 | 1
3 | 11
...
如何为总计工作表创建公式,以便我知道# played
所有其他工作表之间 ID 1 的总和,而无需在每次添加新工作表时更改公式?
答案1
以下解决方案不需要您更改现有公式,但是它确实需要一些重复,即您必须在单元格中输入您想要引用的工作表的名称,并且当您更改工作表的名称时,您还必须更改上述单元格中的相应值。
我目前不知道如何仅使用基本的 Excel 公式来更动态地引用工作表名称。
尝试这个:
准备好包含信息的表格,例如将第一张表格命名为“01”,并在 A 列和 B 列中输入数据,例如:
**Sheet 01**
A1 = 1 B1 = 4
A2 = 2 B2 = 1
A3 = 3 B3 = 11
在其他工作表上继续使用此格式,例如:
**Sheet 02**
A1 = 1 B1 = 5
A2 = 2 B2 = 6
A3 = 3 B3 = 7
和
**Sheet 03**
A1 = 1 B1 = 8
A2 = 2 B2 = 9
A3 = 3 B3 = 10
然后创建要显示所有这些信息的工作表。为了便于论述,我们将此工作表称为“摘要”。
然后在摘要表上输入以下内容:
**Summary**
A1 = B1 = 01 C1 = 02 D1 = 03
A2 = 1 B2 = =VLOOKUP($A2,INDIRECT(B$1&"!A:B"),2,FALSE) C1 = D1 =
A3 = 2 B3 = C1 = D1 =
A4 = 3 B4 = C1 = D1 =
然后只需将 B2 中的公式复制到您希望显示值的其余单元格中。
请注意,在此示例中,您必须将 B1:D1 中的单元格格式化为文本,否则 Excel 将自动删除前导 0,并且公式将中断。无论如何,您可能都会使用文本名称作为工作表名称。
该解决方案的缺点是:
- 如前所述,您必须在摘要表中手动输入工作表名称,一旦工作表名称发生变化,您就必须在摘要表中进行修改。
- 考虑到要点(1)以及每次想要扩大汇总值的范围时都必须将公式复制到新单元格这一事实,该解决方案不是动态的。
或者,您也可以考虑将上面汇总表中 B2 中的公式替换为
=IFERROR(VLOOKUP($A2,INDIRECT(B$1&"!A:B"),2,FALSE),"")
然后,您可以用此公式根据需要随意填充摘要表,这样下次向工作簿添加更多工作表时,就可以节省额外的工作。
如果您的工作表名称遵循某种模式,或者您事先知道未来工作表的名称,那么您甚至可以用这些名称预填充第 1 行,并且后一个公式仍然有效,因为在工作表不存在的情况下它不会显示任何内容,并且一旦将具有预先知道的工作表名称的工作表添加到您的工作簿中,它就会显示相关值。