Содержимое
Получаем список с отдельными строками для каждой даты каждого этапа — одной формулой Нужно получить то, что справа. Из того, что слева. На сверхновых функциях это делается одной формулой: =LET(f; LAMBDA(x; LET(даты;ПОСЛЕД(СМЕЩ(x;0;2)-СМЕЩ(x;0;1)+1;;СМЕЩ(x;0;1));ГСТОЛБИК(РАЗВЕРНУТЬ(x;СЧЁТ(даты);;x);ТЕКСТ(даты;"ДД.ММ.ГГГГ")))); REDUCE({"Название";"Дата"};Данные[Название];LAMBDA(acc;val; ВСТОЛБИК(acc; f(val))))) Что тут происходит? Мы задаем функцию f. На входе она получает один параметр — в нашей задаче это название этапа. И делает следующее: берет даты на столбец и на два правее от названия этапа (это делает функция СМЕЩ / OFFSET). Превращает эти даты в последовательность дат от начала и до конца с помощью ПОСЛЕД / SEQUENCE. Соединяет (ГСТОЛБИК / HSTACK) эти даты с названием этапа, повторенным столько раз, сколько в нем дат. Повторяем этап с помощью функции EXPAND / РАЗВЕРНУТЬ. Ну а число дат в последовательности считаем через старый добрый СЧЁТ / COUNT. И далее эту функцию мы используем. В качестве первоначального аргумента в REDUCE мы отправляем заголовки, а далее накапливаем результат: пробегаемся по списку этапов, для каждого получаем таблицу с помощью написанной нами функции f, и добавляем полученные таблицы одна под другой с помощью ВСТОЛБИКа / VSTACK.