我有一系列血压测量数据。我想确定白天和晚上的平均血压。
问题的前半部分很简单:
=AVERAGEIFS(B17:B71;A17:A71;">="&I16;A17:A71;"<="&I17)
如果 A 列(“时间”)的对应值大于 7:00 且小于 22:00(这些时间值位于单元格 I16/17 中),则对 B 列(“系统”)的所有单元格求平均值。
我的问题是如何计算小时的平均值外部那个范围。我必须检查时间是否小于 7:00或者大于 22:00,但AVERAGEIFS
条件是通过 进行组合的AND
。
我显然不能使用,NOT()
因为我必须同时将它应用于两个比较的结果,而且似乎没有办法做到这一点。
正如您上面看到的,条件突出显示不是问题 - 我可以在那里输入几个按顺序测试的条件,从而有效地给我一个OR
运算符......
是否有一个函数可以用来从某个范围中获取单元格子集,然后可以对其应用另一个函数?当我想确定白天/夜晚的血压最大值和最小值时,我可能需要类似的东西 - Excel 没有这个函数MAXIFS()
...
答案1
谷歌搜索了一下,我想我找到了解决你两个问题的方法。对于第一部分,你可以尝试为您的两个条件添加布尔值看看它们是否都是正确的:
=AVERAGE(IF((A17:A71<I16)+(A17:A71>=I17);B17:B71))
请注意,这是一个数组公式,因此您必须按此方式输入(输入公式后按Ctrl+ Shift+ )。Enter
对于第二部分,您可以执行相同的操作,但将 -function 切换AVERAGE
为MAX
:
=MAX(IF((A17:A71<=I16)+(A17:A71>I17);B17:B71))
我希望这对你有用!
答案2
尝试以下方法。它利用了这样一个事实:你可以提取白天的测量值,从总数中减去白天的元素,从而得出隔夜平均值。
= (SUM(B17:B71) - SUMIFS(B17:B71;A17:A71;">="&I16;A17:A71;"<="&I17)) / (COUNT(B17:B71) - COUNTIFS(B17:B71;A17:A71;">="&I16;A17:A71;"<="&I17))
答案3
到目前为止,我有了以下想法:
我正在使用带有该功能的辅助列
=IF(AND(A17>=$I$16;A17<$I$17);"Day";"Night")
如果时间是白天,则包含字符串“Day”,否则包含字符串“Night”。然后我可以使用函数查看该列AVERAGEIF
。
但是,这并不能帮助我找到所有“日值”的最大压力......