我可以发誓我已经看到过这种行为,即 Excel 自动使用与上面一行相同的公式来填充新插入的行。
我知道这可以用一些 VBA 来实现,但如果可能的话,我想找到是什么触发了这种情况的发生(除非我一直在做梦)。有人知道这是怎么做到的吗?
答案1
这不是梦,你说得对:Excel 的 AI 可以触发这些事情,而且不仅限于表格。下面是一个小例子来说明:
- 打开一个新的工作簿并用增加的数字填充列
A
,例如:
1 2 3 4 5
- 接下来,在 B 列中添加任何简单公式,例如,
=A1*10
自动填充数字列表以获得以下内容:
1 10 2 20 3 30 4 40 5 50
- 现在,要了解 AI 如何工作,请
6
在下一行5
(这应该A6
在上下文中)中输入(或任意数字),然后按TABOR ENTER- 就像平常一样。 - 享受魔法吧!(:
这不应该只发生在公式中 - 格式也可能会自动应用,例如当您在数据集中添加新列时,并且您的“标题”(第一行)具有特殊格式(黑色填充/白色文本)并开始在那里输入值 - 很可能它会以相同的方式着色。
我无法提供完整的案例列表,但我想你已经明白了!)
答案2
你可以使用以下方法完全避免自动填充功能数组公式。只需像平常一样输入公式,但:column
在每个单元格引用的末尾附加公式,然后按Ctrl+ Shift+Enter。然后公式将立即应用于列中的所有单元格,而无需拖动任何内容
编辑:
当有新数据行时,较新的 Excel 版本将自动使用数组公式向下填充
从 2018 年 9 月 Office 365 更新开始,任何可以返回多个结果的公式都会自动将它们向下溢出或溢出到相邻单元格中。这种行为变化还伴随着几个新的动态数组函数。动态数组公式,无论是使用现有函数还是动态数组函数,都只需输入到单个单元格中,然后按 Enter 确认。以前,旧式数组公式需要先选择整个输出范围,然后使用Ctrl+ Shift+确认公式Enter。它们通常被称为 CSE 公式。
如果你使用的是旧版本的 Excel 或想要了解有关数组公式的更多信息,请继续阅读
例如,输入=B3:B + 2*C3:C
D3 和++Ctrl相当于在表格中从第 3 行开始一直向下键入并拖动ShiftEnter=B3 + 2*C3
这种方式输入速度很快,但缺点是末尾未使用的单元格(当前表格之外的单元格)仍会计算并显示 0。有一个简单的方法可以隐藏 0。但是更好的方法是将计算限制在表格的最后一列。知道在数组公式中,您可以使用它来X3:X101
仅应用于从 X3 到 X101 的单元格,我们可以使用INDIRECT
功能达到同样的效果
=LOOKUP(2, 1/(A:A <> ""), A:A)
在表格外的某个单元格中输入以查找最后一个非空白单元格在表格中并将其命名为。或者,当表格的第一行是 3 时LastRow
使用=COUNTA(A3:A) + 2
- 然后不要
B3:B
使用=INDIRECT("B3:B" & LastRow)
例如,如果您希望 D 列中的单元格包含 B 和 C 单元格的乘积,而 E 列包含 B 和 C 的总和,则无需使用D3 = B3*C3
和E3 = B3 + C3
并向下拖动,只需分别在 D3 和 E3 中输入以下公式,然后按Ctrl+ Shift+Enter
=INDIRECT("B3:B" & LastRow) * INDIRECT("C3:C" & LastRow)
=INDIRECT("B3:B" & LastRow) + INDIRECT("C3:C" & LastRow)
今后每次向新行添加数据时,表格都会自动更新
由于数据访问模式已知,因此数组公式非常快。现在,无需分别进行 100001 个不同的计算,它们可以向量化和并行完成,利用CPU中的多核和SIMD单元。它还具有以下优点:
- 一致性:如果您单击从 E2 向下的任何单元格,您都会看到相同的公式。这种一致性有助于确保更高的准确性。
- 安全:您无法覆盖多单元格数组公式的组件。例如,单击单元格 E3 并按 Delete。您必须选择整个单元格范围(E2 到 E11)并更改整个数组的公式,或者保留数组原样。作为一项额外的安全措施,您必须按Ctrl+ Shift+Enter确认对公式的更改。
- 更小的文件大小:您通常可以使用单个数组公式,而不是多个中间公式。例如,工作簿使用一个数组公式来计算 E 列中的结果。如果您使用标准公式(例如
=C2*D2
,,C3*D3
...C4*D4
),则需要使用 11 个不同的公式来计算相同的结果。
更多信息请阅读
答案3
如果您在空白列中输入公式,这是 Excel 的默认行为桌子。要获得此信息,您需要插入桌子:
答案4
您看到的问题可能是因为表格中的某些列未设置为自动填充。您可以通过选择包含公式的单元格、抓住右下角的绿色框并拖动到表格的最后一行来使列自动填充。一旦您这样做,列就会自动填充,这样所有新行都会自动在该列中包含公式。