Excel公式/ VBA在未排序的随机表中查找最接近的值

时间:2017-09-07 14:44:18

标签: excel vba aggregate-functions

我试图将最接近的值拉到我输入Excel文件的值。那是我的示范表,包含随机位置的文字:

LE  893 337
574 CH  185
524 768 IA

(例如:如果D4 = 1,则返回185)

开始时,我使用=INDEX(A1:A3,MATCH(MIN(ABS(A1:A3-$D$4)),ABS(A1:A3-$D$4),0))找到A列中最接近的值,再到D4单元格中的值,然后再将所有结果与D4单元格进行比较,但是任何文本出现的时刻开始显示#VALUE错误。 ISTEXT或ISNUMBER没有任何影响确实有帮助,只是开始抛出空单元而不是#VALUE错误。

另外,我无法相信它确实是现有的最佳解决方案。我显然可以编写一个宏创建新工作表,将所有数字复制到其中,然后比较每一列,然后比较每个结果,但这听起来很愚蠢和耗费资源。

1 个答案:

答案 0 :(得分:2)

使用AGGRAGATE:

=AGGREGATE(15,6,$A$1:$C$3/(ABS(A1:C3-D4) = AGGREGATE(15,6,ABS($A$1:$C$3-D4),1)),1)

enter image description here