Нужно разносить койко-дни туристов по месяцам, то есть сколько койко-дней было ,например, в июне, в мае и т.д. Как это сделать подскажите, пожалуйста!!
уважаемые товарищи спецы! Помогите!
Нужно разносить койко-дни туристов по месяцам, то есть сколько койко-дней было ,например, в июне, в мае и т.д. Как это сделать подскажите, пожалуйста!!luckyrok
Давайте по порядку опишу. 1. D8-A$2:A$5 - из даты начала месяца вычитаем даты заезда, получаем массив, в котором если дата заезда раньше, чем начало месяца, то будет положительное кол-во дней, иначе - отрицательное. 2. ТЕКСТ(D8-A$2:A$5;"\0;0") - преобразуем массив из п.1. Если положительное значение, то ноль (\ перед любым символом дает нам именно этот символ), если отрицательное, то это же значение, только положительное (для отрицательного нужно было написать -0) - это количество дней разницы (может быть больше 31) 3. ТЕКСТ(B$2:B$5-E8;"\0;0") - аналогично п.п. 1 и 2 - если дата выезда больше даты окончания месяца, то получаем ноль, если меньше, то количество дней разницы (может быть больше 31). 4. ДЕНЬ(E8) - кол-во дней в месяце (можно было написать E8-D8+1). 5. Вычитаем из кол-ва дней в месяце "недостачу" с начала и с окончания месяца из пунктов 2 и 3. Получаем массив из нужного нам количества дней между первым и последним. Но, как всегда, не без засады - когда день заезда и день выезда уходят вовне месяца, то может получиться отрицательное значение, которое мы и убираем еще одним ТЕКСТ(...;"0;\0"). 6. Потом умножаем полученный массив дней на такой же по размерности массив с количеством человек и складываем полученные перемноженные части.
Давайте по порядку опишу. 1. D8-A$2:A$5 - из даты начала месяца вычитаем даты заезда, получаем массив, в котором если дата заезда раньше, чем начало месяца, то будет положительное кол-во дней, иначе - отрицательное. 2. ТЕКСТ(D8-A$2:A$5;"\0;0") - преобразуем массив из п.1. Если положительное значение, то ноль (\ перед любым символом дает нам именно этот символ), если отрицательное, то это же значение, только положительное (для отрицательного нужно было написать -0) - это количество дней разницы (может быть больше 31) 3. ТЕКСТ(B$2:B$5-E8;"\0;0") - аналогично п.п. 1 и 2 - если дата выезда больше даты окончания месяца, то получаем ноль, если меньше, то количество дней разницы (может быть больше 31). 4. ДЕНЬ(E8) - кол-во дней в месяце (можно было написать E8-D8+1). 5. Вычитаем из кол-ва дней в месяце "недостачу" с начала и с окончания месяца из пунктов 2 и 3. Получаем массив из нужного нам количества дней между первым и последним. Но, как всегда, не без засады - когда день заезда и день выезда уходят вовне месяца, то может получиться отрицательное значение, которое мы и убираем еще одним ТЕКСТ(...;"0;\0"). 6. Потом умножаем полученный массив дней на такой же по размерности массив с количеством человек и складываем полученные перемноженные части._Boroda_