У меня есть лист с 20000 строк. Каждая строка имеет идентификатор объекта, который может встречаться несколько раз по всему листу. Каждая строка также содержит координаты, поскольку они являются точками реального мира. Каждый объект может встречаться на листе несколько раз, потому что строка представляет объект, найденный на изображении. И 1 изображение = 1 день, отсюда и атрибут даты.

Мне нужно запросить столбец с идентификаторами объекта, что я знаю, как сделать, используя INDEX:MATCH. Но тогда мне нужно рассчитать для каждого объекта расстояние между последовательными координатами. Я вычисляю расстояние по следующей формуле: d =(sqrt((x2-x1)^ 2+(y2-y1)^ 2)). Проблема у меня заключается в том, как создать формулу Excel для расчета между последовательными совпадающими строками.

Скриншот

В примере я выделил строки с идентификатором объекта 30. Они встречаются 7 раз. Мне нужно рассчитать расстояние между последовательными записями, 30(1) против 30(2), 30(2) против 30(3) и т.д., Так что шесть расчетов расстояния. Мне нужно сделать это для каждого идентификатора объекта (исключая идентификаторы встречающихся объектов)

1 ответ1

1

Я предполагал минимальное расположение данных - строки содержат ID, координату X и координату Y в столбцах A , B и C соответственно.  В столбце D используйте MATCH чтобы найти следующую строку с тем же идентификатором. В столбцах E и F используйте INDEX чтобы найти координаты X и Y для следующего вхождения того же идентификатора. В столбце G вычислите расстояние между этой точкой и следующей.

  • D2=MATCH(A2, A3:A$9, 0)+ROW()
  • E2=INDEX(B:B, $D2, 1)
  • F2=INDEX(C:C, $D2, 1)
  • G2=IF(ISERROR(D2), "", SQRT((E2-B2)^2+(F2-C2)^2))

(заменив 9 в формуле для D2 на ваш последний действительный номер строки данных) и перетащите / заполните вниз.

     

Значения расстояния оказываются целыми числами, потому что я выбрал первые две тройки Пифагора (3-4-5 и 5-12-13) для векторов между точками.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .