如何使用 COUNTIF 和 TODAY 函数来确定多个工作表中的工作截止日期?

如何使用 COUNTIF 和 TODAY 函数来确定多个工作表中的工作截止日期?

我一直在工作中玩弄电子表格,并能够创建一个基本公式,该公式可以确定今天需要完成的截止日期。我现在遇到的问题源于人们想要确定他们何时完成了截止日期。

我创建的公式对于单个实例非常有效,但在有多个截止日期时不够聪明 - 当一个截止日期完成时,它会显示所有截止日期都已完成。

我希望尽可能避免引用每个单元格,但如果有一种方法可以让公式识别出,如果包含今天日期的单元格左侧的单元格仍为空白,则表示工作已完成。当今天的日期输入到该单元格中时,工作就完成了。

公式示例为:

=(IF(COUNTIF('S5'!P:Q,"="&TODAY()),"Action","No Action")&IF(COUNTIF('S5'!O:O,"="&TODAY())," Completed",""))

S5是工作簿选项卡的名称,Column O被引用,并且此列将在其中输入完成时的今日日期。

Column P实际上,它需要说,如果它在或中说出今天的日期Q并且Column O是空白,它仍然显示“操作”一词,即使当天的其他工作已经完成。

答案1

尝试这个:

=CONCATENATE(IF(COUNTIF(P:Q,TODAY()),"Action","No Action"),IF(COUNTIF(O:O,TODAY())=COUNTIF(P:Q,TODAY())," Completed",""))

一些风格说明:

  • 我通常更喜欢使用CONCATENATE函数,而不是将输出字符串与 & 符号拼凑在一起。不过,公式应该适用于这两种情况。
  • 对于对同一工作表中单元格的引用,无需定义工作表名称。如果您将公式放在“SS”以外的工作表中,则需要添加工作表引用。

公式的作用:

  1. 该函数不使用“与”符号,而是CONCATENATE用于组合内部公式的输出。
  2. 公式输出的第一部分是根据函数的结果定义的IF
  3. COUNTIF用于统计 P 和 Q 列中与今天日期匹配的单元格数量。
  4. 如果COUNTIF返回零,IF则将响应视为 FALSE。任何其他值均视为 TRUE。
    • 注意:如果单元格未格式化为日期,或者添加了时间元素,则可能会返回不正确的结果。
  5. 如果第一条IF语句的计算结果为 TRUE,则输出字符串的第一部分将为“Action”。否则,输出字符串的第一部分将为“No Action”。
  6. 公式输出的第二部分是根据另一个IF函数的结果定义的。
  7. COUNTIF这里使用了两次 - 首先检查 O 列中有多少项与今天的日期相匹配,然后再次检查 P 和 Q 列中有多少项与今天的日期相匹配。COUNTIF然后比较这两个值,为函数提供 TRUE/FALSE 状态IF
  8. 如果 s 的结果COUNTIF完全匹配,IF则计算结果为 TRUE - 否则为 FALSE。
    • 注意:如果单元格未格式化为日期,或者添加了时间元素,则可能会返回不正确的结果。
  9. 当 IF 语句的计算结果为 TRUE 时,输出字符串的第二部分将为“Completed”。否则,它将为空白。

值得注意的是,这种方法仍然存在一些谬误。特别是,如果工作记录为今天完成但今天未到期(工作提前或落后于计划完成),那么今天的结果可能会显示“已完成”,即使今天还有其他工作仍需完成。同样,如果所有今天或更早到期的工作今天或更早完成如果明天到期的一些工作也已完成,则输出永远不会显示“已完成”,除非明天提前完成了相同数量的工作。此外,这里根本没有逻辑来解释仍未完成的逾期项目。

以下是一些谬误的案例:

  • 今天有 10 个项目到期。今天的项目中有 8 个已于今天完成。今天到期的另外 2 个项目尚未完成。昨天逾期的 1 个项目今天已完成。明天到期的 1 个项目今天提前完成。即使今天到期的 2 个项目仍未完成,公式的输出仍为“操作已完成”。
  • 今天有 10 个项目到期。其中 3 个项目昨天已完成。其他 7 个项目今天已完成。今天没有完成其他工作。即使今天的所有项目都已完成,输出仍不会显示“已完成”。
  • 今天有 10 个项目到期,并且已于今天完成。今天没有完成其他工作。但是,还有 5 个项目今天到期但尚未完成。即使仍有工作要做,状态仍会显示“操作已完成”。

如果不知道 P 和 Q 列代表什么,或者不熟悉您的要求,那么想出一个更准确反映准确状态的公式会有些困难。但是,这样的公式可能涉及使用至少一个附加列(分别跟踪每个截止日期完成的工作,和/或单独评估每个项目的状态)和一些使用COUNTIFS

相关内容