Вы можете использовать формулу LOOKUP
чтобы найти следующее непустое значение сверху. Например, в строке 7 столбца B (как в вашем примере) введите
=LOOKUP(2,1/(B$1:B6<>""),B$1:B6)
Это найдет следующее непустое значение в области выше B7. Я специально поместил символы $ для копирования формулы вниз по столбцу.
(подробное объяснение формул здесь)
Если у вас несколько тысяч строк, это может стать немного медленным, поскольку приведенная выше формула приводит к квадратичному поведению во время выполнения. Если это так, но есть известный предел для размера ваших пробелов (например, 2 строки), вы можете ограничить поиск этим конкретным количеством строк, например
=LOOKUP(2,1/(B4:B6<>""),B4:B6)
Это проверяет только три строки выше B7 для правильных значений.