Я храню дополнительный лист «обслуживания» в своих электронных таблицах, где храню такие данные.
Чтобы получить следующий свободный ряд диапазона, я просто проверяю соответствующую ячейку.Я могу получить значение мгновенно, потому что работа по поиску значения происходит при изменении данных.
Формула в ячейке обычно выглядит примерно так:
=QUERY(someSheet!A10:H5010,
"select min(A) where A > " & A9 & " and B is null and D is null and H < 1")
Значение в A9может периодически устанавливаться на какую-то строку, которая близка к «достаточной» до конца.
Предостережение : я никогда не проверял, подходит ли это для огромных наборов данных.