Как заполнить целый столбец (несогласованный) на основе предыдущего значения в Excel?

Как заполнить целый столбец (несогласованный) на основе предыдущего значения в Excel?

Допустим, у меня есть следующие значения:

A2=a, A5=b, A6=c, A10=d

По сути, я хочу полностью свести предыдущие значения к следующему:

A2:A4=a,A5=b, A6:A9=c,A10:A99999=d

Я попробовал это: я вставил новый столбец справа и сделал что-то вроде этого: =IF(A2="",A1,A2)но это работает только для первых 2 экземпляров в столбце B, поскольку там больше пробелов и их не всегда одинаковое количество. Я, очевидно, что-то упускаю.

Спасибо.

решение1

Вам не нужен VBA для этого, вы почти сделали это с помощью своей собственной формулы. Вам просто нужно использовать B1 вместо A1. Таким образом, B2 будет содержать:

=IF(A2="",B1,A2)

Скриншот

решение2

Попробуйте этот короткий макрос:

Sub FillDown()
   Dim rng As Range, r As Range
   Set rng = Range("A2:A99999")

   Application.ScreenUpdating = False
      For Each r In rng
         v = r.Value
         If v = "" Then r.Value = r.Offset(-1, 0)
      Next r
   Application.ScreenUpdating = True
End Sub

Макросы очень просты в установке и использовании:

  1. ALT-F11 открывает окно VBE
  2. ALT-I ALT-M открывает новый модуль
  3. вставьте текст и закройте окно VBE

Если вы сохраните книгу, макрос будет сохранен вместе с ней. Если вы используете версию Excel позже 2003, вы должны сохранить файл как .xlsm, а не .xlsx

Чтобы удалить макрос:

  1. откройте окно VBE, как указано выше
  2. очистить код
  3. закрыть окно VBE

Чтобы использовать макрос из Excel:

  1. АЛЬТ-Ф8
  2. Выберите макрос
  3. Нажмите ПУСК

Чтобы узнать больше о макросах в целом, см.:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

и

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Для работы этого метода должны быть включены макросы!

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