输出结果为精确数

时间:2015-06-02 09:34:43

标签: excel

我需要创建Excel公式,从平均结果中输出最接近的集合数。我不确定我能解释得这么好,所以我举了一个例子:

  1. 这些是我的步骤值:

    1,0
    1,3
    1,7
    2,0
    2,3
    2,7
    3,0
    3,3
    3,7
    4,0
    
  2. 我正在使用这个公式:

    =AVERAGE(B2:B3:B4:B5)
    
  3. 如果字段B2,B3,B4和B5的值为:

    3,3
    2,0
    1,3
    1,0
    

    AVERAGE将是1,9

  4. 我需要的是Excel作为此字段中的输出以放置2,0而不是1,9,因为这是与上面列出的值(在1之下)最接近的步长值。

  5. 如果值介于两个步长值之间,我需要将其输出为更高的值(如果它是1,5我需要它为1,7 - 而不是1,3)。

  6. 有没有人知道如何实现这个目标?

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

enter image description here

答案 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))
您的平均公式在哪里或对包含结果的单元格的引用。