Microsoft 引入了隐式交集运算符,作为 Excel 公式语言大幅升级的一部分,以支持 动态数组。 动态数组为 Excel 带来了重要的新计算能力和功能。
升级的公式语言
Excel 升级后的公式语言与旧语言几乎相同,只是它使用 @ 运算符指示可能发生隐式交集的位置,而旧语言则以静默方式执行此操作。 因此,当你在动态数组 Excel 中打开某些公式时,你可能会注意到 @ 出现在其中。 公式继续以与往常相同的方式进行计算。
什么是隐式交集?
隐式交集逻辑将多个值减少为一个值。 Excel 这样做是为了强制公式返回单个值,因为单元格只能包含单个值。 如果您的公式返回了单个值,则隐式交集不会执行任何 (操作,即使从技术上讲它是在后台) 完成的。 其逻辑工作原理如下:
- 如果值是单个项目,则返回该项目。
- 如果值为区域,则返回与公式相同行或列的单元格中的值。
- 如果值是数组,请选择左上角的值。
随着动态数组的出现,Excel 不再局限于从公式返回单个值,因此不再需要静默隐式交集。 旧公式可能会在无形中触发隐式交集,而启用动态数组的 Excel 会显示它与 @ 一起出现的位置。
为什么是 @ 符号?
@ 符号已在表引用中使用来指示隐式交集。 请在表 =[@Column1]中考虑以下公式。 @ 指示公式使用隐式交集从 [Column1] 中检索同一行上的值。
是否可以删除 @?
通常可以。 这取决于 @ 右侧的公式部分返回:
- 如果返回 (最常见的大小写) 的单个值,则删除 @ 时不会有任何变化。
- 如果返回区域或数组,删除 @ 会导致它溢 出 到相邻单元格。
如果删除自动添加的 @,稍后在较旧版本的 Excel 中打开工作簿,它将显示为旧版 数组公式 , (用大括号 {}) 括起来。 此行为可确保旧版本不会触发隐式交集。
何时将 @ 添加到旧公式?
通常,如果在较旧版本的 Excel 中创作了返回多单元格区域或数组的函数,则它们具有 @ 前缀。 公式的行为方式没有变化 — 现在只能看到以前不可见的隐式交集。 返回多单元格范围的常见函数包括 INDEX、OFFSET 和用户定义的函数 (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 时,它可以返回数组或范围。 |
| =OFFSET (A1:A2,1,1) | =@OFFSET (A1:A2,1,1) | 可能会发生隐式交集。 OFFSET 函数可以返回多单元格区域。 当它这样做时,它会触发隐式交集。 |
| =MYUDF () | =@MYUDF () | 可能会发生隐式交集。 在 Excel 中创建自定义函数 可以返回数组。 当它们这样做时,原始公式会触发隐式交集。 |
在新公式中使用 @ 运算符
如果在动态数组 Excel 中创作或编辑包含 @ 运算符的公式,则该公式可能显示为_xlfn。前动态数组中的单个 () Excel。
提交混合公式时会发生此行为。 混合公式是同时依赖于数组计算和隐式交集的公式。 前动态数组 Excel 不支持此组合。 前动态数组 Excel 仅支持在整个 过程中) 隐 式交集或 ii) 数组计算的公式。
启用动态数组时,Excel 检测到混合公式的创建,它会建议使用始终隐式交集的公式变体。 例如,如果输入 =A1:A10+@A1:A10, ,则会看到以下对话框:
如果选择拒绝该对话框建议的公式,则提交混合公式 =A1:A10+@A1:A10 。 如果稍后在预动态数组 Excel 中打开此公式,它将显示为 =A1:A10+_xlfn.SINGLE(A1:A10) 混合公式中的 @ 运算符显示为 _xlfn.SINGLE(). : 当预动态数组 Excel 计算此公式时,它会返回一个 #NAME! 错误值。
需要更多帮助吗?
你随时可以在 Excel 技术社区 中咨询专家,或在 社区中获取支持。