Я не совсем уверен, есть ли что-то попроще, но вы могли бы использовать что-то подобное для первой даты начала, которая в основном находит первое непустое значение (это формула массива, т.е. используйте Ctrl + Сдвиг + Введите ):
=INDEX(A2:F2,MIN(MATCH(0,--ISBLANK(A2:F2),0),5))
Первая дата окончания (это также формула массива), которая в основном находит первое пустое значение после даты начала и возвращается на одну ячейку назад:
=OFFSET(A2,0,IFERROR(MATCH(G2,A2:F2,0)-1+MATCH(1,--ISBLANK(INDEX(A2:F2,1,MATCH(G2,A2:F2,0)):F2),0)-2,5))
Вторая начальная дата, которая в основном идет на 2 ячейки после последней конечной даты, но если между непустыми ячейками может быть несколько пустых ячеек, вы можете использовать нечто более похожее на первую формулу для начальной даты :
=OFFSET(A2,0,MIN(MATCH(H2,A2:F2,0)+1,5))
Вторая конечная дата (такая же, как в предыдущей формуле массива конечных дат, но с одной скорректированной ссылкой на эту начальную дату):
=OFFSET(A2,0,IFERROR(MATCH(I2,A2:F2,0)-1+MATCH(1,--ISBLANK(INDEX(A2:F2,1,MATCH(I2,A2:F2,0)):F2),0)-2,5))
Промыть и повторить для третьей даты начала и окончания:
=OFFSET(A2,0,MIN(IFERROR(MATCH(J2,A2:F2,0)+1,5),5))
=OFFSET(A2,0,IFERROR(MATCH(K2,A2:F2,0)-1+MATCH(1,--ISBLANK(INDEX(A2:F2,1,MATCH(K2,A2:F2,0)):F2),0)-2,5))
Этот вид оставляет 0
s, но вы можете использовать IF( XXX = 0, "", XXX)
, где XXX
- это целая формула, она делает ее более красивой, но вдвое длиннее формулы.