我在excel中有一个稀疏数据集,例如:
1 0 2 4 5 8
2 3 0 0 0 6
零代表缺失值。
我想使用Excel对每行中的前3个非缺失值求和。
谢谢
答案 0 :(得分:3)
对于每行的总和,您可以执行以下操作:
数组公式 - 使用:
CTRL + SHIFT +输入
=SUM(INDEX($A1:$F1, 1, 1):INDEX($A1:$F1, 1, SMALL(IF($A1:$F1, COLUMN($A1:$F1) - COLUMN($A1) + 1), 3)))
答案 1 :(得分:2)
对于正常输入的公式,请尝试:
=SUMPRODUCT(N(OFFSET(A1,0,AGGREGATE(15,6,1/1/(A1:K1<>0)*COLUMN(A1:K1),{1,2,3})-1)))
答案 2 :(得分:1)
我家里没有Excel来测试它,但您可以尝试使用Ctrl + Shift + Enter输入此公式:
=SUM(OFFSET(A1:F1,0,0,1,SMALL(IF(A1:F1,COLUMN(A1:F1)),3)))
SMALL(IF(A1:F1>"",COLUMN(A1:F1)),3)
部分应该返回第三个非零单元格的索引。
答案 3 :(得分:1)
如果您拥有最新版本的Excel 2016,并且您确定每个单元格只包含一个数字,则可以利用CONCAT功能:
=SUM(--MID(SUBSTITUTE(CONCAT(A1:F1),0,""),{1,2,3},1))