我是excel vba的新手。我有一大堆数据,我必须计算每个id对应的平均值。搜索后,我发现使用excel AverageIf可以轻松完成。但是我必须计算一个低于阈值的数字的平均值。
以下是示例数据的屏幕截图。例如,当我计算id 1的平均价格时,我只会考虑平均值低于70的价格值,因为70是阈值,70以上的任何值都不能包括在计算中,所有其他ID也是如此。我很感激这方面的任何想法。
答案 0 :(得分:1)
AVERAGEIFS
应该做的工作:
=AVERAGEIFS(B2:B15,A2:A15,1,B2:B15,"<="&C2)
答案 1 :(得分:0)
我喜欢countifs,但这是另一种使用辅助列来确定是否包含在平均值计算中的方法。假设数据设置如上,而不是针对每个id重复阈值。
1)使用 Ctrl + T (选择范围内的单元格)将数据转换为表格。
2)在标题Average
下的右上角单元格中放置
=IF(B2<INDEX($C$2:$C$13,MATCH(A2,$A$2:$A$13,0)),1,"")
它会自动填充该列中的所有行。 根据实际范围定制范围。这些范围与下图相符。
3)在表格中选择一个单元格并按 Alt + N + V 生成一个pivottable并将其放在旁边当前表有2列间隙。
4)将id
添加到行,将price
添加到值字段。将“平均值”添加到页面字段并过滤1.然后右键单击“值”区域中的“价格”,并选择“按平均值汇总值”字段。
5)您可以向表中添加更多行,公式将自动完成,因此您只需刷新数据透视表即可获得新的平均值。
注意:
您也可以使用查找表来检索阈值。