如何使Excel 2010自动用公式填充新行?


12

我可以发誓,我已经看到这种行为,其中Excel自动使用与上一行相同的公式填充新插入的行。

我知道这可以通过某些VBA来完成,但是如果可能的话,我想找出是什么触发了这种情况的发生(除非我一直在做梦)。有人知道这是怎么做的吗?

Answers:


6

这不是梦想,您是对的:Excel的AI不仅触发表格,还触发这些事情。只是一个小例子来说明:

  • 打开一个新的工作簿,并A用递增的数字填充列,例如:
1
2
3
4
5
  • 接下来,在B列中添加任何简单公式,例如=A1*10,自动填写数字列表以获取此信息:
1      10
2      20
3      30
4      40
5      50
  • 现在,要查看AI的工作方式,请65(应该A6在上下文中)下一行中键入(或任何数字),然后按通常的方式按TABOR 键ENTER
  • 享受魔术!(:

仅在公式中不应发生这种情况-格式也可能会自动应用,例如,当您向数据集右添加新列,并且“标题”(第一行)具有特殊格式(黑色填充/白色文本)并开始输入时值-最有可能将以相同的方式上色。

我无法提供完整的案件清单,但我认为您有线索!)


有趣的是,我只能使它在列而不是行中起作用(例如,如果您对示例进行转置,则无法使其起作用)。
RipperDoc

我不知道为什么会这样...也许是因为数据通常以列模式存储,并且随着时间的增长而下降-就像更自然))
Peter L.

它们必须至少为四个。
路加福音

@PeterL ,,很好解释+10☺。
拉杰什小号

3

您可以完全避免使用数组公式使用自动填充功能。只需像正常情况一样输入公式,但:column在每个单元格引用的末尾附加,然后Ctrl+ Shift+Enter。然后,该公式将立即应用于列中的所有单元格,而无需拖动任何内容


编辑:

出现新的数据行时,较新的Excel版本将自动使用数组公式来填充

从Office 365的2018年9月更新开始,任何可以返回多个结果的公式都会自动将其向下扩散或扩散到相邻单元格中。这种行为上的变化还伴随着几个新的动态数组函数。无论是动态数组公式是使用现有函数还是动态数组函数,只需将其输入到单个单元格中,然后按Enter即可确认。以前,旧式数组公式需要首先选择整个输出范围,然后使用Ctrl+ Shift+ 确认公式Enter。它们通常称为CSE公式。

数组公式的准则和示例

如果您使用的是旧版Excel,或者想进一步了解数组公式,请继续阅读


例如,放入=B3:B + 2*C3:CD3和Ctrl+ Shift+ Enter等效于=B3 + 2*C3在第3行开始的表格中一直向下键入和拖动

这是一种快速输入的方法,但有一个缺点,即仍然会计算出末尾(当前表之外)的未使用单元格并显示0。有一种简单的方法可以隐藏0s。但是,更好的方法是将计算限制在表的最后一列。知道在数组公式中,您可以将X3:X101其应用于仅从X3到X101的单元格,我们可以使用INDIRECT函数来实现相同的效果

  • =LOOKUP(2, 1/(A:A <> ""), A:A)在表外的某个单元格中输入以查找表中的最后一个非空白单元格并将其命名LastRow=COUNTA(A3:A) + 2表格的第一行是3时,也可以使用
  • 然后代替B3:B使用=INDIRECT("B3:B" & LastRow)

例如,如果您希望D列中的单元格包含B和C中的单元格的乘积,而E列中包含B和C的总和,而不是使用D3 = B3*C3E3 = 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*D2C3*D3C4*D4...),就要使用11分不同的公式来计算相同的结果。

数组公式的准则和示例

有关更多信息,请阅读


INDIRECT是一个易失函数,该函数使工作簿在每次更改单元格时都重新计算它。有没有办法(使用CSE来填充特定数量的行)而无需使用INDIRECT
feetwet

0

如果在的空白列中输入公式,则这是Excel的默认行为。为此,您需要插入一个Table

在此处输入图片说明


谢谢,那行得通,但是在没有使用Table的情况下,我已经看到了对单个单元格的这种影响。我相信它必须是某种“自动填充”设置。
RipperDoc

您可以通过两种方法快速完成此操作:1.输入公式,然后将鼠标悬停在单元格的右下角时双击小“ +”号。2.选择完整范围,然后按Ctrl-Enter输入公式。但是,这两个选项都不是表中的“真正的自动填充”。相当确定它不存在(除非是在VBA中定制)
Peter Albert

0

一种让excel自动为您执行此操作的方法是,将所需的公式复制并粘贴到多行中。如果您一个接一个地执行操作,则不清楚此后的每一行都应自动完成复制和粘贴。如果您复制并粘贴到一个块中,则excel将接管并自动复制并粘贴该公式以供将来的行使用。


0

您看到的问题很可能是因为表中的某些列未设置为自动填充。您可以通过选择具有公式的单元格,抓住右下角的绿色框,然后拖动到最后一行或表格,使列自动填充。完成后,该列将自动填充,以便所有新行将自动在该列中包含公式。


0

对我来说,它正在为两列公式工作,突然间只为其中之一停止。我想我必须已经在其上复制并粘贴了另一个单元格并弄乱了链接。要修复此问题,我选择了该单元格,然后转到“主页”>“编辑”>“填充”>“系列”,然后再次确认详细信息。希望能有所帮助。


这是对其他问题的解答,不能按要求回答。
DavidPostill

0

我遇到了一个问题,即表格停止自动填充...我不知道为什么表格突然停止工作,但是这里的解决方法是:

  • 将您的公式添加到表的最后一行的适当列,然后按 enter
  • 单击标记为fx的小方块弹出窗口,然后选择Overwrite all cells in this column with this formula
  • 将新行添加到表中,该行现在应具有自动填写的公式

这对我来说很棒,希望对其他人有帮助。



-2

您可以使用“填充”下拉菜单下的“对齐”功能来完成此操作。它位于编辑功能中“主页”选项卡下。在我看来,它位于工具栏的最右侧。


希望添加详细信息如何发生?基于此,它不会执行OP所要求的。
zagrimsan 2015年

我所做的是为表头下的每个单元格设置了表头,表头格式为填充,公式等。然后,在最左侧的列中,选择一个尚未格式化的范围,转到填充下拉列表,然后选择对齐。现在,当我开始在该单元格区域中输入信息时,整行会自动格式化为我在表中设置的公式,填充等。抱歉,我不是技术娴熟的人,所以不知道如何在此评论中添加图片以使其更有意义。
XLRookie 2015年

此方法使您当前正在输入数据的行的格式与其正上方的行相同。
XLRookie 2015年

您不能在评论中插入图片,但可以在答案中插入图片。但是,我对此进行了测试,在我看来,不需要Fill-> Justify即可进行自动填充(您可以自己尝试一下,只需从描述的步骤中退出合理性步骤即可)。此处讨论的Excel中的自动填充功能是产生结果的原因,而不是理由。
zagrimsan 2015年

哈哈,这是真的。好吧,这向您展示了我在这一领域的专业水平。
XLRookie 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.