大家好,不知道大家最近是否经常发现,在一些Excel高手使用的高级的数组公式运用过程中,经常在公式中频繁出现"@"(艾特符)、"#"(井号)、"."(点号)这几种符号,有时候大家感到挺困惑的,这些貌似与公式不搭边的符号,到底是干什么的?
今天我们就借这篇文章,普及一下这3种冷门符号在公式中的作用。
虽然了解并掌握这些符号,并不能立即带给我们对于写公式上的质的飞跃,但是最起码当我们看到高手写的公式里面出现这些符号时,不会一脸茫然,不知所措。
符号@:隐式交集运算符
它的作用是从数组或范围中提取与当前行或列对应的单个值,实现隐式交集,是动态数组公式的关键运算符之一。
当公式返回多值数组溢出时,自动取当前单元格对应的元素。比如我们的
数据源A列为数值列。A2:A6为{1;2;3;4;5}。
如果我们想要得到A2:A6区域各值乘以2后的结果,用数组的思维进行运算,并想返回一列数组溢出结果时(B列结果),在B2单元格通常这样输入公式:
=A2:A6*2
在B列数组溢出所有结果。

如果我们只想要得到当前行对应的结果数组中单个值的话,可以公式开头加上@:
=@A2:A6*2
@自动识别当前行,当前行位于A2:A6数组中的第1行,从B2:B6这个数组里,拿出第1个对应的单值2。

如果我们的数组公式是从B3单元格开始输入的(与原始引用数组区域不平行):
=A2:A6*2

那么加上@符后:
=@A2:A6*2
@自动识别当前行,当前行位于A2:A6数组中的第2行,从B2:B6这个数组里,拿出第2个对应的单值4。
所以使用@符时,不能仅仅理解为调取返回数组结果中的“首个值”,还要考虑当前数组公式区域相对于引用单元格区域的相对位置。
也就是说@符的核心含义是用于明确引用“当前行”的数据。@就是告诉Excel“我只要这一个(当前行的)值,不要处理一整列或一个数组”。

通常职场办公中,我们主要用@符调取返回数组中的首个元素。
比如我们要提取A列混合数据中的所有姓名。
使用TEXTSPLIT函数后:
=TEXTSPLIT(A2,",")
运用列分隔符逗号“,”将A2单元格混合数据拆分到了不同的列中。结果是以数组溢出的方式返回1行3列,分别是单独的“姓名”、“年龄”、“民族”。

我们想要得到拆分后的1行3列数组中的首个元素“姓名”:
=@TEXTSPLIT(A2,",")
加上@符就可以了。

符号#:溢出范围运算符
这个符号用于引用由动态数组公式生成的整个结果区域。这是动态数组功
能的核心符号。
当一个公式能返回多个值(例如SORT,FILTER,UNIQUE函数或简单的=A1:A10)时,结果会“溢出”到相邻的单元格中。这个溢出的整个区域就是一个“溢出范围”。而用# 就能引用整个“溢出范围”。
比如我们想要通过D2单元格指定的姓名,在数据源A2:B5区域中,筛选出B2:B5区域对应的数量,显示在E列。
首先使用FILTER函数进行筛选:
=FILTER(B$2:B$5,A$2:A$5=D2)
当A$2:A$5区域姓名与D2单元格指定查询姓名一致时,将B$2:B$5区域对应行的数量筛选出来,结果是以数组溢出的方式显示在了E2:E3。

如果我们想在另一个地方汇总这个筛选后的结果,比如求总和,你可以使用公式:
=SUM(E2#)
E2#:就代表了E2及其下方所有被结果占用的单元格(即动态的数组溢出区域E2:E3)。当数据源A1:B5变化导致溢出范围变大或变小时,E2# 引用的范围也会自动调整。
简单理解:# 就是“一锅端”,它代表了由动态数组公式产生的所有结果单元格,这个范围是动态变化的。如果数组溢出区域范围过大,也避免了手动大面积勾选区域,提高了公式的输入效率。

点号".":引用区域定位符
这个符号是表格中动态区域边界的智能定位符,用于替代固定的单元格行列号地址,自动识别区域数据的实际有效边界(第一个或最后一个非空白单元格),从而实现区域范围随数据变化的动态调整,智能裁剪不必要的空白区域。
比如A列数据区域A2:A8中既有数值、开头或结尾又有空白单元格。如果我们要引用A2:A8区域的数据,一般这样输入公式:
=A2:A8
我们发现数据开头或结果的空值单元格在引用结果中均返回了0值,这样由空值产生的数字0并不是我们想要的。

基于点号在区域引用中的位置不同,其作用可分为三类:
标记动态起始边界
当点号紧跟区域起始单元格之后(如A2.),表示从该区域第一个非空白单元格开始,替代固定起始行(如A2),自动裁剪开头的空白区域。
比如:=A2.:A8
引用A2单元格区域开始的从第一个非空行到列尾的区域,即去除开头空白。

标记动态结束边界
当点号放在区域结束单元格之前(如.A8),表示到该区域最后一个非空白单元格结束,替代固定结束行(如A8),自动裁剪结尾的空白区域。
比如:=A2:.A8
引用从A2单元格区域开始的到列尾的最后一个非空白行的区域,即去除末尾空白。

双向动态边界组合
当点号同时出现在起始和结束位置(如A2.:.A8),则同时定位开头和结尾的非空白边界,仅保留中间有效数据区域,双向裁剪前后空白。
比如:=A2.:.A8
引用A列从第一个非空行到最后非空行的连续区域,仅保留有效数据。

比如我们在工作中对某区域进行求和,但是需要求和的区域原始数据经常新增变动。
如果使用:SUM(A2:A8)
虽然可以正常求和,但是A8单元格以后新增数据后无法动态统计更新。
如果使用:SUM(A:A)
因为引用了足够大的多余区域,虽然可以正常求和且动态更新,但是它引用了整个的A列,在Excel中最大行数有1048586行,全部引用后降低表格后台运行效率。
我们如果选择使用:=SUM(A.:.A)
通过双向动态裁剪A列前后空白区域(仅保留有效数据A4:A6),实现了高效计算,节省了资源,仅计算有效数据行(通常几十到几千行),避免了整列计算的无意义消耗,表格运行更流畅。
![]()
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.