EXCEL如何匹配最接近数值的值

请问如何把E列最接近A列的数值对应的F列匹配到B列上,如图片5460.40元可以匹配到E列的5500的463.30元

可以参考下面方法处理:


1、首先两个匹配的文件中需要一列共同的数据,如图所示,第一列中的姓名就是共同数据,这样才有依据去匹配其他数值。我们把表1中的工号匹配到表2中。



2、在需要的表格中输入"=vlookup"。



3、查找值就是共同数据的那一列,姓名列,选择B列,然后输入“,”逗号。



4、数据表就是要“移动”数据的拿一张表格中数据,从共同列开始一直到需要的那一列,工号列,然后输入“,”逗号。



5、然后会提示选择的列是姓名列还是工号列,我们选择工号列,然后还是输入“,”逗号。



6、接下来,会提示选择精确匹配和近似匹配,我们选择精确匹配,然后Enter,就得到了姓名对应的工号。


温馨提示:内容为网友见解,仅供参考
第1个回答  2019-01-24
B2公式:
=INDEX($F$2:$F$18,MAX(IF(ABS($E$2:$E$18-A2)=MIN(ABS($E$2:$E$18-A2)),ROW($E$2:$E$18),0))-1,1)
公式中18可以改成你数据最后一行的行号即可。
然后选定B2单元格后鼠标点击进去上面的公示栏,然后按Ctrl+Shift+Enter/回车三键(按住Ctrl+Shift两键,然后按Enter/回车),直至公式首尾出现{ },然后向下拖动填充B2单元格公式到B3、B4……等单元格。追问

搞定,谢谢,请问一下为什么一定要绝对值才行呢?单选那一列的数据不行吗

追答

因为有的数据可能会大于A2的值(此时减A2的话是正数)、有的可能会小于A2的值(此时减A2的话是负数),那到底哪个值最接近A2呢?不能够直接相比较,所以要将这两个值的绝对值进行比较。

追问

好的,谢谢你

本回答被提问者采纳
第2个回答  2019-01-24
比如:4200是匹配4000后的343.3,还是匹配4500后的383.3追问

要取最接近的数,所以4000就行了,谢谢

追答

=INDEX(F:F,MATCH(A2,E:E,-1)+(INDEX(E:E,MATCH(A2,E:E,-1))+INDEX(E:E,MATCH(A2,E:E,-1)+1)>A2*2))

当然这样也有个问题存在,10500时取哪个呢,另外你表格中的7000向下的数据是文本格式,必须改成常规格式。

追问

请问为什么数值13000以上的匹配不到的呢,就算我在后面添加了13000以上的数值也不行呢

追答

这种类型提取数据,需要E列数据必须按顺序排序,因此,在后面追加非顺序数据是会出错的。最好是由小到大排序,可以用LOOKUP函数提取,另外像这种表格提取数据比较合理的是用插值法,才不会出现中间数据取哪个的问题,比如400对应10,600对应20,那500返回15,420返回11这样。

追问

好的,谢谢你

第3个回答  2019-01-24
=INDEX(F:F,MATCH(MIN(ABS(E:E-A2)),ABS(E:E-A2),))
数组公式 Ctrl+Shift+Enter 三键结束
第4个回答  2019-01-24
=index(f$2:f$18,match(a2,e$2:e$18,-1))追问

你好,结果值不对呢?请看图片

追答

=IFERROR(INDEX(N(OFFSET(E$19,1-ROW($1:$19),)),MATCH(1,FREQUENCY(A2,N(OFFSET(D$19,1-ROW($1:$19),))),)),E$2)

相似回答