You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MS Excel 2010:多条件+EDATE统计唯一值问题求助

排查Excel数组公式统计带日期条件的唯一值问题

我来帮你拆解这个问题——你的公式返回0的核心原因是日期条件的比较逻辑写错了,咱们一步步理清楚:

问题根源

你写的日期判断D2:D14="<"&EDATE(G1,1)犯了一个典型的Excel逻辑错误:Excel里的日期本质是数值(比如2018/4/30对应的数值是43219),而"<"&EDATE(G1,1)会把EDATE返回的日期数值转换成文本字符串(比如变成"<43219")。用文本字符串和D列的日期数值直接比较时,这种跨类型的比较会导致逻辑判断全部返回FALSE,嵌套IF里根本找不到符合条件的记录,最终FREQUENCY计算出来的结果全是0,SUMPRODUCT自然返回0。

修正后的数组公式

把日期条件改成直接的数值比较,去掉多余的引号拼接,修正后的公式(依旧需要按Ctrl+Shift+Enter完成数组输入):

{=SUMPRODUCT(1*(FREQUENCY(IF(D2:D14<EDATE(G1,1),IF($C$2:$C$14=F10,MATCH($A$2:$A$14,$A$2:$A$14,0))),ROW($A$2:$A$14)-ROW($A$2))>0))}

这个公式里,D2:D14<EDATE(G1,1)是直接用日期数值做比较,逻辑判断会正常返回TRUE/FALSE的数组,后续的IF嵌套就能正确筛选出符合州和日期条件的记录,再通过FREQUENCY统计唯一值数量。

可选优化(针对新版Excel)

如果你用的是Office 365或Excel 2021及以上版本,支持动态数组函数,完全可以用更简洁直观的写法,不用手动触发数组输入:

=COUNTA(UNIQUE(FILTER(A2:A14,(C2:C14=F10)*(D2:D14<EDATE(G1,1)))))

FILTER先筛选出符合州和日期条件的A列数据,UNIQUE提取唯一值,最后COUNTA统计数量,逻辑清晰,也不容易出错。

内容的提问来源于stack exchange,提问作者Uvulagirl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:19:45