Как автоматически заполнить увеличивающиеся значения между существующими заполненными ячейками

Как автоматически заполнить увеличивающиеся значения между существующими заполненными ячейками

ситуация такова:

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)

Связанный контент