Excel中按ISOWEEKNUM(周数)实现特定周数值求和的公式需求
按ISO周数求和的Excel公式实现
基于你已有的按月求和SUMIFS公式,我们可以调整日期条件,实现按**ISOWEEKNUM(ISO标准周数)**的求和需求。以下是两种适配不同Excel版本的解决方案:
方案1:兼容所有Excel版本(使用SUMPRODUCT)
如果你的Excel版本不支持动态数组函数(如Excel 2019及更早),可以使用SUMPRODUCT实现,同时建议加入年份条件避免跨年度同周数的求和误差:
=SUMPRODUCT( 'Izredni dogodek - Č'!$Q:$Q, --(ISOWEEKNUM('Izredni dogodek - Č'!$D:$D)=ISOWEEKNUM($B13)), --(YEAR('Izredni dogodek - Č'!$D:$D)=YEAR($B13)), --('Izredni dogodek - Č'!$C:$C="Mletje rude") )
参数说明:
'Izredni dogodek - Č'!$Q:$Q:求和目标区域(与原公式一致)--(ISOWEEKNUM('Izredni dogodek - Č'!$D:$D)=ISOWEEKNUM($B13)):判断日期列的ISO周数是否等于指定单元格$B13的ISO周数(--将逻辑值转换为1/0)--(YEAR('Izredni dogodek - Č'!$D:$D)=YEAR($B13)):限制仅计算同一年份的周数,避免不同年份同周数的数据被误统计--('Izredni dogodek - Č'!$C:$C="Mletje rude"):类别筛选条件(与原公式一致)
方案2:适用于Excel 365/2021及以上(使用SUM+FILTER)
如果你的Excel支持动态数组函数,SUM+FILTER的写法更直观易读:
=SUM( FILTER( 'Izredni dogodek - Č'!$Q:$Q, ISOWEEKNUM('Izredni dogodek - Č'!$D:$D)=ISOWEEKNUM($B13), YEAR('Izredni dogodek - Č'!$D:$D)=YEAR($B13), 'Izredni dogodek - Č'!$C:$C="Mletje rude" ) )
参数说明:
FILTER函数先根据三个条件筛选出符合要求的Q列数据,再用SUM对筛选结果求和- 条件逻辑与方案1完全一致,只是写法更简洁
注意事项
- 如果你的指定周数是直接输入的数字(而非包含日期的单元格),可以将
ISOWEEKNUM($B13)替换为具体数字(如=35),同时手动指定年份(如YEAR(...) = 2024) - 尽量避免使用整列引用(如
$D:$D),改为实际数据范围(如$D$2:$D$1000)可提升公式计算效率
内容的提问来源于stack exchange,提问作者Matija
相关产品推荐
相关产品推荐

