Я удивлен, что никто никогда не давал этот ответ раньше. Но это должно быть самое короткое, и это работает даже в Excel:
=ARRAYFORMULA(LOOKUP(2,1/(G2:G<>""),G2:G))
G2:G<>""
создает массив 1 / true (1) и 1 / false (0). Так как LOOKUP
делает нисходящий подход, чтобы найти 2
, и поскольку он никогда не найдет 2, он подходит к последней непустой строке и дает позицию этого.
Другой способ сделать это, как могли бы упомянуть другие:
=INDEX(G2:G,MAX((ISBLANK(G2:G)-1)*-ROW(G2:G))-1)
Нахождение MAX
imum ROW
непустого ряда и подача его в INDEX
В массиве прерываний с нулевым пробелом использование INDIRECT
RC
нотации с COUNTBLANK
является еще одним вариантом. Если V4: V6 занят записями, то
V18
=INDIRECT("R[-"&COUNTBLANK(V4:V17)+1&"]C",0)
даст позицию V6.