Сравните каждое значение столбца с остальным, используя SQL в Excel

Я только начинаю с SQL, и сейчас я столкнулся с проблемой. Я уже выполнил запрос, который дает мне таблицу, содержащую координату x точки, координату y той же точки, ее местоположение и имя этой точки (каждая из этих групп выделяется в другом столбце). :

Point_name / 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 / Расположение

Мой первый подход заключался в работе с макросом Excel, но мне нужно учесть, что у меня более 50 тыс. Точек, поэтому я подумал, что могу использовать SQL в excel, используя ADO-соединение, но я не знаю, как это решить, могли бы вы, ребята, помочь меня, даже если это просто указывает мне на соответствующий метод ?. Это должно быть сделано в Excel с использованием ADO, что является одним из ограничений того, что я делаю.

Пример набора данных: (таблица ввода)

| 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 | 

Заранее спасибо!!

Давайте будем гением компьютера.