ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1019|回复: 0

[分享] 关于Excel版本升级后某些公式前自动加@的含义

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-10-18 17:20 | 显示全部楼层 |阅读模式
以下来源于微软网站:
隐式交集运算符:@ (microsoft.com)


隐式交集运算符:@[size=1.4em]Excel for Microsoft 365 Excel for 微软 365 for Mac 面向网络的卓越表现 Excel 2021 [url=]更多。。。[/url]

[size=1.6em]隐式交集运算符是作为对 Excel 的公式语言进行实质性升级以支持动态数组的一部分引入的。动态数组为 Excel 带来了重要的新计算能力和功能。
升级的公式语言
[size=1.6em]Excel 的升级公式语言与旧语言几乎完全相同,只是它使用 @ 运算符来指示可能发生隐式交集的位置,而旧语言则以静默方式执行此操作。因此,您可能会注意到@在动态数组Excel中打开时出现在某些公式中。请务必注意,公式将继续以与它们始终相同的方式进行计算。
什么是隐式交集?
[size=1.6em]隐式交集逻辑将许多值简化为单个值。Excel 这样做是为了强制公式返回单个值,因为单元格只能包含单个值。如果您的公式返回单个值,则隐式交集不执行任何操作(即使从技术上讲它是在后台完成的)。逻辑工作原理如下:
  • [size=1em]如果值为单个项目,则返回该项目。
  • [size=1em]如果该值为区域,则从与公式相同的行或列上的单元格中返回该值。
  • [size=1em]如果该值为数组,则选取左上角的值。

[size=1.6em]随着动态数组的出现,Excel 不再局限于从公式返回单个值,因此不再需要静默隐式交集。在旧公式可能以不可见的方式触发隐式交集的情况下,启用了动态数组的 Excel 会显示 @发生的位置。
为什么使用 @ 符号?
[size=1.6em]表引用中已使用 @ 符号来指示隐式交集。考虑表中的以下公式 =[@Column1]。此处的 @ 表示公式应使用隐式交集从 [Column1] 中检索同一行上的值。
可以删除 @吗?
[size=1.6em]通常你可以。这取决于 @ 右侧的公式部分返回的内容:
  • [size=1em]如果它返回单个值(最常见的情况),则删除 @ 不会有任何更改。
  • [size=1em]如果它返回一个区域或数组,则删除 @ 将导致它溢出到相邻的单元格。

[size=1.6em]如果删除自动添加的 @,稍后在旧版本的 Excel 中打开工作簿,它将显示为旧数组公式(用大括号 {}括起来),这样做是为了确保旧版本不会触发隐式交集。
我们何时将 @ 添加到旧公式中?
[size=1.6em]一般来说,返回多单元格区域或数组的函数如果是在较旧版本的 Excel 中创作的,则它们将以 @ 为前缀。请务必注意,公式的行为方式没有变化 - 您现在只能看到以前不可见的隐式交集。可以返回多单元格区域的常见函数包括 INDEX、偏移量和用户定义函数 (UDF)。一个常见的例外是,如果它们被包装在接受数组或范围的函数中(例如 SUM() 或 AVERAGE())。
[size=1.6em]有关更多详细信息,请参阅返回区域或数组的 Excel 函数
例子
[size=1.6em]原始配方
[size=1.6em]如在动态数组 Excel 中看到的那样
[size=1.6em]解释

[size=1.6em]=总和(A1:A10)
[size=1.6em]=总和(A1:A10)
[size=1.6em]无更改 - 不会发生隐式交集,因为 SUM 函数需要范围或数组。

[size=1.6em]=A1+A2
[size=1.6em]=A1+A2
[size=1.6em]无更改 - 不会发生隐式交集。

[size=1.6em]=A1:A10
[size=1.6em]=@A1:A10
[size=1.6em]将发生隐式交集,并且 Excel 将返回与公式所在的行关联的值。

[size=1.6em]=指数(A1:A10,B1)
[size=1.6em]=@INDEX(A1:A10,B1)
[size=1.6em]可能会发生隐式交集。INDEX 函数可以在其第二个或第三个参数为 0 时返回数组或范围。

[size=1.6em]=偏移量(A1:A2,1,1)
[size=1.6em]=@OFFSET(A1:A2,1,1)
[size=1.6em]可能会发生隐式交集。偏移量函数可以返回多单元格区域。当它发生时,将触发隐式交集。

[size=1.6em]=缪德福()
[size=1.6em]=@MYUDF()
[size=1.6em]可能会发生隐式交集。用户定义函数可以返回数组。当他们这样做时,原始公式将触发隐式交集。
在新公式中使用 @ 运算符
[size=1.6em]如果在包含 @ 运算符的动态数组 Excel 中创作或编辑公式,则该公式可能会显示为_xlfn。单() 在预动态数组 Excel 中。
[size=1.6em]当您提交混合公式时,会发生这种情况。混合公式是依赖于数组计算和隐式交集的公式,这是预动态数组 Excel 不支持的。预动态数组仅支持在整个过程中执行 i) 隐式交集或 ii) 数组计算的公式。
[size=1.6em]当启用动态数组的Excel检测到“混合公式”的创建时,它将提出隐含交叉的公式的变体。例如,如果输入 =A1:A10+@A1:A10,您将看到以下对话框:

[size=1.6em]
[size=1.6em]如果选择拒绝对话框建议的公式,则将提交混合公式 =A1:A10+@A1:A10。如果稍后在预动态数组 Excel 中打开此公式,它将显示为 =A1:A10+_xlfn。单(A1:A10),混合公式中的 @显示为_xlfn。单()。当此公式由预动态数组Excel计算时,它将返回#NAME!错误值。


您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-30 00:51 , Processed in 0.038170 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表