Я работаю над инструментом календаря бронирования гостиниц, где мне нужно рассчитать средняя цена за ночь за бронирование, которое появляется между двумя произвольными датами поиска. Что следует учесть:Расчет нескольких выходных данных SUMPRODUCT (Google Таблицы)
- бронировки записываются с помощью проверки в срок и даты выезда
- вместе с ценой одного бронирования (все на той же строке)
- Дата отъезда считается как вакантными, так как комната будет пуста от ежедневной проверки в срок
- мы только хотим, чтобы стоимость бронирования в те дни, которые попадают между поиском 2 даты
- быть ясно, заказы могут простираться вставить первый & второй даты поиска, но мы будем игнорировать дневные значения за эти дни. yond финиковые конечности
- Я действительно хочу сделать это с помощью формул, а не код
Я играл с SUMPRODUCT формулой всего день, и получили довольно близко к желаемому результату - это особое исполнение только фиксирует общее количество комнат, заполненных в течение периода, но изменить его, чтобы вернуть значения не проблема:
=ARRAYFORMULA(SUMPRODUCT(GTE(Bookings_EndDate,ReportExec_StartDate+1), LTE(Bookings_StartDate,ReportExec_EndDate+0),IF((Bookings_StartDate<=ReportExec_StartDate)*(Bookings_EndDate>=ReportExec_EndDate),((ReportExec_EndDate-ReportExec_StartDate+1)),IF(Bookings_StartDate<ReportExec_StartDate,Bookings_EndDate-ReportExec_StartDate,IF(Bookings_EndDate>ReportExec_EndDate,(ReportExec_EndDate+1)-Bookings_StartDate,0)))))
То, что я думаю, что проблема здесь, является то, что вычисление массива выводит только условие встретило первый IF(), поэтому я уверен, что это неправильный подход. Быстрая ориентация названных диапазонов:
- ReportExec_StartDate/ReportExec_EndDate = дата поиска 1/поиск даты 2
- Bookings_StartDate/Bookings_EndDate = столбцы, содержащие регистрация заезда/выезда
первой ПЧ (), отслеживает все заказы, которые продлевают срок до/после даты поиска. 2-й вложенный IF() охотится на бронирование, которое распространяется только до первой даты поиска. . 3-й вложенный IF() охотится на бронирование, которое распространяется только за 2-ю поисковую дату.
В Excel это было бы проще, но Google - новая игрушка для меня - любые мысли приветствуются!