多列仓库场景下SUMIFS函数计算订单总数问题求助
解决合并单元格仓库的订单求和问题
针对仓库名称占用多列(合并单元格)、无法直接用SUMIFS求和的问题,这里提供两种可靠的解决方案:
方法一:SUMPRODUCT + LOOKUP(通用稳定)
这个方法无需手动确定仓库的列范围,自动适配合并单元格的仓库列:
在R5单元格输入以下公式(根据实际数据范围调整列边界):
=SUMPRODUCT(($B:$B="R0015")*(LOOKUP("zzzzz",$1:$1,$1:$1)="Folkestone")*$C:$Z)
公式拆解:
$B:$B="R0015":筛选B列中资源编码为R0015的行LOOKUP("zzzzz",$1:$1,$1:$1)="Folkestone":对每一列自动获取对应的仓库名称(合并单元格时,LOOKUP会向左找到最近的非空仓库名),再筛选出属于Folkestone的列$C:$Z:订单数据所在的列范围,可调整为具体区间(比如$C$2:$Z$1000)提升计算效率- SUMPRODUCT会将三个条件的结果数组相乘,仅保留同时满足两个条件的单元格值,最后求和得到总数
方法二:SUMIFS + OFFSET(需明确列范围)
若能确定仓库的起始和结束列,也可以用SUMIFS结合OFFSET实现:
- 获取
Folkestone的起始列号:
=MATCH("Folkestone",$1:$1,0)
- 获取结束列号(假设仓库列后第一个非空单元格是下一个仓库):
=MATCH("*",OFFSET($1:$1,,MATCH("Folkestone",$1:$1,0)),0)+MATCH("Folkestone",$1:$1,0)-1
- 最终求和公式:
=SUMIFS(OFFSET($C:$Z,,0,ROWS($C:$Z),结束列号-起始列号+1),$B:$B,"R0015")
注意:此方法依赖仓库列后的单元格为下一个仓库名称,格式不稳定时优先选方法一
内容的提问来源于stack exchange,提问作者Alan Tingey
相关产品推荐
相关产品推荐

