Google Sheets组合FILTER与QUERY按条件求和多列数据问题
最优解决方案:使用SUMPRODUCT实现多条件匹配求和
该方案不受筛选后列数变动影响,稳定性更高,公式如下:
=SUMPRODUCT(($B$3:$B$13=J2)*($C$3:$C$13=K2)*($B$3:$H$3>=L2)*($B$3:$H$3<M2)*$B$3:$H$13)
逻辑说明:
- 前两个条件匹配行规则:筛选出B列值等于J2、C列值等于K2的行
- 第三个条件匹配列规则:筛选出第3行值处于
[L2, M2)区间的列 - 最终对同时满足行、列规则的单元格值求和
如果你需要保留原公式的B列模糊匹配逻辑(对应原公式里的contains用法),可以把
$B$3:$B$13=J2替换为REGEXMATCH($B$3:$B$13,J2)即可。
可选方案:调整QUERY+FILTER嵌套逻辑
如果你习惯用QUERY组合函数,可以调换筛选顺序,先过滤行再过滤列,避免列数变动报错:
=SUM(IFERROR(FILTER(QUERY($B$3:$H$13,"select * where Col1 contains'"&J2&"' and Col2 = date '"&TEXT(K2,"yyyy-mm-dd")&"'",0),$B$3:$H$3>=L2,$B$3:$H$3<M2),0))
内容的提问来源于stack exchange,提问作者alexvitoria
相关产品推荐
相关产品推荐

