我需要创建Excel公式,从平均结果中输出最接近的集合数。我不确定我能解释得这么好,所以我举了一个例子:
这些是我的步骤值:
1,0
1,3
1,7
2,0
2,3
2,7
3,0
3,3
3,7
4,0
我正在使用这个公式:
=AVERAGE(B2:B3:B4:B5)
如果字段B2,B3,B4和B5的值为:
3,3
2,0
1,3
1,0
AVERAGE将是1,9
我需要的是Excel作为此字段中的输出以放置2,0而不是1,9,因为这是与上面列出的值(在1之下)最接近的步长值。
如果值介于两个步长值之间,我需要将其输出为更高的值(如果它是1,5我需要它为1,7 - 而不是1,3)。
有没有人知道如何实现这个目标?
答案 0 :(得分:1)
我假设您的区域设置使用逗号作为小数点分隔符。我的设置使用小数点,因此请在适应您的方案时进行调整。
将步骤值输入到一系列单元格中,按升序排序。将范围名称“步骤”分配给该范围。如果在单元格B7中计算平均值,则可以使用此公式根据步骤得出调整后的平均值。
=IF(LOOKUP(ROUND(B7,1),Steps)=ROUND(B7,1),ROUND(B7,1),LOOKUP(ROUND(B7,1)+IF(MOD(ROUND(B7,1),1)=0.8,0,0.3),Steps))
屏幕截图显示了一些不同的场景。请注意,1.8调整为1.7,而不是2.0
答案 1 :(得分:1)
您可以使用以下数组公式(使用Ctrl
+ Shift
+ Enter
确认)找到最接近的值(以及更高的可能值2):
=IFERROR(INDEX(A1:A10,MATCH(C4+MIN(ABS(A1:A10-C4)),A1:A10,0)),C4-MIN(ABS(A1:A10-C4)))
A1:A10
- 步数值(顺序无关紧要)
C4
- 平均值
Index
/ match
组合检查是否存在较高的值(具有最短距离),如果不存在,则返回较低的值。
答案 2 :(得分:0)
假设您的值按升序排序,则公式为:
=INDEX(B2:B11,IFERROR(MATCH(<average>,B2:B11,0),MATCH(<average>,B2:B11,1)+1))
您的平均公式在哪里或对包含结果的单元格的引用。