Страницы: 1
RSS
Генерация последовательности дат
 
Здравствуйте!
Хочу сделать список дат, три дня подряд 13-07-26, 14-07-26, 15-07-26
потом хочу пропустить три дня, и опять в списке три дня 19-07-26, 20-07-26, 21-07-26
написал формулу =IF(MOD(DAY(C1), 6) < 3, C1 + 1, C1 + 4) но не работает
пример файла прикрепил, пожалуйста помогите :)
 
Код
=ЕСЛИ(ОСТАТ(F1-3; 6) < 3; F1 + 1; F1 + 4)
 
МатросНаЗебре,

Спасибо!!!
но формула IF(MOD(C1-3, 6) < 3, C1 + 1, C1 + 4) тоже не работает :)
Изменено: *Timon* - 13.07.2026 16:55:30
 
Для файла Book2
Код
=IF(MOD(C1, 6) < 3, C1 + 1, C1 + 4)
 
Александр Макаров,

Нет, дорогой
пример файла прикрепил
 
Цитата
написал:
но формула IF(MOD(C1-3, 6) < 3, C1 + 1, C1 + 4) тоже не работает
Для
22.Feb.26
23.Feb.26
(сообщение #3) формула будет
Код
=ЕСЛИ(ОСТАТ(C1-0; 6) < 3; C1 + 1; C1 + 4)
Для
13.Jul.26
14.Jul.26
(сообщение #5) формула будет
Код
=ЕСЛИ(ОСТАТ(C1-3; 6) < 3; C1 + 1; C1 + 4)
Очевидно, есть какая-то очевидная Вам зависимость. Осталось нам донести это знание)
 
Я понял, Вы привязываетесь к первой дате в блоке.
Код
=ЕСЛИ(ОСТАТ(A1-A$1+1; 6) < 3; C1 + 1; C1 + 4)
 
С1 = A1
Для С2:

Код
=ЕСЛИ(ОСТАТ(СТРОКА(C1); 3) = 0; C1 + 4; C1 + 1)
Изменено: sokol92 - 13.07.2026 18:09:21
Владимир
 
МатросНаЗебре,

Да нет я не хочу привязывать к первой дате.
Я хочу чтобы формула работала когда у меня одна начальная дата в примере это C1,
а столбец A это только пример, такие показатели должно вивести ваша формула.
Когда изменяется начальная дата, формула перестаёт работать правильно.
Изменено: *Timon* - 13.07.2026 18:15:32
 
Исправил свой пример.
Владимир
 
sokol92,

Спасибо!!!

Ваша Формула   IF(MOD(ROW(C1), 3) = 0, C1 + 4, C1 + 1)   работает при любом изменение дат.
 
sokol92,

Можете посмотреть? При смещении ячеек формула перестаёт работать, хотел над дати сделать заголовок.
 
Цитата
*Timon* написал:
сделать заголовок.
тогла так =IF(MOD(ROW(C1); 3) = 0; C2 + 4; C2 + 1)
 
bigorq,

Спасибо!!!
 
результат тот же:
=A2+3*(ОСТАТ(A$2-A2;3)=1)+1
или д. массив:
=LET(а;A2;б;ПОСЛЕД(17);а+б+ОТБР(б/3)*3)
 
ПавелW,

Спасибо Павел

Первая формула работает, а вторая нет, у меня версия эксель 2019 :(
 
Если задача именно сгенерить список дат, то можно и в PQ -  для удобства задаем от и до плюс шаг, нажимаем обновить.
 
txxt,

Спасибо!
Интересное решение, но до конца не понимаю как это реализовано в Power Query.
 
До кучи UDF
Для версий без поддержки динамических массивов - вводить в диапазон как формулу массива
Транспонирование можно зашить в функцию
На основе файла от txxt,
Код
Function DateGenerator(начальная_дата As Date, конечная_дата As Date, дат_в_блоке&, между_блоками&)
Dim arrAll()
Dim iDate As Date
Dim I&, J&
For iDate = начальная_дата To конечная_дата Step дат_в_блоке + между_блоками
  For I = 0 To дат_в_блоке - 1
    ReDim Preserve arrAll(J)
    arrAll(J) = iDate + I
    J = J + 1
  Next
Next
DateGenerator = arrAll
End Function
Согласие есть продукт при полном непротивлении сторон
 
Sanja,

Ваше решение вообще супер!!!

Старт
Финиш
Кол-во дат в блоке
Дат между блоками

Про функцию у меня другой вопрос, но это другая тема.
Изменено: *Timon* - 14.07.2026 17:40:15
 
ну так файл и сохранен как '*.xlsm'
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja написал:
ну так файл и сохранен как '*.xlsm'

Да, да, я на предыдущий файл смотрел.
Страницы: 1
Читают тему
Наверх