匹配同一数组中最接近的 5 个

匹配同一数组中最接近的 5 个

我有一个客户列表和纬度/经度坐标(3列:分别为c,u,v)我想创建5列来解析为最接近的5个客户。

到目前为止我正在使用

min(sqrt(([lat1]-[lat_array])^2+([long1]-[long_array])^2)) 

我还需要在另一个公式中加入这个公式

如果 [lat1,long1] 与 [lat70,long70] 第二接近,则显示 [customer70]

编辑 - 感谢 Scott Carner 为我提供 SMALL(),它提供了原始距离。现在要显示与距离相关的客户名称,我尝试

LOOKUP(small(sqrt(([lat1]-[lat_array])^2+([long1]-[long_array])^2),2), [list of distances], [customer_array])

中间部分让我很困惑,我需要创建一个数组来存储所有距离 customer1 的距离

编辑 2- 终于到了桌面,清理了帖子。这里还有一张我测试的图片在此处输入图片描述

从现在起,我将使用此表特有的公式

仍在研究[距离列表]。当我尝试

=LOOKUP(SMALL(SQRT((A2-$A$2:$A$5)^2+(B2-$B$2:$B$5)^2),2),SQRT((A2-$A$2:$A$5)^2+(B2-$B$2:$B$5)^2),$C$2:$C$5)

的值SQRT((A2-$A$2:$A$5)^2+(B2-$B$2:$B$5)^2)通常在单独返回时作为溢出数组返回,但似乎不具备 LOOKUP() 内部数组的属性,因为更改代码以排除 a 会使 LOOKUP() 解析为 b,这是我列表中的第二个值,但距离 a 最远

EDIT 3 停止使用 LOOKUP 开始使用 INDEX(REF,MATCH())

答案1

在此处输入图片描述

感谢用户 Scott Craner 对我的教导SMALLINDEX(MATCH())

相关内容