有条件地平均excel数据列

时间:2012-09-26 00:20:17

标签: excel conditional average

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

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和更少的药物2时,症状水平看起来更高。现在我通过手动标记日期来手动执行此操作。

由于症状可以通过药物值的最后x天确定,我希望药物值也是X天的平均值。每次我标记日期时,我也会手动执行此操作。

2 个答案:

答案 0 :(得分:3)

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

Excel Worksheet1

只有当>=<=达到指定的症状水平时,才会显示每种药物的平均值。

公式如下,但您不必在输入后点击ENTER,而必须点击CTRL + SHIFT + ENTER

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

以下是Excel中的内容:

Excel Worksheet2

如您所见,公式仅对满足要求的数据求平均值。对于此条件函数的其他用法,可以替换逻辑测试(数字,字符串,日期等),函数也可以(sumaveragemin,{{1 },max等。)

如果您尝试此操作并以count结束,那么您跳过了重要的一步!

输入公式后,HIT #VALUE

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

Check out this link for more info about Excel Array Formulas

答案 1 :(得分:1)

您正在寻找的公式是AVERAGEIF我认为。

这样的事情:

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