将AVERAGEIFS语句重新写入STDEV语句

我正在寻找将我的averageifs语句重写为STDEV语句。 我目前有一个平均的if语句,在types“M”内查找当前名称“N”,并在列“A”和“B”中find相同的types和名称,并将结果“C”行。

=AVERAGEIFS(C:C,A:A,M4,B:B,N4) =AVERAGEIFS(C:C,A:A,M5,B:B,N5) =AVERAGEIFS(C:C,A:A,M6,B:B,N6) etc... 

我想用STDEV来做同样的事情,但是input需求与STDEVIFS不同,不存在。

=STDEV(BG:BG,C:C,BL4,K:K,BM4)将给出所有列的开发。 我怎么能解决这个问题,就像我的averageifs声明,但STDEV。

  ABCMNO xxxxxx xxxxxx Type Name Mass Type Name AVG Mass Fruit Apple 3 Fruit Apple 4.25 Veggie Tomato 5 Fruit Orange 6.5 Veggie Lettuce 1 Veggie Tomato 6.333 Veggie Tomato 7 Veggie Lettuce 2.3333 Fruit Orange 6 Fruit Watermelon 5.5 Fruit Apple 5 Veggie Watermelon 4 Fruit Watermelon 5 Veggie Watermelon 3 Fruit Apple 3 Fruit Apple 6 Veggie Watermelon 5 Fruit Watermelon 6 Fruit Orange 7 Veggie Lettuce 3 Veggie Lettuce 3 Veggie Tomato 7 x = non included info 

你可以用一个IF()里面的STDEV数组forms:

 =STDEV(IF(($A$4:$A$19=M4)*($B$4:$B$19=N4),$C$4:$C$19)) 

作为一个数组公式,在退出编辑模式时,必须用Ctrl-Shift-Enter确认而不是input。 如果正确完成,Excel将在公式周围放置{}

数组公式不同于普通公式,因为它们将计算引用范围内的所有东西,因此不应使用完整的列引用。

你可以这样做,就像罗恩在回答中所说的那样,并命名范围来限制参考。 或者你可以使用一个表格,这样做或者只是限制了我在这里所做的范围。

在这里输入图像说明

您可以使用IF函数来返回适当的值,也可以使用布尔FALSE来忽略。 所以,给你的数据样本,例如可能是:(用Ctrl + Shift + Enter作为数组公式input

 =STDEV(IF((Type=M5)*(Name=N5),Mass)) 
  • types是列A中的命名范围
  • 名称是B列中的命名范围
  • 质量是列C中的命名范围
  • M5包含您正在寻找的types
  • N5包含您正在寻找的名称

注意 :您可以在上面的公式中使用整个(或部分)列参数,而不是命名范围 – 效率会更低。

在这里输入图像说明