bmv98rus, в формуле с ОКРВВЕРХ для даты в А2 массив {#ЧИСЛО!;#ЧИСЛО!;#ЧИСЛО!}, поэтому формула возвращает #Н/Д Из справки по функции =ОКРВВЕРХ(-2,5; 2) Возвращает ошибку, т.к. число -2,5 и 2 имеют разные знаки (#ЧИСЛО!)
bmv98rus, в формуле с ОКРВВЕРХ для даты в А2 массив {#ЧИСЛО!;#ЧИСЛО!;#ЧИСЛО!}, поэтому формула возвращает #Н/Д Из справки по функции =ОКРВВЕРХ(-2,5; 2) Возвращает ошибку, т.к. число -2,5 и 2 имеют разные знаки (#ЧИСЛО!)AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Сообщение отредактировал AlexM - Четверг, 16.11.2023, 12:03
Поддержу неугомонность в теме. Задумал расширить горизонты формулы с субботы на любой день недели. Второе условие пока остается прежним, т.е. "второй или четвертый...", но теперь не только суббота, а и любой другой день - от понедельника до воскресенья. Вот что получилось и вроде работает:
где параметр деньН может принимать значения от 1 (понедельник) до 7 (воскресенье).
По поводу возможных дальнейших исследований. Нахождение, скажем, 1-й или 3-й субботы (или другого дня недели), наверное, вопросов уже не вызовет. А вот нахождение 5-й субботы (или другого дня) может быть интересным, поскольку не в каждом месяце имеются те или иные 5-е дни. Причем, вопрос становится еще более интересным при сохранении условия "ближайшая". "Ближайшая 5-я суббота" - это через сколько месяцев или даже лет? (Хоррроший такой получится режим работы для правления СНТ! )
Поддержу неугомонность в теме. Задумал расширить горизонты формулы с субботы на любой день недели. Второе условие пока остается прежним, т.е. "второй или четвертый...", но теперь не только суббота, а и любой другой день - от понедельника до воскресенья. Вот что получилось и вроде работает:
где параметр деньН может принимать значения от 1 (понедельник) до 7 (воскресенье).
По поводу возможных дальнейших исследований. Нахождение, скажем, 1-й или 3-й субботы (или другого дня недели), наверное, вопросов уже не вызовет. А вот нахождение 5-й субботы (или другого дня) может быть интересным, поскольку не в каждом месяце имеются те или иные 5-е дни. Причем, вопрос становится еще более интересным при сохранении условия "ближайшая". "Ближайшая 5-я суббота" - это через сколько месяцев или даже лет? (Хоррроший такой получится режим работы для правления СНТ! )Gustav
Комментарий к сообщению №1 Предыдущее правления нашего СНТ работали каждую субботу и воскресенье. Новое правление работает 2 и 4 субботу каждого месяца. В 5-ю субботу не каждого месяца будет работать следующее правление.
Комментарий к сообщению №1 Предыдущее правления нашего СНТ работали каждую субботу и воскресенье. Новое правление работает 2 и 4 субботу каждого месяца. В 5-ю субботу не каждого месяца будет работать следующее правление.AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
В 5-ю субботу не каждого месяца будет работать следующее правление.
Для справки (пролистнул календарь): в 2023 году - четыре "5-х субботы": 29.04, 29.07, 30.09, 30.12. Т.е. да, всё-таки месяцы между ними, не годы.Gustav
[/vba] Смысл алгоритма, думаю, понятен даже при незнакомстве с новоязом, но всё же поясню. Сначала рассчитывается массив первых суббот - от текущего месяца (т.е. от месяца проверяемой даты A2) и на несколько месяцев вперед. Вроде бы, достаточно трёх, т.е. текущий месяц + 3 месяца вперед: {3;2;1;0}. Итого получается массив дат 4-х первых суббот соседних месяцев. Далее прибавляем к этим субботам 28 дней (4 недели) и получаем потенциальные даты пятых суббот (второй массив). Наконец, сравниваем месяцы пятых и первых суббот (в одинаковых позициях массивов). Если месяцы совпадают, то это реальная 5-я суббота внутри месяца, включаем ее как дату в результирующий массив для функции ПРОСМОТР. Если НЕ совпадают, то в результирующий массив на эту позицию помещаем значение #Н/Д.
Итого выходит, что к элементам массива первых суббот после его создания нужно будет обратиться еще по 3 раза: два раза для вычисления функции МЕСЯЦ и один раз для представления выбираемого значения в функции ЕСЛИ. Именно поэтому я и выбрал новояз: в нём, как видно, этот алгоритм получается вполне изящным и компактным. Боюсь, что в версии 2003 массив первых суббот придётся генерить внутри формулы именно 4 раза, ну, или предложить какой-то иной хитрый алгоритм, обходящий это неудобство.
Что ж, даю первое приближение "ближайшей 5-й субботы", правда, на "новоязе" версий 365/2021++: [vba]
[/vba] Смысл алгоритма, думаю, понятен даже при незнакомстве с новоязом, но всё же поясню. Сначала рассчитывается массив первых суббот - от текущего месяца (т.е. от месяца проверяемой даты A2) и на несколько месяцев вперед. Вроде бы, достаточно трёх, т.е. текущий месяц + 3 месяца вперед: {3;2;1;0}. Итого получается массив дат 4-х первых суббот соседних месяцев. Далее прибавляем к этим субботам 28 дней (4 недели) и получаем потенциальные даты пятых суббот (второй массив). Наконец, сравниваем месяцы пятых и первых суббот (в одинаковых позициях массивов). Если месяцы совпадают, то это реальная 5-я суббота внутри месяца, включаем ее как дату в результирующий массив для функции ПРОСМОТР. Если НЕ совпадают, то в результирующий массив на эту позицию помещаем значение #Н/Д.
Итого выходит, что к элементам массива первых суббот после его создания нужно будет обратиться еще по 3 раза: два раза для вычисления функции МЕСЯЦ и один раз для представления выбираемого значения в функции ЕСЛИ. Именно поэтому я и выбрал новояз: в нём, как видно, этот алгоритм получается вполне изящным и компактным. Боюсь, что в версии 2003 массив первых суббот придётся генерить внутри формулы именно 4 раза, ну, или предложить какой-то иной хитрый алгоритм, обходящий это неудобство.Gustav