绝对交集运算符: @

引入了隐式交集运算符作为对 Excel 的公式语言的重大升级以支持动态数组的一部分。 动态数组为 Excel 带来了显著的新计算能力和功能。

升级的公式语言

Excel 的已升级公式语言与旧语言几乎完全相同, 不同之处在于它使用 @ 运算符指示可能出现隐式交集的位置, 而旧语言则自动执行此操作。 因此, 当在动态数组 Excel 中打开时, 你可能会注意到在某些公式中看不到 @。 请务必注意, 你的公式将继续按始终具有的相同方式进行计算。  

什么是隐式交集?

隐式交集逻辑将多个值减少为单个值。 Excel 执行此操作是强制公式返回单个值, 因为单元格只能包含单个值。 如果你的公式返回单个值, 则隐式交集不会执行任何操作 (即使它是在后台执行的)。 该逻辑的工作方式如下所示:

  • 如果该值是单个项, 则返回该项。

  • 如果值为区域, 则返回与公式位于同一行或列的单元格中的值。

  • 如果值为数组, 则选择左上角的值。

随着动态数组的出现, Excel 不再局限于从公式返回单个值, 因此不再需要静态的隐式交集。 如果旧公式可以不可见地触发隐式交集, 则 Excel 启用动态数组将显示 @ 的发生位置。  

为什么 @ 符号? 

@ 符号已在表引用中使用, 用于指示隐式交集。 请考虑表中的以下公式 = [@Column1]。 在这里, @ 表示公式应使用隐式交集从 [Column1] 中的同一行检索值。  

是否可以删除 @? 

通常可以。 这取决于 @ 返回右侧公式部分的内容: 

  • 如果它返回单个值 (最常见的情况), 则删除 @ 将不会有任何更改。

  • 如果它返回一个区域或数组, 则删除 @ 将使其溢出到相邻单元格。

如果删除自动添加的 @ 并在以后使用较早版本的 Excel 打开工作簿, 它将显示为旧版数组公式(用大括号 {} 括起), 这样做是为了确保较旧版本不会触发隐式交集。

何时将 @ 与旧公式相加? 

一般说来, 如果函数是使用较早版本的 Excel 编写的, 则返回多单元格区域或数组的函数将带有 @ 前缀。 请务必注意, 公式的行为方式不会有任何变化, 您现在只需看到以前不可见的隐式交集即可。 可以返回多单元格范围的常见函数包括索引、偏移和用户定义的函数 (Udf)。  常见的例外是将它们包装在接受数组或区域 (例如 SUM () 或 AVERAGE ()) 的函数中。 

有关详细信息, 请参阅返回区域或数组的 Excel 函数

示例

原始公式

如动态数组 Excel 中所示 

说明

= SUM (A1: A10) 

= SUM (A1: A10) 

无更改-由于 SUM 函数需要范围或数组, 因此不会出现隐式交集。 

= A1 + A2 

= A1 + A2 

无更改-不会发生隐式交叉。 

= A1: A10 

= @A1: A10 

将出现隐式交集, Excel 将返回与公式所在行相关联的值。

= INDEX (A1: A10, B1) 

= @INDEX (A1: A10, B1) 

可能会出现隐式交集。 INDEX 函数可以返回第二个或第三个参数为0的数组或区域。  

= 偏移 (A1: A2, 1, 1) 

= @OFFSET (A1: A2, 1, 1) 

可能会出现隐式交集。 OFFSET 函数可以返回多单元格区域。 在此情况下, 将触发隐式交集。 

= MYUDF () 

= @MYUDF () 

可能会出现隐式交集。 用户定义的函数可返回数组。 当它们执行此操作时, 原始公式将触发隐式交集。 

需要更多帮助吗?

可随时在 Excel 技术社区中咨询专家,在解答社区获得支持,或在 Excel User Voice 上建议新功能或功能改进。

另请参阅

FILTER 函数

RANDARRAY 函数

SEQUENCE 函数

SORT 函数

SORTBY 函数

UNIQUE 函数

Excel 中的 #SPILL! 错误

动态数组和溢出数组行为

注意:  本页面是自动翻译的,可能包含语法错误或不准确之处。 我们的目的是使此内容能对你有所帮助。 能否告知我们此信息是否有所帮助? 下面是该参考内容的英文版

扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×