我有一个健康项目电子表格,其中包含患者正在服用的一系列症状和药物。 这些实际上是列,但我不知道如何在堆栈溢出中写一个列。
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天的平均值。每次我标记日期时,我也会手动执行此操作。
答案 0 :(得分:3)
如果我理解正确,那么这绝对是可能的。以下是我能够创建的屏幕截图:
只有当>=
或<=
达到指定的症状水平时,才会显示每种药物的平均值。
公式如下,但您不必在输入后点击ENTER
,而必须点击CTRL + SHIFT + ENTER
:
=AVERAGE(IF($B$1:$I$1<=3,B2:I2))
以下是Excel中的内容:
如您所见,公式仅对满足要求的数据求平均值。对于此条件函数的其他用法,可以替换逻辑测试(数字,字符串,日期等),函数也可以(sum
,average
,min
,{{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)