多DNF条目下月度阅读页数统计公式故障排查求助
问题分析与修正公式
你的公式出错的核心原因是:当存在多本DNF书籍时,你用了所有DNF书籍的总页数 × 所有DNF书籍的总阅读百分比,这完全不符合实际计算逻辑——正确逻辑应该是每本DNF书籍的页数 × 对应单本的阅读百分比,再把这些结果相加。
原公式错误点拆解
原公式中这部分是问题根源:
ROUNDDOWN((SUMIFS(PagesRead, MonthRead, "June", Rating,"DNF"))*(SUMIFS(DNFPer,MonthRead,"June",Rating,"DNF")))
比如两本DNF书:
- 书1:466页,读了5% → 466×5%=23页
- 书2:1000页,读了76.8% → 1000×76.8%=768页
正确总和是23+768=791页,但原公式会算(466+1000)×(5%+76.8%)=1466×81.8%≈1199页,和实际完全不符。
修正后的公式
用SUMPRODUCT实现逐本匹配计算后求和,同时保留你原来的逻辑(先算所有已读完书籍的总页数,再加上每本DNF的实际阅读页数):
版本1(直接保留小数后求和)
=SUMIF(MonthRead,"June", PagesRead) - SUMIFS(PagesRead, MonthRead, "June", Rating,"DNF") + SUMPRODUCT((MonthRead="June")*(Rating="DNF")*PagesRead*DNFPer)
版本2(对每本DNF的阅读页数先向下取整,再求和)
如果你需要和原公式一样对每本的结果向下取整,用这个:
=SUMIF(MonthRead,"June", PagesRead) - SUMIFS(PagesRead, MonthRead, "June", Rating,"DNF") + SUMPRODUCT((MonthRead="June")*(Rating="DNF")*ROUNDDOWN(PagesRead*DNFPer,0))
逻辑说明
SUMIF(MonthRead,"June", PagesRead):计算六月所有书籍的总页数(包括读完的和DNF的)- SUMIFS(...):减去所有DNF书籍的总页数(因为这部分不能全算,要换成实际读的比例)+ SUMPRODUCT(...):对每本六月的DNF书籍,计算页数×阅读百分比(或取整后),再把所有结果加起来,得到DNF书籍的实际阅读总页数
内容的提问来源于stack exchange,提问作者waterscapes
相关产品推荐
相关产品推荐

