Сквозная нумерация в смете в Google Таблицах. Функция СЧЁТЗ(COUNTA)

Рассмотрим такую несложную, но все же не самую тривиальную задачу: сделать сквозную нумерацию пунктов (операций) в смете.

Так, чтобы нумерация каждого раздела, каждой группы работ не начиналась с единицы, а продолжалась по всей смете. И при этом чтобы это происходило автоматически при любом количестве операций и разделов:

Ход мыслей следующий. Каждая операция характеризуется какими-то параметрами: единицей измерения, объемом работ, ценой или чем-то еще. А заголовки разделов не имеют никаких параметров. Этим и воспользуемся: наша задача в каждой строке, в которой нет параметров, ничего не указывать в столбец с номером, а в тех строках, где есть данные (то есть имеется операция, а не заголовок или пустота) - вводить порядковый номер. И этот номер - это количество операций от начала таблицы до текущей строки.

Количество непустых ячеек в диапазоне от первой строки сметы до текущей будем определять с помощью функции COUNTA/СЧЁТЗ. Она возвращает количество непустых ячеек в диапазоне. Главное - правильно указать диапазон, закрепив первую ячейку и не закрепляя последнюю. Таким образом, в каждой строке в формуле будет использоваться диапазон от начала сметы до текущей строки.

И не забудем про ячейки, в которых не нужно указывать номер - там, где нет данных в одном из столбцов (давайте работать со столбцом C, хотя подошел бы и любой из трех следующих).

Итого получается:

=ЕСЛИ(C3= ""; ""; СЧЁТЗ(C$3:C3))

=IF(C3= ""; ""; COUNTA(C$3:C3))

В десятой строке формула будет выглядеть так:

=ЕСЛИ(C10= ""; ""; СЧЁТЗ(C$3:C10))

Такую формулу можно смело протягивать до конца таблицы и с запасом. Она будет выдавать либо корректный номер операции, либо ничего (пустую текстовую строку).

Давайте на десерт еще немного автоматизируем смету. Сделаем условное форматирование, чтобы строки с заголовками разделов заливались серым цветом автоматически. Такие строки характеризуются тем, что в них есть данные в столбце B, но нет в столбце C. Воспользуемся этим и создадим правило условного форматирования с такой формулой:

=И($B2<> "";$C2= "")

=AND($B2<> "";$C2= "")

То есть нужно выполнение двух условий: пустота в столбце C и наличие чего-то в столбце B, чтобы залить строку.

И вот так все будет выглядеть и форматироваться автоматически:

 

Ссылка на файл с примером.

Рубрики:
Комментарии
2 Цепочка комментария
2 Ответы по цепочке
0 Последователи
 
Популярнейший комментарий
Цепочка актуального комментария
3 Авторы комментариев
Рома

как сделать cквозную нумерацию через несколько вкладок???

Станислав

Бомба! Как просто. А я привык к ROW() и ни влево, ни вправо. А тут такое простое и изящное решение.

Темы, на которые я пишу: