
Общая формула
=IF(ISBLANK(A1),"",COUNTA($A$1:A1))
Резюме
Чтобы добавить последовательные номера строк в список данных, пропуская пустые ячейки, можно использовать формулу, основанную на COUNTA, ISBLANK и IF. В показанном примере формула B5 имеет следующий вид:
=IF(ISBLANK(C5),"",COUNTA($C$5:C5))
Поскольку формула копируется в столбец, строки, в которых есть значение, нумеруются, а пустые строки пропускаются.
Объяснение
В показанном примере цель состоит в том, чтобы добавить номера строк в столбец B, только если в столбце C есть значение. Формула в B5:
=IF(ISBLANK(C5),"",COUNTA($C$5:C5))
Функция ЕСЛИ сначала проверяет, имеет ли ячейка C5 значение с функцией ISBLANK:
ISBLANK(C5) // TRUE if empty, FALSE if not
Если C5 пуст, ISBLANK возвращает TRUE, а функция IF возвращает пустую строку ("") в качестве результата. Если C5 не пусто, ISBLANK возвращает FALSE, а функция IF возвращает функцию COUNTA с расширяющейся ссылкой, например:
COUNTA($C$5:C5) // expanding range
По мере копирования формулы диапазон расширяется, и COUNTA возвращает «текущее» количество всех непустых ячеек в диапазоне, как определено в каждой строке. COUNTA будет считать как числа, так и текст.
Альтернативы
Обе формулы ниже выполняют одну и ту же задачу, но с разным синтаксисом:
=IF(C5="","",COUNTA($C$5:C5))
Та же логика, что и выше, но с использованием = "" вместо ISBLANK.
=IF(C5"",COUNTA($C$5:C5),"")
Логика перевернулась. Если C5 не пусто, верните счетчик, иначе верните пустую строку. В этой версии используется оператор не равно ().