在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 |
提前致谢!!