Вот еще один способ расширения только одной строки данных:
=ArrayFormula({TO_DATE(row(indirect("a"&A1&":A"&B1-1))),if(row(indirect("a"&A1&":A"&B1-1)),C1)})
![enter image description here](https://i.stack.imgur.com/IDlxJ.png)
Это можно усовершенствовать, чтобы создать динамическую формулу для нескольких строк.
Сначала создайте вспомогательный столбец в столбце D, который просто содержит количество ночей пребывания:
=ArrayFormula(if(A:A="","",B:B-A:A))
Тогда это даст список дат:
=ArrayFormula(to_date(vlookup(row(indirect("a1:A"&sum(D:D))),{sumif(row(D:D),"<="&row(D:D),D:D)-D:D+1,A:A},2)+
row(indirect("a1:A"&sum(D:D)))-
vlookup(row(indirect("a1:A"&sum(D:D))),sumif(row(D:D),"<="&row(D:D),D:D)-D:D+1,1)))
И это даст данные столбца C:
=ArrayFormula(vlookup(row(indirect("a1:A"&sum(D:D))),{sumif(row(D:D),"<="&row(D:D),D:D)-D:D+1,C:C},2))
![enter image description here](https://i.stack.imgur.com/nv2ji.png)
Пояснение.
Столбцы E-J содержат этапы получения окончательной формулы.
![enter image description here](https://i.stack.imgur.com/g8FTy.png)
Столбец E:
=ArrayFormula(sumif(row(D:D),"<="&row(D:D),D:D))
Это дает промежуточный итог ночного пребывания на основе столбца D.
Колонка F:
=ArrayFormula(sumif(row(D:D),"<="&row(D:D),D:D)-D:D+1)
Это дает промежуточный итог только до даты начала - необходимый для работы vlookup позже.
Колонка G:
=ArrayFormula(row(indirect("a1:A"&sum(D:D))))
Числа от 1 до N, где N - общее количество ночей пребывания, полученное из столбца D.
Колонка H:
=ArrayFormula(vlookup(row(indirect("a1:A"&sum(D:D))),{sumif(row(D:D),"<="&row(D:D),D:D)-D:D+1,A:A},2))
Даты начала каждого диапазона дат.
Столбец I:
=ArrayFormula(vlookup(row(indirect("a1:A"&sum(D:D))),sumif(row(D:D),"<="&row(D:D),D:D)-D:D+1,1))
Числа, соответствующие началу каждого диапазона дат.
Столбец J:
=ArrayFormula(vlookup(row(indirect("a1:A"&sum(D:D))),{sumif(row(D:D),"<="&row(D:D),D:D)-D:D+1,A:A},2)+
row(indirect("a1:A"&sum(D:D))))
Дата начала каждого диапазона дат плюс цифры от 1 до N
Колонка K:
=ArrayFormula(to_date(vlookup(row(indirect("a1:A"&sum(D:D))),{sumif(row(D:D),"<="&row(D:D),D:D)-D:D+1,A:A},2)+
row(indirect("a1:A"&sum(D:D)))-
vlookup(row(indirect("a1:A"&sum(D:D))),sumif(row(D:D),"<="&row(D:D),D:D)-D:D+1,1)))
То же, что столбец J минус начальный номер каждого диапазона дат.
Столбец L работает так же, как столбец H.