У меня есть большая электронная таблица (> 15000 строк), которая содержит названия компаний, местоположения, производственные номера и широту / долготу местоположений. Пример таблицы
Я пытаюсь сравнить каждую координату широты и долготы со всеми остальными, чтобы найти те, которые находятся в пределах 0,01 градуса. Давайте назовем эти коллекции местоположений "областями". Затем я хочу получить общее количество проданных / день и всплеск / день для каждой из этих областей. Я атаковал этот вопрос, пытаясь сначала получить адреса ячеек всех длинных / длинных местоположений, которые находятся в пределах 0,01 градуса для существующей строки, используя формулу, подобную этой:
=CELL("address",INDEX(AB:AB,MATCH(MIN(ABS(AB:AB-[@Lat])),ABS(AB:AB-[@Lat]),0)))
Или гораздо более сложная формула:
=ABS(RANK([@Lat],AB:AB)-MATCH(MIN(LARGE(AB:AB,ROW(INDIRECT("1:"&COUNT(AB:AB)-2)))-LARGE(AB:AB,ROW(INDIRECT("1:"&COUNT(AB:AB)-2))+2)),LARGE(AB:AB,ROW(INDIRECT("1:"&COUNT(AB:AB)-2)))-LARGE(AB:AB,ROW(INDIRECT("1:"&COUNT(AB:AB)-2))+2),0)-1)<=1
Где AB - столбец лат.
Но они возвращают либо # N/A, либо 0. Возможно, мне нужно использовать скрипт VBA для итерации сравнений lat/long. Тем не менее, я не очень знаком с Excel VBA. Я скопировал меньшую часть данных (<2000 строк) на другой лист, чтобы облегчить тестирование формул массива.