Excel技术问询:求和最近52个非空白工作周时长
解决Excel中对最新52个非空白工作周时长求和的问题
问题核心
你的数据区域C607:DB607包含104周的工作时长(左旧右新),需要求和最右侧的52个非空白单元格,但原有公式会包含空白且未定位到最新数据。
解决方案
方案1:Excel 365/2021(支持动态数组)
直接用FILTER过滤非空白数据,再用TAKE提取最后52个求和:
=SUM(TAKE(FILTER(C607:DB607, C607:DB607<>""), -52))
FILTER(C607:DB607, C607:DB607<>""):筛选出区域内所有非空白的工作时长,按原左旧右新的顺序排列TAKE(..., -52):提取筛选结果的最后52个(即最新的52个非空白记录)SUM:对提取出的52个数值求和
方案2:旧版Excel(不支持动态数组)
使用AGGREGATE定位最新52个非空白单元格的列范围,再求和:
=SUM(INDEX(C607:DB607, AGGREGATE(14, 6, COLUMN(C607:DB607)/(C607:DB607<>""), 52)):INDEX(C607:DB607, AGGREGATE(14, 6, COLUMN(C607:DB607)/(C607:DB607<>""), 1)))
AGGREGATE(14, 6, COLUMN(C607:DB607)/(C607:DB607<>""), N):按降序(从右到左)返回非空白单元格的列号,N=1取最右侧非空列,N=52取倒数第52个非空列INDEX:根据列号定位到对应的单元格,形成精准的求和区域SUM:对该区域内的数值求和
原有公式问题说明
你之前使用的公式是从第一个非空白单元格开始取52个单元格,会包含中间的空白值,且没有定位到最右侧的最新数据,因此无法满足需求。
内容的提问来源于stack exchange,提问作者JackFac
相关产品推荐
相关产品推荐

