ситуация такова:
0
-
-
0
-
-
-
-
0
-
-
-
0
Я хотел быть таким:
0
1
2
0
1
2
3
4
0
1
2
3
0
В диапазоне находятся тысячи ячеек, и сделать это вручную невозможно.
решение1
Если ячейки между нулями пустые, можно сделать так:
Выберите все ячейки в вашей таблице, затем нажмите F5, нажмите «Специальные», отметьте «Пустые» и нажмите ОК. Теперь все пустые ячейки выбраны.
Не меняя выделение, начните вводить текст
=if(
нажмите стрелку вверх, затем введите
=0,1,
нажмите стрелку вверх, затем введите
+1)
Это будет выглядеть примерно так:
Удерживайте клавишу Ctrl и нажмите Enter. Теперь все ранее пустые ячейки будут иметь формулу типа
=if(A1=0,1,A1+1)
и ячейки между нулями будут пронумерованы. Обратите внимание, что это работает для нескольких столбцов одновременно.
Формула в посте Джейсона Аллера у меня вообще не работает. Для полноты картины вот эта формула на скриншоте.
решение2
Если в столбце есть только нули и пробелы, а первый элемент — ноль, выберите ячейки, которые вы хотите обработать, и запустите этот небольшой макрос:
Sub FillInTheBlanks()
Dim r As Range, K As Long, CH As String
K = 1
For Each r In Selection
CH = r.Text
If CH = "" Then
r.Value = K
K = K + 1
Else
K = 1
End If
Next r
End Sub
До:
и после:
решение3
Вставьте пустой столбец справа от этого столбца и добавьте формулу, которая будет смотреть на ячейку слева, и если эта ячейка является нулем, то она поместит ноль, а если нет, то она добавит единицу к значению в ячейке выше. Затем скопируйте столбец и вставьте как значения поверх исходного столбца и удалите добавленный столбец.
Например, если ваш столбец — столбец A, в ячейке B2 поместите:
=if(A2=0,0,B1+1)
а если ячейки между нулями пустые и не содержат дефиса, то формулу можно изменить следующим образом:
=if(AND(A2=0, NOT(ISBLANK(A2))), 0, B1+1)