Google Sheets公式问题:按年份计算指定供应商采购总额
问题分析与解决方法
原公式返回$0的核心原因是:在数组运算场景中,AND()函数无法处理数组条件,它只会返回单个布尔值(而非对应每一行的布尔数组),导致IF判断无法正确匹配符合条件的行,最终求和结果为0。
正确公式推荐
方法1:使用SUMPRODUCT(更简洁高效)
=SUMPRODUCT( ('Online Arbitrage'!A:A=D5)* ('Online Arbitrage'!M:M>=DATE(A2,1,1))* ('Online Arbitrage'!M:M<=DATE(A2,12,31))* ('Online Arbitrage'!N:N>0)* 'Online Arbitrage'!H:H* 'Online Arbitrage'!N:N )
方法2:使用ARRAYFORMULA+SUM
=SUM(ARRAYFORMULA( IF( ('Online Arbitrage'!A:A=D5)* ('Online Arbitrage'!M:M>=DATE(A2,1,1))* ('Online Arbitrage'!M:M<=DATE(A2,12,31))* ('Online Arbitrage'!N:N>0), 'Online Arbitrage'!H:H*'Online Arbitrage'!N:N, 0 ) ))
关键说明
- 用
*替代AND()来组合多个条件:每个条件会返回一个布尔数组(符合为TRUE即1,不符合为FALSE即0),相乘后只有所有条件都满足的行才会保留1,其余为0。 - 若要提升计算效率,建议将整列引用(如
A:A)改为实际数据范围(如A2:A1000),避免计算空行。
内容的提问来源于stack exchange,提问作者Jordan
相关产品推荐
相关产品推荐

