2015-06-02 49 views
0

我需要创建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 
    

    平均将1.9

  4. 我需要的是一个Excel作为在这一领域的输出使2,0 1,9,而不是因为这是从我上面列出的值最接近的步长值(下1.)

  5. 如果该值在两个步骤值之间,我需要它作为较高的值输出(如果它的1,5我需要它是1,7 - 不是1,3)。

有没有人有这样的想法?

+0

值是否始终按从高到低排序? – Jerry

+0

@pnuts嗯,我想你可以这样说,谢谢像你和Barry这样的人。我认为总的来说,我从你们两位学到了绝大部分的技巧:P – Jerry

+0

@Jerry:没有数据没有排序。他们是随机的。 – eklisiarh

回答

1

我假设您的区域设置使用逗号作为小数点分隔符。我的设置使用小数点,所以请在适应场景时进行调整。

将步骤值输入到一系列单元格中,按升序排序。将范围名称“Steps”分配给该范围。如果在单元格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

0

假设您的值进行排序提升你的计算公式为:
=INDEX(B2:B11,IFERROR(MATCH(<average>,B2:B11,0),MATCH(<average>,B2:B11,1)+1))
哪里是你的平均公式或含有结果的单元格的引用。

+1

没问题,你也解释一下。我很乐意抽出时间回答几个问题。 –

1

可以找到最接近的值(和可能的2更高)用下面的阵列式(与Ctrl + Shift + Enter确认):

=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组合checkes如果较高的值(与最短距离)在线xists,如果没有,则返回较低的值。

+1

@pnuts否,它不 - 它返回最接近的值(1.7)。只有当绝对距离相同时,它才会返回更高的值,这就是我理解OP的第4点和第5点的方式 – BrakNicku