Google Sheets中基于日期与出版年份统计符合条件行数的问题
问题解决:Google Sheets COUNTIFS统计预读本行数失效
问题原因
你当前的COUNTIFS公式无法工作,核心原因是COUNTIFS不支持逐行的跨列条件匹配:
- 公式中
"<="&YEAR(GRData!$M:$M)会生成一个年份数组,但COUNTIFS会将其视为多个独立的条件组,而非逐行对应O列的阅读日期进行比较。 - 你之前统计“阅读年份晚于出版年份”的公式看似正常,实际也是不符合逐行对比逻辑的巧合结果,并非正确实现。
解决方案
改用SUMPRODUCT函数实现逐行逻辑判断与统计,它支持逐行计算多个条件的交集并求和:
1. 仅统计已读(read)书籍
=SUMPRODUCT(--(GRData!$S:$S="read"), --(YEAR(GRData!$O:$O)<=GRData!$M:$M))
--(条件):将布尔值(TRUE/FALSE)转换为1/0,方便SUMPRODUCT求和- 第一个参数筛选状态为
read的行,第二个参数判断阅读年份≤出版年份
2. 统计已读或未读完(abandoned-dnf)书籍
方法一(逻辑或判断):
=SUMPRODUCT(--((GRData!$S:$S="read")+(GRData!$S:$S="abandoned-dnf")>0), --(YEAR(GRData!$O:$O)<=GRData!$M:$M))
方法二(正则匹配简化多条件):
=SUMPRODUCT(--(REGEXMATCH(GRData!$S:$S,"read|abandoned-dnf")), --(YEAR(GRData!$O:$O)<=GRData!$M:$M))
补充说明
如果数据量较大,建议避免使用整列引用(如$S:$S),改用实际数据范围(如$S$2:$S$1000),可提升公式运行效率。
内容的提问来源于stack exchange,提问作者filemanager
相关产品推荐
相关产品推荐

