【发布时间】:2021-08-05 04:02:11
【问题描述】:
希望尝试在 Excel 中查找以下内容,但无法使其正常工作。
我在 A 列中有日期,需要对照查询列中的日期进行检查以进行比较。我想计算比较列大于 A5 中日期或为空单元格的所有记录。我还想检查其他条件,但似乎无法使其正常工作。
=COUNTIFS(Query1[购买日期],OR(Query1[购买日期]="",Query1[购买日期]>A5))
【问题讨论】:
希望尝试在 Excel 中查找以下内容,但无法使其正常工作。
我在 A 列中有日期,需要对照查询列中的日期进行检查以进行比较。我想计算比较列大于 A5 中日期或为空单元格的所有记录。我还想检查其他条件,但似乎无法使其正常工作。
=COUNTIFS(Query1[购买日期],OR(Query1[购买日期]="",Query1[购买日期]>A5))
【问题讨论】:
使用:
=SUMPRODUCT(--((Query1[Purchased Date]="")+(Query1[Purchased Date]>A5)>0))
【讨论】:
*(Query1[SomeOtherColumn] ="X") 与 ((Query1[Purchased Date]="")+(Query1[Purchased Date]>A5)>0) 相乘来添加 AND 类型
您可以使用数组函数代替 countif。 假设您的日期在 A2:A25 范围内,并且您的参考日期在单元格 B2 中。
如果您输入任何其他单元格
=SUM((A2:A25>B2)+(A2:A25=""))
然后按 Ctrl+Shift+Enter,它会给你你想要的计数。
发生这种情况是因为 Excel 会将第一个内括号 (A2:A25>B2) 解析为 TRUE/FALSE 数组,并对第二个 (A2:A25="") 执行相同的操作。接下来,它将对它们求和,这相当于 OR 操作,并产生一个由零 (FALSE) 和一 (TRUE) 组成的数组。它通过对这个数组求和(使用函数 sum)结束,全部在一个单元格中。
【讨论】:
OR( A ; B) 变成 (A + B) 和 AND (A; B) 变成 (A * B)。其中 A 和 B 是您的过滤器表达式,它们以 TRUE 或 FALSE 解析。然后,您可以尽可能多地嵌套它们。示例:OR(A ; AND (B ; C)) 变为 (A + (B * C))
也许这更像是一个评论而不是一个答案,但在这种特殊情况下,您可以将两个单独的总数相加:
=COUNTIF(Query1[Purchased Date],"")+COUNTIF(Query1[Purchased Date],">"&A5)
因为条件是互斥的。
这是否有帮助取决于您要添加哪些附加条件。
顺便说一句,您的原始公式有两个问题:
(1) 如果您将值列表与 OR 逻辑相结合,则必须改用加法(如使用 Sum 或 Sumproduct 的两个答案)。
(2) Countif 或 Countifs 的语法必须将范围与条件分开,这不会让您做您想做的事情,因此这又会导致您使用 Sum 或 Sumproduct。
【讨论】: