Excel – 在 COUNTIFS 函数中使用多个条件

Excel – 在 COUNTIFS 函数中使用多个条件

我需要创建一个公式,计算 I 列中逾期日期的次数,其中 J 列中对应的单元格为空白。

我在 H 列(指定日期)输入日期。有一个公式可以自动填充 I 列(到期日期),即:

=IF(ISBLANK(H6), " ", EDATE(H6,6))

我需要创建一个公式来计算 I 列中早于今天的日期数,但前提是 J 列中相应的单元格为空白。

我努力了:

=COUNTIFS(I6:I260,"<TODAY()",J6:J260,"<>"&"""")

但我怀疑它正在计算第 I 列的自动填充公式。

答案1

在此处输入图片描述

使用此数组(CSE)公式,最后Ctrl+Shift+Enter

{=SUMPRODUCT(COUNTIFS($I$139:$I$145,IF({1;0},"","<"&TODAY()),$J$139:$J$145,""))}

注意:

  • IF 函数生成一个解析为如下内容的数组{"";">43510"}
  • 根据需要调整公式中的单元格引用。

答案2

你犯了两个错误:

  • 当您说 时"<TODAY()",您正在将 列 中的值 I细绳 TODAY()。例如,如果你将星期几放入列中 I 作为字符串, 那么MondayThursdayFridaySaturdaySunday 将被视为<TODAY(),但Tuesday和 则Wednesday不会。但是,没有实际日期值将被视为<TODAY()

    • 通常(例如,如果您这样做IF(D1<S1,…)),所有日期都被认为小于所有字符串。但是,出于目的COUNTIF,日期不被视为小于、大于或等于字符串。它们只是不被计算在内。这似乎没有记录。
    • 列中的值 I是通过公式计算的,这不是问题。

    您需要说"<"&TODAY()才能获得今天日期的值。

  • 当字符串常量中连续出现两个双引号时,它们的作用相当于一个双引号字符。这很令人困惑。例如,如果您"foo""bar"在公式中说,则其计算结果为字符串值foo"bar。按照同样的规则,如果您""""在公式中说,则其计算结果为字符串值",而当您说时"<>"&"""",其计算结果为<>",因此您正在将 Column 中的值 J与 进行比较"

    要检查值是否不为空,您需要说"<>"&"",或者简单地说"<>",这非常不直观。

    • 轻微地更清晰的语法是=*,它测试值是否为非空字符串。但是,<>将计算所有非空单元格,而=*不会计算包含数字或日期的单元格。由于您没有说明 Column 中的内容 J,我不知道这对您是否有用。

所以你想要的公式是

=COUNTIFS(I6:I20,"<"&TODAY(), J6:J20,"<>")

请注意,这是不是数组公式,因此不是需要Ctrl++ ShiftEnter

例如:

        演示上述公式的电子表格片段

  • 第 6 行计算在内,因为I6(2019 年 2 月 11 日) 小于今天 (2019 年 2 月 19 日) 并且J6( foo) 不为空。
  • 第 7-9 行不算数,因为它们在列中是空白的 J
  • 第 10 行不算数,因为I10是空白。(第 15-20 行也是如此。)
  • 第 11 行和第 12 行不计算在内,因为I11(2019 年 2 月 25 日) 和 I12(2019 年 2 月 26 日) 大于今天的日期。
  • 第 13 行和第 14 行,因为第 13 列中的日期 I是未来的日期 在 列 中它们是空白的 J

相关内容