如何通过从列中引用来查找EXCEL表中最接近的值并返回行值
我有一个下面的表,我想要find最接近的值,一旦我input我的号码。 我的答案必须通过引用下面的两列值来返回经验年数的行值。
a)我的列1值= MYS_02
b)我的专栏2价值=最低工资
以下是我的表格:
这是我的公式。
= INDEX(A3:A15,SUMPRODUCT(MAX(($ B $ 2:$ķ$ 2 $ B $ 1:$ķ$ 1 $ B $ 3:$ķ$ 15 = $ A $ 18 $ A $ 20 $ B $ 22)*( ROW($ B $ 3:$ķ$ 15)))) – ROW($ B $ 3)+1)
它工作,如果我input的值在表中。 但是,当我inputless于或多于表中的值时,显示错误
它也显示错误的经验年份,当我插入表中有重复的值。 我希望我的“ 多年经验”行显示最接近的价值。
您可能会看到,当我input1400时 ,显示12 年的经验行。
它假设显示8而不是12 。
所以我的问题是我如何find最接近的价值。 我怎么能做到这一点?
把它缩短,你可以使用这个公式:
=INDEX(A1:A15,MIN(IF(ABS(B3:K15-B22)=MIN(ABS(B3:K15-B22)),ROW(3:15))))
这是一个数组公式,必须用Ctrl + Shift + Enter确认
MIN(ABS(B3:K15-B22))
),然后返回每一行( ROW(3:15)
),得到相同的差值( ABS(B3:K15-B22)=
)。 然后它只是select最小的行值( MIN(IF(...))
)并将其用于索引。
它总是为lowes行号! 如果B13和H4是相同的(也是最低的),它将select第4行(并返回1)
编辑 :
正确的公式是:
=INDEX(A1:A15,MIN(IF(ABS(IF(B1:K1=A20,IF(B2:K2=A18,B3:K15-B22)))=MIN(ABS(IF(B1:K1=A20,IF(B2:K2=A18,B3:K15-B22)))),ROW(3:15))))
这是一个数组公式,必须用Ctrl + Shift + Enter确认
是否与第一个公式相同,但删除了与第1行和第2行不相符的所有列( IF(B1:K1=A20,IF(B2:K2=A18,B3:K15))
)
编辑2 :
基于评论:如果你想排除小于search值的值,那么请使用这个公式:
=INDEX(A1:A15,MIN(IF(MAX(IF(B1:K1=A20,IF(B2:K2=A18,IF(B3:K15<=B22,B3:K15))))=IF(B1:K1=A20,IF(B2:K2=A18,IF(B3:K15<=B22,B3:K15))),ROW(3:15))))
这是一个数组公式,必须用Ctrl + Shift + Enter确认
对于最低的一行小于或等于拟议工资,在B23中join这个标准公式。
=INDEX(A3:A15, AGGREGATE(14, 6, ROW(1:13)/(B22>=INDEX(B3:J15, , MATCH(A20, B1:J1, 0)+(LEFT(A18, 3)="max"))), 1))
如果你想要基于的实际工资,那么这个标准公式在C22。
=INDEX($B$3:$K$15, AGGREGATE(14, 6, ROW(1:13)/(B22>=INDEX(B3:J15, , MATCH(A20, B1:J1, 0)+(LEFT(A18, 3)="max"))), 1), MATCH(A20, B1:K1, 0)+(LEFT(A18, 3)="max"))
替代绝对最接近
对于B22和适当的薪金栏之间的最小绝对差额,B23的经验年数是,
=INDEX(A3:A15, AGGREGATE(15, 6, ROW(1:13)/(ABS(B22-INDEX(B3:J15, , MATCH(A20, B1:J1, 0)+(LEFT(A18, 3)="max")))=AGGREGATE(15, 6, ABS(INDEX(B3:K15, 0, MATCH(A20, B1:K1, 0)+(LEFT(A18, 3)="max"))-B22), 1)), 1))
匹配表的工资将被检索,
=INDEX($B$3:$K$15, AGGREGATE(15, 6, ROW(1:13)/(ABS(B22-INDEX(B3:J15, , MATCH(A20, B1:J1, 0)+(LEFT(A18, 3)="max")))=AGGREGATE(15, 6, ABS(INDEX(B3:K15, 0, MATCH(A20, B1:K1, 0)+(LEFT(A18, 3)="max"))-B22), 1)), 1), MATCH(A20, B1:K1, 0)+(LEFT(A18, 3)="max"))