总结
谁能解释一下为什么我在许多 Excel 电子表格的许多公式中看到“@”符号出现,而以前它们并没有出现过?
它们不是@mentions,也不是结构化引用或表格公式的一部分,也不是任何其他常见的嫌疑人。
细节
系统信息
- Excel for Mac,版本 16.34 (20020900),Office 365 的一部分
- MacOS Catalina 10.5.3
正如我所说,它们不是 @mentions,我也没有使用结构化引用。另外,我不是 Lotus 用户,也从来不是,所以我不会像那些家伙有时似乎习惯的那样将 @ 符号塞进公式中。事实上,除了偶尔作为 TEST() 格式代码的一部分之外,我想不出我曾经在公式中使用过 @ 的任何时候,而这也不是这里发生的事情。
例子
以下是一个例子(随机抓取)。这个:
=IFS(DX$33="","",ISNUMBER(MATCH(DX$33,$AJ$33:$DR$33,0)),HLOOKUP(DX$33,$AJ$33:$DR$1033,ROWS(DX$33:DX36)+1,0),TRUE,0)
现在看起来像这样:
=@IFS(DX$33="","",ISNUMBER(MATCH(DX$33,$AJ$33:$DR$33,0)),HLOOKUP(DX$33,$AJ$33:$DR$1033,@ROWS(DX$33:DX36)+1,0),TRUE,0)
正如我所说,这只是一个随机示例。还有很多其他示例,其中很多都没有像 IFS() 这样“奇特”的东西,所以我不认为这是原因。
仅仅是显示效果吗?
现在,在上面我说“看起来”是因为我猜想神秘的 @ 可能实际上并不在文件本身中,而只是由 Excel 显示。我这样说是因为我至少有一个文件,我可以从其 DropBox 版本历史记录中看到只有一个版本 - 我的(无 @)原始版本。因此它开始时没有 @ 符号,并且它没有改变(根据 DropBox 版本控制),但我现在可以看到 @ 符号。一种解释是 Excel 发生了变化,而不是我的文件,因此变化仅仅是一个显示伪像。哦,删除 @ 似乎对公式没有影响。
@是真实存在
另一方面,为了好玩,我尝试创建一个全新的公式:
=@A1
当我尝试输入该公式时,Excel 警告我“某些旧版本的 Excel 不支持此公式”,并建议我将其替换为以下变体:
=A1
因此,这种 @ 用法确实似乎是一种实际的东西,而且并非一直存在。(这显然适用于在行引用中与 [] 结合使用,但这不是(是吗!?))
无论如何,当 Excel 询问我是否要删除 @ 时,我抛开了谨慎,点击了“管好你自己的事儿!”(又称“否”)。Excel 插入了我原来的 @ 化版本,从我所看到的情况来看,它很好,并且其行为与 Excel 试图说服我使用的无 @ 版本完全一样。
所以?
有人能解释这一切吗?Excel 是否最近更新了,引入了新的 @ 语法?我说的最近是指最多最近 2-3 个月。我有一些在 12 月中下旬创建的文件,我知道当时这些文件没有 @,但现在却变成了 @ 符号。但如果是这样,那么为什么 Excel 会不经我同意就随意更改文件,尤其是考虑到它自己也承认这可能会造成向后兼容性问题?为什么我的 Excel 文件只有一个版本,我知道它没有变化,但随着这些 @ 符号的出现,它似乎已经发生了变化?
我已经搜索了超过一个小时的线索,但还是没有找到任何确切的线索。一个困难是“@”是一个广泛使用的字符,因此 Google 给出的很多结果都是无关紧要的废话。
答案1
恭喜您刚刚获得了新的动态公式。它@
告诉动态数组公式仅返回一个值,基本上就像公式的旧数组版本一样。
新的动态数组公式想要SPILL
自动获取值。
例如将随机值放入A1:A15
然后在 B1 中输入:
=INDEX($A$1:$A$15,SEQUENCE(15))
正常输入。Excel 会将值“溢出”。
现在将 添加@
到 中的公式前面B1
。公式将不再溢出。
但是就像旧样式一样,人们可以选择公式B1:B15
并按 Ctrl-Shift-Enter 而不是 Enter @
,它会像以前一样填充范围。
至于自动更改,如果没有新功能它就无法工作。
但研究一下新的动态数组函数,它们会让很多事情变得更容易。但对于任何新事物,在共享时都必须考虑向后兼容性。