如何使用 Indirect 和 sumif 使多个参考单元格可拖动

如何使用 Indirect 和 sumif 使多个参考单元格可拖动

我有一个跨同一行和同一工作表的非连续范围,我想根据条件对其进行求和。由于它们是非连续的,因此我使用间接

我遇到的问题是H5,、、和无法更新到 H6、J6、L6、N6J5和P6。我有大约 30 行正在寻求你们这些天才专家的帮助,这远远超出了我的智商。L5N5P5

=SUM(SUMIF(INDIRECT({"H5","J5","L5","N5","P5"}),">0")) 

我使用的是 Excel 最新版本,或者 365 自带的任何桌面版本

答案1

SUMPRODUCT,它避免了易变的INDIRECT并且可以被拖动/复制:

=SUMPRODUCT(H5:P5,(H5:P5>0)*(ISEVEN(COLUMN(H5:P5))))

(H5:P5>0)*(ISEVEN(COLUMN(H5:P5)))创建一个大小和形状与范围相同的数组10然后 SUPRODUCT 将范围中的值与该数组中的值相乘10并返回值的总和。

由于1乘以任何数字都是该数字,0乘以任何数字都是该数字,因此0它将只返回满足大于 0 且在偶数列中的值,即 H、J、L、N 和 P。

在此处输入图片描述


使用 Office 365

我们可以使用 FILTER 来筛选出想要的值然后求和。我们使用 LET 来限制重复的引用:

=LET(r,H5:P5,SUM(FILTER(r,(r>0)*(ISEVEN(COLUMN(r))))))

在此处输入图片描述


然后,如果">0"有一种将 SUMIF 用作数组公式的方法,并且您实际上不需要条件,>0那么只需使用可以使用不相交范围的 SUM():

=SUM(H5,J5,L5,N5,P5)

答案2

或者将“>0”测试纳入更一般的解决方案:

=SUM((H5>0)*H5,(J5>0)*J5,(L5>0)*L5,(N5>0)*N5,(P5>0)*P5)

相关内容