我有一个客户列表和纬度/经度坐标(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())