Excel中来自不包含零的单元格的平均值

我有一套我想要find的平均值。 值是在不同的单元格中,而不是彼此靠近。 零的值不应该被考虑。

  • 在单元格A1 Eg1有5,在单元格C4我有7,在单元格Z2我有0。
  • 在单元格A1 Eg2我有5,在单元格C4我有7,在单元格Z2我有8。

  • 在例1中,平均值应该是(5 + 7)/ 2
  • 在例2中,平均值应该是(5 + 7 + 8)/ 3

我想用Excel函数来实现这个function,不需要任何值的硬编码。 我知道,如果值是彼此相邻,例如在单元格A1,A2,A3我会做=AVERAGEIF(A1:A3,">0")

我将假设条件“不为零”可以被硬编码。 此外,单元格的位置可以是,因为它们是不相交的。

你可以实现你自己的:

 =SUM(A1, C4, Z2)/SUM(A1>0, C4>0, Z2>0) 

这有点麻烦,但是Excel似乎不让你在不相交的范围上使用*IF函数。 你总是可以使用一个隐藏的单元格范围,但是这听起来像你不想这样做。

过度杀伤3个细胞,但这种方法可以扩展到使用不连续范围,如果需要的话,而不是单个细胞

=SUM(E1,C4,Z2)/INDEX(FREQUENCY((E1,C4,Z2),0),2)

这适用于你的例子:

 =AVERAGEIF(INDIRECT({"A1","C4","Z2"}),">0")