Страницы: 1
RSS
Вычисление значения из двухмерной таблицы с переменными данными(датами), Усовершеноствование/урезание/оптимизация формулы
 
Здравствуйте,

Есть две таблицы:
  1. Со ставками по перевозчкам в каждом месяце (лист 2).
  2. Рабочая таблица (лист 1)
Чтобы в рабочую таблицу вручную не вносить ставку за км, возникла потребность автоматизивать вся это дело.

Дополнительная информация:
  • один из перевочиков предоставляет ставки с 1 по 15 число каждого месяца, и с 16 по конец месяца
  • сначало вноситься вся информация по заказу и датируется "Датой формирования заказа" (на этом этапе стака за км базируется на дате формирования заказа)
  • как только поступает отмашка, что сегодня определенный заказ будет загружен и отправлен, то в соответсвующее поле "Дата отгрузки" вноситься дата. Следовательно "Ставка за км" дожна быть изменена в соответсвии с датой отгрузки.
  • Ячейки с информацией (11,12,21,22,31 и т.д.) обозначают временного интервал - 11 = с 01 по 15 число; 12 = с 16 по конец месяца, и т.д.
Ограничения:
  • Рабочая таблица находиться в общем доступе (Shared), поэтому в ней невозможно использовать ни макросы, ни умные таблицы, ни многие остальные вкусные плюшки. Так что свобода действий ограничена формулами
Формула написана (лист 1, колонка окрашена желтым), и она работает. Единственная проблема - формула очень грамоздкая (около 5 строк) со множеством однотипных значений.

Кто может - пожалуйтса помогите ее оптимизировать/сжать до минимально возможного состояния.
 
...
Изменено: Михаил Лебедев - 05.04.2019 06:53:52
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
вариант единственное что сделал убрал объединения в тарифах
Код
=ЕСЛИ(B2="";ИНДЕКС(ИНДЕКС(Лист2!$B$5:$Y$5;ПОИСКПОЗ(МЕСЯЦ(A2);Лист2!$B$2:$Y$2;0)):ИНДЕКС(Лист2!$B$10:$Y$10;ПОИСКПОЗ(МЕСЯЦ(A2);Лист2!$B$2:$Y$2;0)+1);ПОИСКПОЗ(C2;Лист2!$A$5:$A$10;0);ЕСЛИ(ДЕНЬ(A2)<16;1;2));ИНДЕКС(ИНДЕКС(Лист2!$B$5:$Y$5;ПОИСКПОЗ(МЕСЯЦ(B2);Лист2!$B$2:$Y$2;0)):ИНДЕКС(Лист2!$B$10:$Y$10;ПОИСКПОЗ(МЕСЯЦ(B2);Лист2!$B$2:$Y$2;0)+1);ПОИСКПОЗ(C2;Лист2!$A$5:$A$10;0);ЕСЛИ(ДЕНЬ(B2)<16;1;2)))
Лень двигатель прогресса, доказано!!!
 
Цитата
Сергей написал:
единственное что сделал убрал объединения в тарифах
если принять это изменение и предположить, что [Дата отгрузки] всегда > [Даты Формирования Заказа]
можно еще короче.
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
Михаил Лебедев написал:
если принять это изменение и предположить, что [Дата отгрузки] всегда > [Даты Формирования Заказа]можно еще короче.
Да Михаил, Вы обсалютно правы - дата откгрузки всегда будет > Даты формирования заказа (на крайнии случай - одна и таже)
 
Всем спасибо огромное - Вы очень помогли.
Страницы: 1
Наверх