使用MMULT忽略空白单元格执行求和行

时间:2017-12-13 15:46:44

标签: arrays excel matrix

我试图对一个范围内的所有行求和,然后在Excel中获得该数组中非零行的平均值。我能得到的最接近的是:

{=AVERAGE(MMULT(M6:P8,SIGN(TRANSPOSE(COLUMN(M6:P8)))))}

如果没有空白单元格,则有效,但如果有,则获得#VALUE!错误。 我尝试在MMULT中使用N函数来转换数组中的空白,但它似乎无法工作。
任何帮助将非常感激。由于
示例:

    M N O P  
6   7 4 3 6  
7  
8   1 3 4 7  

答案应为17.5

2 个答案:

答案 0 :(得分:0)

好的,可能有一个更优雅的解决方案,但这有效:

{=SUM(M6:P8)/SUM(IF(MMULT(--(M6:P8<>""),TRANSPOSE(COLUMN(M6:P8)^0)),1))}

改编自:https://www.mrexcel.com/forum/excel-questions/1026823-count-non-blank-rows-array.html

答案 1 :(得分:0)

现在你有一个不涉及帮助列的工作解决方案,这里有一个带辅助列的方法。

在单元格Q6中放入以下公式:

=(COUNT(M6:P6)>0)+0

并复制到Q8。

然后使用公式:

=SUM(M6:P8)/SUM(Q6:Q8)