在Excel中使用SQL比较列的每个值和其余值

我刚刚开始使用SQL,现在我正面临一个问题。 我已经做了一个查询,它给了我一个表,其中包含一个点的x坐标,同一点的y坐标,它的位置和该点的名称(该组中的每个值分配在一个不同的列) :

部分一致/ X_coord / Y_coord /位置

位置有3个可能的值(顶部,底部和未分配)

我需要取每个点(X和Y)的坐标,并将其与其他点的坐标进行比较,只要它们在相同的位置。

如果坐标之间的距离低于某个值,则必须计算距离为的匹配点之间的距离:

sqrt((x2-x1)^ 2 +(y2-y1)^ 2)

这两个点的名称,坐标和位置必须在不同的表格中输出,并包含以下列

Point_name1 / X_coord1 / X_corrd1 / Point_name2 / X_coord2 / Y_coord2 /位置

我的第一个方法是做一个Excelmacros,但它需要很长时间考虑我有超过50k点,所以我想我可以在Excel中使用SQL使用ADO连接,但我不知道如何解决这个问题,你们可以帮助我出来,即使它只是指向我的方法适当? 它必须在Excel中使用ADO来完成,这是我正在做的一个约束。

数据集示例:(input表)

| Point_name | X_Coord | Y_coord | Location | | A | 18886.2 | 1852.2 | TOP | | B | 11071.21 | 3507.47 | TOP | | C | 11138.81 | 3429.47 | TOP | | D | -15.63 | -10 | BOTTOM | | E | -35 | -32 | BOTTOM | | F | 13.23 | 45.6 | NOT ALLOCATED | | G | 18935 | 1820 | NOT ALLOCATED | | H | 18935 | 1785 | NOT ALLOCATED | 

预期表格:(考虑到小于36的距离)

 | Point_name1 | X_coord1 | Y_coord1 | Point_name2 | X_coord2 | Y_coord2 | Distance | Location | | D | -15.63 | -10 | E | -35 | -32 | 29.312 | BOTTOM | | G | 18935 | 1820 | H | 18935 | 1785 | 35 | NOT ALLOCATED | 

提前致谢!!