【问题标题】:How do I calculate % of task's completion given start date, end date, and TODAY()如何计算给定开始日期、结束日期和 TODAY() 的任务完成百分比
【发布时间】:2015-03-14 02:52:14
【问题描述】:

我有一个包含开始日期、结束日期和完成百分比的列。通过在 % 列中手动输入一个数字,代表任务的条形将变暗。我想要做的不是表示完成百分比,而是要显示距离今天的结束日期还有多少时间。

      Start        End       % Time remaining from TODAY()
i.e. 12/01/2014   03/15/2015   (End date has not yet occurred)
     12/29/2014   12/29/2014   (Task was started and finished this day)

【问题讨论】:

  • 到目前为止你尝试过什么?如果还没有,那么这里有一些提示。知道 excel 将日期视为数字。因此,您可以从另一个日期中减去一个日期,或者从另一个日期中减去今天(),然后简单地将结果相除。您可能还需要IF 声明。
  • @guitarthrower 好点,但如果您更喜欢MAXMIN,可以避免使用IF 语句。不过,一个问题是今天是否算作完成。
  • @MarkBalhoff 我也倾向于使用MAXMIN。我不得不假设 OP 是初学者,IF 的概念可能更容易开始。
  • @guitarthrower 点了。对于日期操作,我倾向于发现 MAXMIN 是一种更优雅的解决方案(尤其是在复杂的公式中),但我同意解释为什么对人们有用似乎总是比“简单”IF 困难得多。跨度>
  • @pnuts 真的很接近,但为了讨论,让我为 OP 提供一个案例。相同的概念,但求解不同的变量(以及不同的已知变量)。恕我直言,最大的区别在于您引用的潜在重复项没有解决超出范围的条件(至少不是在那里的答案中)。与处理小于 0 或大于 100 的百分比(建议重复)相比,处理超出有效日期范围(此处)的 TODAY() 是一个更不可避免的问题。

标签: excel excel-formula datediff


【解决方案1】:

这里有一个更简洁的选项,它将显示截至当天结束的完成百分比。

=(MIN(TODAY(),B2)-A2+1)/(B2-A2+1)

【讨论】:

    【解决方案2】:

    假设您的结束日期在 B 列中:

    =IF(TODAY()>=B2,"Done",CONCATENATE(B2-TODAY(),""))

    这将显示剩余天数。如果您想要花费的时间百分比,请使用

    =IF(TODAY()>=B2,"Done",MAX((TODAY()-A2)/MAX(B2-A2,1),0))

    并将单元格格式化为百分比。

    【讨论】:

    • 在还没开始的任务上尝试之前就接受了,A2在未来。
    • 你需要我修哪一个? (当 A2 出现在未来时,你会期待什么行为?)
    • =IF(TODAY()>=B2,"Done",(TODAY()-A2)/(B2-A2)) 是我需要的,因为我需要一个 %。如果 A2 在未来,我只想显示 0% 完成。
    • =IF(TODAY()>=B2,"Done",MAX((TODAY()-A2)/MAX(B2-A2,1),0)) 当您输入新公式时,您可能需要再次将单元格的格式设置为百分比。(我必须这样做)。如果开始日期和结束日期相同,我也让它不会中断。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多