代码之家  ›  专栏  ›  技术社区  ›  Tony

计算逾期竣工日期

  •  0
  • Tony  · 技术社区  · 7 年前

    我试图写一个公式来计算有多少员工逾期完成一项任务。问题是,完成日期和到期日期保存在多个单独的工作簿中,我不希望为了使用公式(no countif)而打开这些工作簿。因此,我认为sumproduct是我最好的选择。我现在的公式是:

    =sumproduct('location of workbook'!W37:W189,"">'location of workbook'!$S$9)
    

    哪里 W37:W189 参考竣工日期和 $S$9 引用到期日。当我运行公式时,我得到 #VALUE! 消息

    1 回复  |  直到 7 年前
        1
  •  0
  •   wardies    7 年前

    这个 SUMPRODUCT 函数用于将数组值与其在另一个数组中的对应项相乘,然后求和以获得总值。它只适用于数字,不适用于日期。由于传递的第二个参数是字符串,而不是预期的数组范围,因此 #VALUE! 错误

    看见 Excel countif date in cell is greater than or equal to date in another cell --需要用双引号将条件运算符括起来 ">" 并使用符号和 & 附加要比较的日期值。

    我相信 COUNTIF 是您所追求的功能;这将统计第一个参数范围内满足第二个参数条件的所有单元格,例如:。

    =COUNTIF('[workbook]SheetName'!W37:W189, ">" & '[workbook]SheetName'!$S$9)
    

    笔记 :正如OP所评论的,只有在第一个参数中提到的工作簿也处于打开状态时,这似乎才起作用。不知道为什么。其他工作簿可能已关闭。如果第一个工作簿已关闭,则需要以下解决方法:

    =SUMPRODUCT(--('[workbook]SheetName'!W37:W189>'[workbook]SheetName'!$S$9))
    

    抱歉,我不知道为什么这个变通方法有效。我发现在 this thread on MrExcel.com