我有两个需要匹配的坐标列表。
一个非常大的列表(434,561行),其结构如下(将Excel中的列视为A,B和C):
code (ID) | Latitude | Longitude
----------|------------|-----------
point455 | 4.513523 | 23.754457
point478 | 74.123523 | 83.757459
[...]
具有相同结构的另一组点的第二个列表(4000行)。
我想将第二个列表的每个点匹配到第一个列表中最接近的点。差不多是这样的:
(second list)
code (ID) | Latitude | Longitude | Closest point
----------|------------|-------------|--------------
tag165 | 4.513523 | 23.754457 | point488
tag198 | 74.123523 | 83.757459 | point124
[...]
我尝试分别匹配纬度和经度。以下公式给出了包含最接近的long值的单元格中的值:
=INDEX(ALLStops!B2:ALLStops!$B$434561, MATCH(MIN(ABS(ALLStops!$B$2:ALLStops!$B$434561-B2)), ABS(ALLStops!B2:ALLStops!$B$434561-B2), 0))
两个列都具有相同的公式,并且被独立处理。然后,我使用=MATCH(E2,ALLStops!B2:B434561,0)
来获取行。
但是大约1/3的条目具有最接近的坐标位于不同行上的值,这显然是没有用的。
因此,两个最接近的坐标值必须在同一行上,我想计算必须压缩为一个。
有人能建议一种限制这种方法的方法吗,或者是一种更整洁的方法(并且占用较少的内存)?
答案 0 :(得分:0)