Содержимое
Получаем первые даты нескольких месяцев до и после заданной даты Помогал коллегам: есть большая таблица со списком публикаций. Они все выходят в разное время и по разным продуктам. Нужно посмотреть на продажи за N месяцев до , в месяц публикации и в течение N месяцев после. Чтобы получить продажи этих месяцев (через ВПР и поиск столбца через XMATCH по месяцу в заголовках или через СУММЕСЛИМН - тут уж смотря как устроен источник с продажами), сначала надо сами даты получить - именно о них этот пост ;) В целом логика такая: нужно взять или первую дату месяца (функция ДАТА / DATE с месяцем и годом из нашей даты) или последнюю дату (функция КОНМЕСЯЦА / EOMONTH) предыдущего месяца и прибавить к ней единицу. Это будет первая дата первого месяца. А нам нужно, например, 7 дат (3 месяца до и 3 после). То есть нужно сдвинуть дату на один месяц, и на два, и на три, и так далее. Используем SEQUENCE и генерируем строку из чисел от 1 до N*2+1 И либо подставляем в КОНМЕСЯЦА, где есть второй аргумент - на сколько месяцев сделать сдвиг от даты (от первого аргумента). =ArrayFormula(КОНМЕСЯЦА(дата ;SEQUENCE(1;7)-5)+1) Тут вычитаем 5 - 3 месяца до + текущий месяц + еще один месяц, так как мы получаем конец месяца, а не начало, и потом прибавляем единицу к дату, чтобы получить первый день нужного месяца (первого в нашем наборе) Этот вариант не самый очевидный, но хотелось напомнить вам про существование функции КОНМЕСЯЦА :) Либо подставляем в ДАТАМЕС / EDATE - эта функция позволяет получить дату со сдвигом на заданное во втором аргументе количество месяцев: =ArrayFormula(ДАТАМЕС(ДАТА(ГОД(дата);МЕСЯЦ(дата )-4;1);SEQUENCE(1;7))) Мы даем не один месяц, а сразу пачку, сформированную функцией SEQUENCE. Здесь смещаемся назад не на 5 месяцев, а на 4, так как начальная дата - это первая дата месяца. Ее мы получаем функцией ДАТА - год от даты публикации, месяц со сдвигом на четыре назад, первый день. Еще один вариант - сразу засунуть SEQUENCE в функцию ДАТА - в аргумент с месяцами. Задаем начальный шаг -4 ( N + 1 назад) и возвращаем 7 чисел (N*2+1) =ArrayFormula(ДАТА(ГОД(A4);МЕСЯЦ(A4)+SEQUENCE(1;7;-4);1)) Таблица с примерами