关于 Excel 中的结构化引用您需要了解的一切
结构化引用可在 Excel 2016 或更高版本(包括 Excel 365)中使用。
什么是结构化参考?
Excel 中的直接单元格引用使用列和行标题标签将一个单元格链接到另一个单元格。例如,单元格 A1 位于第一列第一行,而单元格 C10 位于第三列第十行。
另一方面,结构化引用不使用列和行标题标签,而是使用表和列名称。在下面的例子中,
=SUM([@[Daily profit]]*7)
获取名为“每日利润”的列中每个单元格中的值并将其乘以七。
在表中使用结构化引用
要在表中使用结构化引用(如上例所示),您首先需要向 Excel 工作表添加一些数据,并在该数据的顶部包含列名称。如果不添加列名称,Excel 将默认为“列 1”、“列 2”等,当您稍后想要在公式中使用标题时,这一点就不太清楚了。
在使用任何数据创建计算之前,请在数据中选择一个单元格,然后单击功能区“主页”选项卡中的“格式化为表格”。在那里,选择最适合您的设计。
现在,使用“创建表”对话框验证是否已选择所有数据,选中“我的表有标题”复选框,然后单击“确定”。
现在您的数据位于格式化的 Excel 表格中,您就可以使用结构化引用了。
在我的示例中,我将选择单元格 C2(我要在其中创建计算的第一个单元格),然后键入:
=SUM(
现在,我将单击“每日利润”列中包含数据的第一个单元格,Excel 将插入对该列的结构化引用。
=SUM([@[Daily profit]]
方括号是 Excel 指示其使用结构化引用的方式,@ 符号(也称为交集运算符)表示计算将分别应用于表中的每一行。
最后,我需要将“每日利润”列中的值乘以七以生成每周利润,并关闭圆括号。
=SUM([@[Daily profit]]*7)
当我按 Enter 时,公式将自动复制到“每周利润”列中的其余单元格。
如果我手动删除@符号,“每周利润”列中的计算将对整个“每日利润”列求和,并将该总数乘以七。
在表外使用结构化引用
结构化引用还可以在引用表数据的 Excel 表外部的公式中使用。在此示例中,我将使用 XLOOKUP 公式根据单元格 E2 中指定的站点在单元格 E4 中生成每周利润。
第一步是命名表。否则,Excel 会将我的数据命名为 Table1,如果我的工作簿中有多个表,这可能会造成混乱。事实上,无论何时在 Excel 中创建表格,养成命名表格的习惯都是很好的做法,即使您不打算在电子表格的其他任何地方引用它们。
为此,我将选择表中的任何单元格,打开功能区上的“表设计”选项卡,然后在“表名称”字段中键入适当的名称。就我而言,我将把我的表称为“利润”。
命名表时必须遵循某些规则:
- 表名必须以字母、下划线 (_) 或反斜杠 (\) 开头。
- 表名称的其余部分可以是最多 255 个字母、数字、句点和下划线的组合。
- 您的表格不能称为“C”、“c”、“R”或“r”,因为这些在 Excel 中用于其他目的。
- 您的表格也不能与单元格引用相同,例如 A1 或 $A$1。
- 尽量将表名保持为一个单词,以便于引用。但是,如果您必须使用多个单词,请在每个单词之间使用下划线(而不是空格)。
- 确保该表名称未在工作簿的其他地方使用。
现在,在单元格 E4 中,我可以通过键入以下内容来启动 XLOOKUP 公式:
=XLOOKUP(E2
然后,我需要选择查找数组,即单元格 A2 到 A9。请注意我的公式如何自动将其转换为结构化引用,其中“Profits”是我之前创建的表名称,“Site”是列标题。
=XLOOKUP(E2,Profits[Site],
最后,我可以选择返回数组,即单元格 C2 到 C9,并关闭圆括号。 Excel 再次将其变成了我的结构化参考。
=XLOOKUP(E2,Profits[Site],Profits[Weekly profit])
当我按下 Enter 键时,每周利润会成功地从我的表中检索出来。
为什么使用结构化引用?
您可能会想:“这有什么意义?”嗯,在处理 Excel 中的表格时,使用结构化引用而不是直接引用有无数的好处。
首先,结构化引用比直接引用更容易创建和阅读。因此,我只需看一眼公式就可以了解它们的用途,并且如果 Excel 返回错误,我可以轻松解析我的公式。
其次,如果我要通过单击并拖动右下角的手柄(在下面的屏幕截图中标记为“A”)向表中添加额外的行,然后用附加数据填充额外的行,则结构化引用我已在我的电子表格中使用过的数据将自动应用于此新数据。
在此示例中,我添加了额外站点的数据(第 10 行)。当我添加每日利润时,不仅每周利润会自动计算,而且我还将单元格 E2 中的站点引用更改为站点 I,并且数据已正确检索。如果我使用直接引用,我将不得不进行多次手动调整才能达到相同的结果。
第三,如果我要在“每日利润”和“每周利润”列之间添加另一列,我可以放心,因为我知道对现有列的任何引用都将保持安全,因为我引用的是列名称而不是与每列相关的字母。
最后,结构化参考是动态的。如果我更改表列之一的名称,所有相关的结构化引用将相应更新。在此示例中,我已将“每周利润”列更改为“总计”,并且单元格 E4 中的 XLOOKUP 公式已采用此修改。
简而言之,一旦在 Excel 中创建表格,您就应该考虑使用结构化引用来充分利用数据。
除了上面列出的优点之外,结构化引用还比直接引用占用更少的计算机内存 — 这只是加快 Excel 电子表格速度的众多方法之一。