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


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

0
-
-
0
-
-
-
-
0
-
-
-
0

Я хотел быть таким:

0
1
2
0
1
2
3
4
0
1
2
3
0

Есть тысячи ячеек в диапазоне, и это невозможно сделать вручную.


2
2018-05-23 03:58


происхождения


Дефиши в представлении перед представлением указывают дефисы или указывают пустые ячейки? - Jason Aller


ответы:


Если ячейки между нулями пусты, вы можете сделать это:

Выберите все ячейки в своей таблице, затем нажмите F5, нажмите «Special», отметьте «Blanks» и нажмите «ОК». Теперь все пустые ячейки выбраны.

Без изменения выбора, начните вводить текст

=if(

нажмите стрелку вверх, затем введите

=0,1,

нажмите стрелку вверх, затем введите

+1)

Он будет выглядеть примерно так:

enter image description here

Удерживая клавишу Ctrl, нажмите Enter. Теперь все предыдущие пустые ячейки будут иметь формулу

=if(A1=0,1,A1+1)

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

enter image description here

Формула в записи Джейсона Аллера не работает для меня вообще. Для полноты здесь эта формула на скриншоте.

enter image description here


2
2018-05-23 04:12



Мне нравится характер этого решения по сравнению с добавлением временного столбца вправо. Я привык использовать столбец справа, когда я собираюсь закончить с помощью вставки как значения для перезаписывания исходных данных, но в тех случаях, когда вы добавляете данные в промежутки между существующими данными, это очень полезный метод знать. - Jason Aller
(1) Почему вы предлагаете многоколоночный ответ на вопрос с одним столбцом? (Я обнаружил, что это сбивает с толку при первом чтении.) (2) Как только пустые ячейки (только пустые ячейки) были выбраны, =A1+1 достаточно. - G-Man
(1) Я показываю, что подход работает для диапазонов с несколькими столбцами. Разумеется, он также работает для диапазонов с одним столбцом. (2) Проверка на 0 гарантирует, что инкрементные числа добавляются только под ячейками с 0-значным значением, а не с текстом. - teylyn


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

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

До:

enter image description here

и после:

enter image description here


1
2018-05-23 10:53





Вставьте пустой столбец справа от этого столбца и добавьте формулу, которая будет смотреть на ячейку слева, и если эта ячейка равна нулю, она поместит нуль, а если нет, она добавит ее к значению в ячейке выше , Затем скопируйте столбец и вставьте его как значения по столбцу источника и удалите добавленный столбец.

Например, если столбец A находится в ячейке B2:

=if(A2=0,0,B1+1)

и если ячейки между нулями пусты и в них нет дефисов, формула может быть изменена на:

=if(AND(A2=0, NOT(ISBLANK(A2))), 0, B1+1)

1
2018-05-23 04:11



Ditto.⁠⁠⁠⁠⁠⁠⁠⁠⁠ - Scott
Вы проверили это? Где растущие цифры? Все результаты равны нулю. - teylyn
Я не тестировал первую формулу, но я тестировал ее до моего редактирования с наличием непустых ячеек между нулями, а затем добавил версию, чтобы различать ячейки без значения и ячейки с нулями. - Jason Aller