Excel 计算平均值时计数非空单元格(不在范围内)

Excel 计算平均值时计数非空单元格(不在范围内),excel,excel-formula,Excel,Excel Formula,我有计算平均百分比的公式: =CEILING((G157+G171+G185+G199+G213+G227+G241)/7;0,001)*100&" %" 然而,这将不起作用,因为一些单元格可能是空白的,那么我们需要除以除7以外的其他数字,以获得正确的程序 我知道我可以计算范围=COUNTBLANK(B4:B9)中的空白单元格,但这在我的情况下不起作用 有比写这样的东西更好、更简单的解决方案吗 =CEILING((G157+G171+G185+G199+G213+G

我有计算平均百分比的公式:

=CEILING((G157+G171+G185+G199+G213+G227+G241)/7;0,001)*100&" %"
然而,这将不起作用,因为一些单元格可能是空白的,那么我们需要除以除7以外的其他数字,以获得正确的程序

我知道我可以计算范围
=COUNTBLANK(B4:B9)
中的空白单元格,但这在我的情况下不起作用

有比写这样的东西更好、更简单的解决方案吗

=CEILING((G157+G171+G185+G199+G213+G227+G241)/(IF(G157=0;0;1)+IF(G171=0;0;1)+IF(G185=0;0;1)+IF(G199=0;0;1)+IF(G213=0;0;1)+IF(G227=0;0;1)+IF(G241=0;0;1));0,001)*100&" %"
我们可以使用索引:

如果Office 365具有动态数组公式:

=TEXT(CEILING(SUM(INDEX(G:G,{157,171,185,199,213,227,241}))/SUMPRODUCT(--(LEN(INDEX(G:G,{157,171,185,199,213,227,241}))>0)),0.001),"0.0%")
如果没有:

=TEXT(CEILING(SUM(INDEX(G:G,N(IF({1},{157,171,185,199,213,227,241}))))/SUMPRODUCT(--(LEN(INDEX(G:G,N(IF({1},{157,171,185,199,213,227,241}))))>0)),0.001),"0.0%")
您可能需要将所有的
更改为

我们可以使用索引:

如果Office 365具有动态数组公式:

=TEXT(CEILING(SUM(INDEX(G:G,{157,171,185,199,213,227,241}))/SUMPRODUCT(--(LEN(INDEX(G:G,{157,171,185,199,213,227,241}))>0)),0.001),"0.0%")
如果没有:

=TEXT(CEILING(SUM(INDEX(G:G,N(IF({1},{157,171,185,199,213,227,241}))))/SUMPRODUCT(--(LEN(INDEX(G:G,N(IF({1},{157,171,185,199,213,227,241}))))>0)),0.001),"0.0%")
您可能需要将所有的
更改为


平均值
将忽略空白单元格(和文本),因此您只需替换:

(G157+G171+G185+G199+G213+G227+G241)/7
与:

i、 e:


(根据您的设置,将逗号替换为分号,将“我的小数点”替换为逗号)。

AVERAGE
将忽略空白单元格(和文本),因此您只需替换:

(G157+G171+G185+G199+G213+G227+G241)/7
与:

i、 e:


(根据您的设置,用分号替换逗号,用逗号替换我的小数)。

谢谢!就性能而言,我想这个比我的好<代码>=文本(上限(索引(G:G,N(IF({1},{2,3,5,7,10,15,20})))/SUMPRODUCT(--)(索引(G:G,N(IF({1},{2,3,5,7,10,15,20}))>0),0.001),“0%”
谢谢!就性能而言,我想这个比我的好<代码>=文本(上限(总和(指数G:G,N(如果({1},{2,3,5,7,10,15,20})))/SUMPRODUCT(--)(指数G:G,N(如果({1},{2,3,5,7,10,15,20}))>0),0.001,“0%”