У меня есть лист Excel, похожий на следующий -

  • Col A - Имя клиента,
  • Col B - Col D - информация Cient, такая как адрес, номер телефона и т.д. И
  • Col E - дата следующей встречи.

Я хочу создать таблицу так, чтобы

  • Полковник А будет датой следующей встречи,
  • Col B будет именем Клиента,
  • Col C - Col E будет Информация о клиенте.

Условие состоит в том, что каждый раз, когда я открываю таблицу, она начинается с «сегодня» или ближайшей даты (следующей будущей даты в списке), как в столбце «А» с датой следующего собрания, и таблица содержит данные за следующие 30 дней. Есть идеи, как двигаться дальше?

1 ответ1

2

Сортируйте исходную таблицу по дате следующего собрания.

Затем для первого столбца вашей таблицы вы можете обратиться к следующей формуле массива и перетащить вниз, чтобы заполнить остальные (не забудьте нажать Ctrl+Shift+Enter, чтобы сделать его формулой массива. Вам может потребоваться настроить диапазон данных D2:D9 в соответствии с вашим источником данных.):

=TEXT(INDEX(E:E,SMALL(IF(($E$2:$E$9>=TODAY())*($E$2:$E$9<TODAY()+30),ROW($E$2:$E$9),4^8),ROW(E1)))&"","[>0]m/d/yyyy;")

Для остальных трех столбцов используйте формулу массива ниже (нажмите Ctrl+Shift+Enter, чтобы сделать ее формулой массива. При необходимости скорректируйте диапазон данных.):

=INDEX(A:A,SMALL(IF(($E$2:$E$9>=TODAY())*($E$2:$E$9<TODAY()+30),ROW($E$2:$E$9),4^8),ROW(E1)))&""   

Перетащите вниз и вправо, чтобы заполнить таблицу.

Если вы хотите сделать это на отдельном листе, например, исходные данные находятся на Листе 1, и вы хотите создать новую таблицу на Листе 2, просто измените диапазон данных в формулах и нажмите Ctrl+Shift+Enter, чтобы сделать это формула массива:

=TEXT(INDEX(Sheet1!E:E,SMALL(IF((Sheet1!$E$2:$E$9>=TODAY())*(Sheet1!$E$2:$E$9<TODAY()+30),ROW($E$2:$E$9),4^8),ROW(Sheet2!E1)))&"","[>0]m/d/yyyy;")

= INDEX(Лист1!A:A, МАЛЫЙ (ЕСЛИ ((Лист1!$ E $ 2:$ E $ 9> = СЕГОДНЯ ())* (Лист1!$ E $ 2:$ E $ 9

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