Excel表格中的结构化引用

  • Share This
Michael Brown

本教程解释了Excel结构化引用的基础知识,并分享了在实际公式中使用它们的一些窍门。

Excel表格最有用的功能之一是结构化引用。 当你刚刚偶然发现引用表格的特殊语法时,它可能看起来很枯燥和混乱,但在试验一番后,你一定会发现这个功能是多么有用和酷。

    Excel结构化参考

    A 结构化参考 ,或 表格参考 是引用表格及其部分的特殊方式,它使用表格和列名的组合而不是单元格地址。

    之所以需要这种特殊的语法,是因为Excel表格(相对于范围)是非常强大和有弹性的,普通的单元格引用不能随着数据的添加或删除而动态调整。

    例如,要对单元格B2:B5中的数值进行求和,可以使用SUM函数与通常的范围参考。

    =SUM(B2:B5)

    为了将表1的 "销售 "列中的数字相加,你使用了一个结构化引用。

    =SUM(Table1[Sales])

    结构化参考文献的主要特点

    与标准的单元格引用相比,表格引用有许多高级功能。

    很容易创建

    要在你的公式中添加结构化引用,你只需选择你想引用的表格单元格。 不需要了解特殊的语法。

    有弹性并自动更新

    当你重新命名一个列时,引用会自动更新为新的名称,并且公式不会中断。 此外,当你向表中添加新的行时,它们会立即包括在现有的引用中,并且公式会计算全部数据。

    因此,无论你对你的Excel表格做什么操作,你都不必担心更新结构化引用。

    可在桌内和桌外使用

    结构化引用可以在Excel表格内部和外部的公式中使用,这使得在大型工作簿中定位表格更加容易。

    公式自动填充(计算栏)。

    要在每个表格行中进行同样的计算,只需在一个单元格中输入一个公式即可。 该列中的所有其他单元格都会自动填充。

    如何在Excel中创建一个结构化引用

    在Excel中进行结构化引用是非常简单和直观的。

    如果你正在处理一个范围,首先将其转换为Excel表格。 为此,选择所有数据并按Ctrl + T 。 更多信息,请参见如何在Excel中创建一个表格。

    要创建一个结构化的引用,这是你需要做的。

    1. 像往常一样开始输入一个公式,以等号(=)开始。
    2. 当涉及到第一个引用时,在你的表格中选择相应的单元格或单元格区域,Excel会自动拾取列名并为你创建一个适当的结构化引用。
    3. 键入闭合括号并按回车键。 如果公式是在表格内创建的,Excel会自动用相同的公式填充整个列。

    作为一个例子,让我们把样本表中每一行的3个月的销售数字加起来,名为 销售 为此,我们在E2中键入=SUM(,选择B2:D2,键入结束括号,然后按回车。

    结果,整个E列被自动填上了这个公式。

    =SUM(Sales[@[Jan]:[Mar]] )

    虽然公式是一样的,但每一行的数据都是单独计算的。 要了解内部机制,请看一下表格参考语法。

    如果你正在输入一个公式 表外 ,而且该公式只需要一个单元格范围,一个更快的方法是这样进行结构化引用。

    1. 在开头的括号后,开始键入表名。 当你键入第一个字母时,Excel将显示所有匹配的名称。 如果有必要,多键入几个字母以缩小列表范围。
    2. 使用方向键选择列表中的表名。
    3. 双击所选名称或按Tab键,将其添加到你的公式中。
    4. 键入闭合小括号并按回车键。

    例如,为了找到我们样本表中最大的数字,我们开始输入MAX公式,在开头的括号后输入 "s",选择 销售 列表中的表,并按Tab键或双击该名称。

    作为结果,我们有这样的公式。

    =MAX(Sales)

    结构化引用语法

    如前所述,你不需要知道结构化引用的语法来将其纳入你的公式中,然而这将有助于你理解每个公式的实际作用。

    通常情况下,结构化引用由一个字符串表示,该字符串以表名开始,以列指定符结束。

    作为一个例子,让我们来分析一下下面的公式,该公式将下列各项的总数相加 南方 北方 表中的列名为 地区 :

    该参考资料包括三个部分。

    1. 表名
    2. 项目说明者
    3. 列的指定者

    要看哪些单元格是实际计算的,选择公式单元格并点击公式栏的任何地方。 Excel将突出显示引用的表格单元。

    表名

    表名只引用了 表格数据 它可以是一个默认的表名,如 表1 或一个自定义名称,如 地区 要给你的表起一个自定义名称,请执行以下步骤。

    如果你的公式位于它所指的表内,表名通常被省略,因为它是隐含的。

    列的指定

    列指定器引用相应列中的数据,不包括标题行和总行。 列指定器由括号内的列名表示,例如[南]。

    要指代一个以上的连续列,使用范围运算符,如[[南]:[东]]。

    项目说明者

    要引用一个表格的特定部分,你可以使用以下任何一个指定器。

    项目说明者 指的是
    [#全部] 整个表格,包括表格数据、列标题和总行。
    [#数据] 的数据行。
    [#标题] 标题行(列标题)。
    [#Totals] 总行。 如果没有总行,则返回null。
    [@Column_Name] 当前行,即与公式相同的行。

    请注意,除了当前行之外,所有的项目指定符都使用了磅符号(#)。 为了指代你输入公式的同一行的单元格,Excel使用@字符,后面是列名。

    例如,要将数字加在 南方 西部 当前行的列,你会使用这个公式。

    =SUM(Regions[@South], Regions[@West])

    如果列名中包含空格、标点符号或特殊字符,则列名周围会出现一组额外的括号。

    =SUM(Regions[@[South sales]], Regions[@[West sales]] )

    结构化参考运算符

    以下运算符允许你结合不同的指定器,为你的结构化引用添加更多的灵活性。

    范围操作符(冒号)。

    与普通的范围引用一样,你可以使用冒号(:)来引用表格中两个或多个相邻的列。

    例如,下面的公式是将所有列中的数字加起来,其中包括 南方 东部 .

    =SUM(Regions[[South]:[East]])

    联合运算符(逗号)

    要引用不相邻的列,请用逗号分隔列的指定符。

    例如,下面是你如何将数据行相加的方法。 南方 西部 列。

    =SUM(Regions[South], Regions[West])

    交叉运算符(空间)

    它被用来指代位于特定行和列的交叉点的单元格。

    例如,要返回一个位于 共计 行和 西部 列,请使用此参考。

    =地区[[#总数]地区[[#全部],[西部]]

    请注意,在这种情况下,[#所有]指定符是必须的,因为列指定符不包括总行。 没有它,公式将返回#NULL!。

    表的参考语法规则

    要手动编辑或制作结构化参考资料,请遵循以下准则。

    1.用方括号括起来的说明者

    所有栏目和特殊项目的指定者必须用[方括号]括起来。

    一个包含其他指定符的指定符应被包裹在外括号中。 例如,Regions[[South]:[East]]。

    2.用逗号隔开内部指定器

    如果一个指定符包含两个或多个内部指定符,这些内部指定符需要用逗号隔开。

    例如,要返回头的 南方 列,你在[#Headers]和[South]之间输入一个逗号,并将整个结构包围在一组额外的括号内。

    =区域[[#标题],[南方]]

    3.不要在列标题周围使用引号

    在表格参考中,无论是文本、数字还是日期,列标题都不需要引号。

    4.对列标题中的一些特殊字符使用单引号

    在结构化引用中,一些字符如左括号和右括号、磅符号(#)和单引号(')有特殊含义。 如果上述任何字符包含在列头中,在列指定符中的该字符之前需要使用单引号。

    例如,对于列标题 "Item #",指定器是[Item '#]。

    5.使用空格,使结构化的参考资料更易阅读

    为了提高表格引用的可读性,你可以在指定符之间插入空格。 通常,在逗号之后使用空格被认为是一个好的做法。 例如。

    =AVERAGE(Regions[South], Regions[West], Regions[North])

    Excel表格参考--公式示例

    为了进一步了解Excel中的结构化引用,让我们再来看看几个公式的例子。 我们会尽量让它们简单、有意义和有用。

    查找Excel表格中的行数和列数

    要获得总的列数和行数,请使用COLUMNS和ROWS函数,它们只需要表名。

    COLUMNS( 桌子 ) ROWS( 桌子 )

    例如,要找到列的数量和 数据行 的表格中的 销售 ,使用这些公式。

    =COLUMNS(Sales)

    =ROWS(Sales)

    要包括 页眉 总行数 在计数中,使用[#ALL]指定器。

    =ROWS(Sales[#All])

    下面的屏幕截图显示了所有公式的运行情况。

    计算一列中的空白和非空白

    当计算特定列中的东西时,一定要在表外输出结果,否则你可能会出现循环引用和错误的结果。

    要计算一列中的空白,请使用COUNTBLANK函数。 要计算一列中的非空白单元,请使用COUNTA函数。

    例如,要想知道有多少个细胞在 有多少列是空的,有多少列包含数据,使用这些公式。

    空白。

    =COUNTBLANK(Sales[Jan])

    非空白。

    =COUNTA(Sales[Jan])

    要计算非空白细胞在 可见行 在一个经过过滤的表中,使用SUBTOTAL函数,函数_num设置为103。

    =SUBTOTAL(103,Sales[Jan])

    在Excel表格中求和

    在Excel表格中,将数字相加的最快方法是启用总行选项。 要做到这一点,右击表格中的任何单元格,指向 ,然后点击 总数行 总数行将直接出现在你的表格末尾。

    有时,Excel可能会认为你只想对最后一列进行合计,而使合计行中的其他单元格处于空白状态。 要解决这个问题,请在合计行中选择一个空单元格,点击该单元格旁边出现的箭头,然后在列表中选择SUM函数。

    这将插入一个SUBTOTAL公式,该公式只对下列数值进行求和 可见行 ,忽略了被过滤掉的行。

    =SUBTOTAL(109,[Jan])

    请注意,这个公式只在 总行 如果你试图在数据行中手动插入它,这将创建一个循环引用,并返回0作为结果。 出于同样的原因,一个具有结构化引用的SUM公式也不会工作。

    因此,如果你想获得总数 表内 ,你需要启用总行或使用一个正常范围的参考,如。

    =SUM(B2:B5)

    桌子外面 ,带有结构化引用的SUM公式就可以正常工作了。

    =SUM(Sales[Jan])

    请注意,与SUBTOTAL不同的是,SUM函数将所有行的值加起来,不管是可见还是隐藏的。

    Excel中的相对和绝对结构化引用

    默认情况下,Excel结构化引用的行为方式如下。

    • 多列 参考资料是 绝对的 并且在复制公式时不会改变。
    • 单列 参考资料是 相对 当通过相应的命令或快捷键(Ctrl+C和Ctrl+V)复制/粘贴时,它们不会改变。

    当你需要结合相对和绝对的表格引用时,没有办法在复制公式的同时保持表格引用的正确性。 拖动公式会将引用改为单列,复制/粘贴快捷方式会使所有的引用变成静态的。 但是有几个简单的技巧可以绕过!

    对单列的绝对结构化引用

    要使单列引用成为绝对的,重复列名,正式将其变成范围引用。

    相对列的参考(默认)。

    表[列]

    绝对列参考

    表[[列]:[列]]

    为了使绝对引用 当前行 ,在列的标识符前加上@符号。

    表[@[列]:[列]]

    为了了解相对和绝对表引用在实践中是如何工作的,请考虑以下例子。

    假设你想把一个特定产品3个月的销售数字加起来,为此,我们在某个单元格(在我们的例子中是F2)中输入目标产品的名称,并使用SUMIF函数得到以下总数 销售。

    =SUMIF(Sales[Item], $F$2, Sales[Jan])

    问题是,当我们把公式向右拖动以计算其他两个月的总数时,[项目]的参照物就会改变,公式就会中断。

    为了解决这个问题,使[项目]的引用成为绝对的,但保持[Jan]的相对性。

    =SUMIF(Sales[[Item]:[Item]], $F$2, Sales[Jan] )

    现在,你可以把修改后的公式拖到其他列,而且效果很好。

    对多列的相对结构化引用

    在Excel表格中,对几列的结构性引用就其性质而言是绝对的,在复制到其他单元格时保持不变。

    对我来说,这种行为是非常合理的。 但如果你需要使结构化的范围引用相对化,就在每一列的指定符前加上表名,并删除外面的方括号,如下图所示。

    绝对范围参考(默认)。

    table[[column1]:[column2]]

    相对范围参考

    表[column1]:表[column2]

    要参考的是 表内的当前行 ,使用@符号。

    [@column1]:[@column2] 。

    例如,下面的公式有一个 绝对结构化参考 的当前行中的数字相加。 2月 当复制到另一列时,它仍将是 2月 .

    =SUM(Sales[@[Jan]:[Feb]] )

    如果你想根据复制公式的那一列的相对位置来改变参考值,请将其改为 相对 :

    =SUM(Sales[@Jan]:Sales[@Feb])

    请注意F列中的公式转换(表名被省略了,因为公式在表内)。

    这就是在Excel中进行表格引用的方法。 要想仔细看看本教程中讨论的例子,请随时下载我们的样本工作簿,以Excel结构化引用。 感谢你的阅读,希望下周能在我们的博客上见到你。

    Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.