Excel 结构化引用,您必须知道的所有秘密
Excel 结构化引用,您必须知道的所有秘密
Excel作为一个允许您创建复杂数据表的程序而广为人知。然而,有些人不太熟悉这些表格所附带的一种特殊类型的引用:结构化引用。结构化引用可在 Excel 2016 或更高版本(包括 Excel 365)中使用。
什么是结构化引用?
Excel 中的直接单元格引用使用列和行标题标签将一个单元格链接到另一个单元格。例如,单元格 A1 位于第一列和第一行,而单元格 C10 位于第三列和第十行。
另一方面,结构化引用不使用列和行标题标签,而是使用表名和列名。在下面的示例中,
=SUM([@[每日利润]]*7)
获取名为“每日利润”的列中每个单元格中的值,并将它们乘以 7。
在表内使用结构化引用
要在您的表内使用结构化引用,如上面的示例所示,您首先需要向 Excel 工作表添加一些数据,并在数据顶部包含列名。如果您不添加列名,Excel 将默认显示为‘列 1’、‘列 2’等等,这在您之后想要在公式中使用这些标题时就会非常不清晰。
在使用任何数据进行计算之前,在您的数据中选择一个单元格,然后在功能区的“主页”选项卡中单击“格式化为表”。在那里,选择最适合您的设计。
现在,使用“创建表”对话框来核实您的所有数据是否都已被选中,勾选“我的表有标题”复选框,然后单击“确定”。
既然您的数据已经在格式化好的 Excel 表里面了,那您就能够使用结构化引用啦
在我的示例中,我将选择单元格 C2(我要创建计算的第一个单元格),然后输入:
=SUM(
现在,我将单击“每日利润”列中包含数据的第一个单元格,Excel 将插入对该列的结构化引用。
=SUM([@[每日利润]]
方括号是 Excel 用来表示它正在使用结构化引用的方式,@ 符号(也被称作交集运算符)意味着计算会分别应用到表中的每一行。
最后,我需要将“每日利润”列中的值乘以 7 以生成每周利润,并关闭圆括号。
=SUM([@[每日利润]] *7)
当我按下回车键时,该公式将自动复制到“每周利润”列中的其余单元格。
如果我手动删除 @ 符号,“每周利润”列中的计算将对整个“每日利润”列求和,并将该总和乘以 7。
在表外使用结构化引用
结构化引用也用于 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])
当我按下回车键时,每周利润就成功地从我的表中被检索出来了。
为何使用结构化引用?
您可能在想,“有什么意义?” 好吧,在 Excel 中处理表时,使用结构化引用而不是直接引用有无数的好处。
首先,结构化引用比直接引用更易于创建和读取。因此,我只需瞥一眼就能理解我的公式的意图,如果 Excel 返回错误,我可以轻松 解析我的公式。
其次,如果我通过点击并拖动右下角标有‘A’的手柄(见下面的屏幕截图)给我的表格添加额外的一行,然后用更多数据填充这额外的一行,我在电子表格中已经使用的结构化引用将自动应用于这些新数据。
在这个示例中,我给一个额外的站点添加了数据(第 10 行)。当我添加每日利润时,每周利润不仅会自动计算,而且我还把单元格 E2 中的站点引用改成了站点 I,并且数据也已被正确检索。如果我使用了直接引用,我将不得不进行多次手动调整才能达到相同的结果。
第三,如果我要在“每日利润”和“每周利润”列之间添加另一列,我可以放心,因为我知道对于现有列的任何引用都会保持不变,因为我引用的是列名而不是与每列相关联的字母。
最后,结构化引用是动态的。如果我更改了表格列中的一个名称,所有相关的结构化引用都会相应地更新。在这个示例中,我将“每周利润”列更改为“总计”,单元格 E4 中的 XLOOKUP 公式已采纳了这个修改。
简而言之,一旦您在 Excel 里创建了一个表格,您就该考虑使用结构化引用来充分利用您的数据。
除了上述好处之外,结构化引用比直接引用使用更少的计算机内存——这只是加快 Excel 电子表格速度的众多方法之一。