1

Это забавный вызов для Excel (меня). У меня есть электронная таблица со следующими столбцами:

Customer   Date    lat.  long.

Теперь в начальном наборе данных их 10 000. То, что я хотел бы, это формула, которая позволит мне:

  1. Найти все другие записи, которые будут менее чем через шесть месяцев в будущем.
  2. Рассчитайте расстояние между этим клиентом и каждой из других записей из # 1.
  3. Подсчитайте число, которое в течение шести месяцев и в одной миле.
  4. Повторите эти действия для каждого клиента в наборе данных.

Я знаю, что есть способы расчета расстояния, но главное - выяснить, как сделать и шесть месяцев в будущем, и расстояние без предварительного вычисления всех расстояний в сетке 10K x 10K.

Теперь, если бы я работал на языке, я бы просто сделал цикл и проверил каждый элемент и позволил бы ему работать. Однако задача состоит в том, чтобы создать прототип этого и доказать другу, что это возможно в Excel.

Чтобы добавить дополнительные заметки на основе комментария:

Для меня главная проблема не в расчете расстояния, а в подсчете каждого из результатов и последующем просмотре всего списка. Так, например:

FIRST     12/01/1990   20  30
SECOND    04/02/1991   40  50
THIRD     05/16/1991   10  20
FOURTH    07/22/1991   50  60

Теперь предположим, что все, что я хочу, это: количество следующих шести месяцев и любой xy (две последние цифры), которое при добавлении будет меньше 51 от текущего добавленного xy текущей строки.

Для небольшого количества записей я мог бы просто создать еще один столбец для первого расчета и подсчета. В чем я не уверен, так это в том, как настроить так, чтобы это заняло только следующие шесть месяцев, а затем только запустило счетчик вычисления xy в одной ячейке. Мне кажется, я хочу, чтобы результат массива дат был достаточно близок, а затем выполнял вычисление расстояния для каждого элемента в массиве, а затем подсчитывал все те, которые оказались положительными. Но реализовать его в Excel - сложная задача.

Любые предложения или другие указатели?

Спасибо д

1 ответ1

1

Вы можете использовать SUMPRODUCT:

  • рассчитывать клиентов в следующие 6 месяцев:
    =SUMPRODUCT(([date]-[@date]<=183)*([date]-[@date]>0))
  • рассчитывать клиентов менее чем на 20 единиц, используя очень простую формулу (как на ровной поверхности):
    =SUMPRODUCT((SQRT(([@[lat.]]-[lat.])^2+([@[long.]]-[long.])^2)<20)*1)
  • объединяя оба критерия в одну формулу:
    =SUMPRODUCT(([date]-[@date]<=183)*([date]-[@date]>0)*(SQRT(([@[lat.]]-[lat.])^2+([@[long.]]-[long.])^2)<20))

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