我在Excel中有一个(大)数据数组,我需要根据另一列的值计算一列中某些值的平均值。例如,这是我的数据片段:
具体来说,我想取与行值1对应的F635平均值的平均值。为了更进一步,我希望这继续行值为2,行值为3等。
我不熟悉如何在Excel中运行代码,但尝试使用以下方法解决此问题:
=IF($C = "1", AVERAGE($D:$D), "")
(我的理解)可以解释为"如果C列中的值(任何地方)等于1,则取D列中相应值的平均值。"
当然,当我尝试这个时,我从Excel中得到一个公式错误。
任何指导都会非常感激。提前谢谢。
答案 0 :(得分:0)
Excel已经有一个内置函数正好用于此用途; AVERAGEIF()。
=AVERAGEIF(C:C,1,D:D)
答案 1 :(得分:0)
对于更复杂的情况,我会使用数组公式。对于AVERAGEIF
公式,这个很简单。例如=AVERAGEIF(A1:A23;1;B1:B23)
Array-formula允许更精细的ifs。要复制上述内容,您可以执行=SUM(IF($A$1:$A$23=1;$B$1:$B$23;0))/COUNT(IF($A$1:$A$23=1;$B$1:$B$23;0))
。
看起来更多的工作,但你可以创建非常精细的if语句。输入公式时,请执行CTRL-ENTER,而不是按ENTER键。在标准之间使用*来复制AND或+用于OR。示例:SUM(IF(($A$1:$A$23="apple")*($B$1:$B$23="green");$C$1:$C$23;0))
在c1:c23中计算绿苹果的值。
您的示例数据包含三个具有潜在ifs的列,因此我的猜测是您在某个时候需要数组公式。