【问题标题】:Microsoft Excel - How do you auto-populate a formula in a column?Microsoft Excel - 如何在列中自动填充公式?
【发布时间】:2011-10-25 20:27:14
【问题描述】:

长寿、员工ID、开始日期、结束日期

我将一堆数据粘贴到工作表中(单元格 B1-Dn),我需要 A1-An(寿命)的公式来自动计算输入的每个员工的结果。

我使用的是 Microsoft Excel 2010。

目前,我使用的公式是:

=IF ( C1 , IF ( D1 , D1-C1 , TODAY()-C1 ) , "")

这很好用,除了我必须在 A 列中使用此公式手动添加/删除单元格以匹配在任何给定时间输入的行数。这非常耗时,并且管理层在使用此报告时难以理解。 :)

有没有办法说“每一行里面有数据,在A列中得到这个公式”?

我一直在网上研究这个问题,并找到了各种答案。最突出的答案是使用具有默认值的下拉列表,但我认为这不适用于 默认公式

【问题讨论】:

  • 只是出于好奇,当您将数据添加到其他列时,在 A 列中填充复制新行有多耗时?这应该需要几秒钟。
  • 大声笑,嘿,当您必须每天为几种不同类型的报告执行多次时,这很耗时。真正的问题是,没有人相信管理层能够处理简单的复制/粘贴操作,而且管理层不会相信报告是有效的,除非它是自动化的。
  • C1 和 D1 如何作为 IF() 公式中的第一个参数工作?你的意思是C1<>"" 吗?
  • 您可以只填充复制列 A 方式超出您在其他列中填写的行数。使用您编写此公式的方式,如果 C 列中没有数据,则 A 列中不会显示任何内容,但公式仍然存在,并且在填充其他列后会显示一个值。
  • @Excellll 如果单元格包含数据,则返回 TRUE

标签: excel automation formula excel-formula excel-2010


【解决方案1】:

使用数据表应该可以帮助您确保您的公式涵盖整个范围。

第一步:

粘贴您的数据(无公式)

第二步:转到插入 -> 表格,您应该会看到一个类似的对话框

现在将您的公式放在相邻的列中。您会注意到表格格式会自动扩展到公式所在的位置,并且公式会自动复制到数据集的底部。

第三步:

将更大的数据集复制到表中....您会注意到公式与您的新扩展数据集一起向下复制。

请注意,如果您粘贴较小的数据集,表格将不会调整大小。

【讨论】:

  • 创建表格后,您可以利用公式=IF([@StartDate],IF([@EndDate],[@EndDate]-[@StartDate],TODAY()-[@StartDate]),""),"")中的列名
【解决方案2】:

如果我正确理解您的需求,那么也许您应该试试这个。 在 A 列的每个单元格中(如果其他列包含数据,则需要在其中显示公式)添加此公式:

=IF( AND( NOT(ISBLANK(B:B)),NOT(ISBLANK(C:C)),NOT(ISBLANK(D:D)) ),
     IF ( $C1 , IF ( $D1 , $D1-$C1 , TODAY()-$C1 ) , ""),"" )

更准确地说,您应该在 A1 单元格中添加此公式,然后自动填充所有 A 列。

或者,您可以尝试在 A1 单元格中设置下面的公式,然后自动填充 A 列的其余部分。

=IF( AND( NOT(ISBLANK(B1)),NOT(ISBLANK(C1)),NOT(ISBLANK(D1)) ),
     IF ( $C1 , IF ( $D1 , $D1-$C1 , TODAY()-$C1 ) , ""),"" )

【讨论】:

    猜你喜欢
    • 2016-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 2023-04-08
    相关资源
    最近更新 更多