有条件地平均Excel数据列

我有一个健康项目电子表格,其中有一列病人正在服用的症状和药物。 这些实际上是列,但我不知道如何写入堆栈溢出列。

symptom drug1 drug2 7 150 0 6 150 0 7 150 0 6 150 0 2 75 25 3 75 25 2 75 25 3 75 25 

我需要帮助写一个公式,将平均所有天症状级别6及以上与所有日子症状级别3和以下。 然后将其应用于药柱天。 例如在上面的例子中,当服用更多的药物1和更less的药物2时,看起来症状水平更高。现在,我正在通过手动标记日子来手动执行此操作。

由于症状可能由药物价值的最后x天决定,所以我希望药物价值也是x天的平均值。 每次我标记日子的时候,我也会这样做。

如果我理解正确,那么这是完全可能的。 以下是我能够创build的屏幕截图:

Excel工作表1

这给出了每种药物数量的平均值,只有当它>=<=指定的症状水平时。

公式如下所示,但不是在键入后按ENTER ,而必须按CTRL + SHIFT + ENTER

 =AVERAGE(IF($B$1:$I$1<=3,B2:I2)) 

这里是它在Excel中的样子:

Excel工作表2

正如您所看到的,该公式只能平均符合要求的数据。 对于这个条件函数的其他用途,逻辑testing可以被replace(数字,string,date等),函数也可以( sumaverageminmaxcount等)

如果你尝试这个,并以#VALUE结尾,那么你跳过了重要的一步!

键入公式后,HIT CTRL+SHIFT+ENTER

通过击中该组合键,Excel知道表单中的数据应该是单元格或范围的数组,而不是单个单元格或单个范围。

查看这个链接了解更多关于Excel数组公式的信息

你正在寻找的公式是AVERAGEIF我想。

像这样的东西:

 =AVERAGEIF(R2C1:R9C1,">=6",R2C2:R9C2) =AVERAGEIF($A$2:$A$9,">=6",$B$2:$B$9)