Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Office Новый топик    Ответить
 Excel - Скопировать данные в следующую пустую ячейку из предыдущей  [new]
Архимедофф
Member

Откуда:
Сообщений: 439
Друзья, имеется выгрузка как представлена на скрине. Она довольно большая. Подскажите, как запилить макрос, который бы определил размер таблицы и заполнил данные, которых мне не хватает (выделил желтым). В данном случае, в третью строку колонок A-С нужно взять и перенести из первой ячейки, содержащие "100 Редисон Сочи", в пятую и шестую "101 Торговый Центр Сочи" и т.д.
Ручками переносить устанешь, да еще и накосячишь. Спасибо.

К сообщению приложен файл. Размер - 7Kb
20 мар 21, 22:10    [22297801]     Ответить | Цитировать Сообщить модератору
 Re: Excel - Скопировать данные в следующую пустую ячейку из предыдущей  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 22390
Формула, которая проверяет, если ячейка пустая - взять из предыдущей, зачем тут макрос?
20 мар 21, 22:14    [22297802]     Ответить | Цитировать Сообщить модератору
 Re: Excel - Скопировать данные в следующую пустую ячейку из предыдущей  [new]
ИВП
Member

Откуда:
Сообщений: 450
Shocker.Pro
Формула, которая проверяет, если ячейка пустая - взять из предыдущей, зачем тут макрос?

Если правильно понял ТСа, таблица получена в результате выгрузки откуда-то.
Значит заранее формулу вставить нельзя.
Все равно надо как-то проходить по всем пустым ячейкам макросом.
21 мар 21, 10:29    [22297849]     Ответить | Цитировать Сообщить модератору
 Re: Excel - Скопировать данные в следующую пустую ячейку из предыдущей  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 22390
ИВП
Значит заранее формулу вставить нельзя.
Можно вставить формулу в соседних столбцах или на соседнем листе, которая повторит всю таблицу с заполнением пустых строк. В этом проблемы нет.

Мыслите шире.

Сообщение было отредактировано: 21 мар 21, 10:24
21 мар 21, 10:31    [22297851]     Ответить | Цитировать Сообщить модератору
 Re: Excel - Скопировать данные в следующую пустую ячейку из предыдущей  [new]
Alibek B.
Member

Откуда:
Сообщений: 3936
Во все ячейки внести формулу "=R[-1]C".
При внесении значений в ячейку все последующие (до следующего значения) будут повторяться.
Можно использовать режим специальной вставки с пропуском пустых значений.
21 мар 21, 12:47    [22297861]     Ответить | Цитировать Сообщить модератору
 Re: Excel - Скопировать данные в следующую пустую ячейку из предыдущей  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 22390
Alibek B.
При внесении значений в ячейку все последующие (до следующего значения) будут повторяться.
это при ручном заполнении. А у ТС выгрузка
21 мар 21, 13:02    [22297866]     Ответить | Цитировать Сообщить модератору
 Re: Excel - Скопировать данные в следующую пустую ячейку из предыдущей  [new]
Alibek B.
Member

Откуда:
Сообщений: 3936
А что мешает выгрузку скопировать, а затем в режиме специальной вставки объединить с формулами?
21 мар 21, 13:05    [22297867]     Ответить | Цитировать Сообщить модератору
 Re: Excel - Скопировать данные в следующую пустую ячейку из предыдущей  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 22390
Alibek B.
А что мешает выгрузку скопировать, а затем в режиме специальной вставки объединить с формулами?
Будем знать про такой способ ))
21 мар 21, 13:43    [22297870]     Ответить | Цитировать Сообщить модератору
 Re: Excel - Скопировать данные в следующую пустую ячейку из предыдущей  [new]
Сергей Лалов
Member

Откуда: localhost SPB
Сообщений: 2090
Архимедофф
Друзья, имеется выгрузка как представлена на скрине. Она довольно большая. Подскажите, как запилить макрос, который бы определил размер таблицы и заполнил данные, которых мне не хватает (выделил желтым). В данном случае, в третью строку колонок A-С нужно взять и перенести из первой ячейки, содержащие "100 Редисон Сочи", в пятую и шестую "101 Торговый Центр Сочи" и т.д.
Ручками переносить устанешь, да еще и накосячишь. Спасибо.


Вот тебе соорудил макрос на нажатие кнопки, он очень простой:
Private Sub CommandButton1_Click()
totalRows = ActiveSheet.UsedRange.Rows.Count
For i = 2 To totalRows 'начинаем со второй строки, исключаем заголовок
If i = totalRows Then
Exit Sub
Else
If Cells(i + 1, 1) = "" Then
Cells(i + 1, 1) = Cells(i, 1) 'номер
Cells(i + 1, 2) = Cells(i, 2) 'имя
Cells(i + 1, 3) = Cells(i, 3) 'адрес
End If
End If
Next
End Sub


Также приложил рабочее решение в экселе

К сообщению приложен файл (TestFilling.zip - 16Kb) cкачать
21 мар 21, 15:48    [22297886]     Ответить | Цитировать Сообщить модератору
 Re: Excel - Скопировать данные в следующую пустую ячейку из предыдущей  [new]
The_Prist
Member

Откуда: www.excel-vba.ru
Сообщений: 1990
Архимедофф,

Выделяете всю таблицу, начиная с ячейки А3(первой пустой). Жмете F5 -Выделить -Пустые ячейки -Ок. Не снимая выделения с ячеек переходите в строку формул и записываете там: =A2 и завершаете ввод сочетанием клавиш Ctrl+Enter. все, пустые ячейки заполнены значениями вышестоящих ячеек.
22 мар 21, 10:53    [22298088]     Ответить | Цитировать Сообщить модератору
 Re: Excel - Скопировать данные в следующую пустую ячейку из предыдущей  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 22390
The_Prist
Жмете F5 -Выделить -Пустые ячейки -Ок
Я сталкивался раньше с тем, что было ограниченное количество областей, которые можно выделить одновременно. Сейчас нет такого? ТС говори, что у него большой объем данных
22 мар 21, 11:02    [22298095]     Ответить | Цитировать Сообщить модератору
 Re: Excel - Скопировать данные в следующую пустую ячейку из предыдущей  [new]
ИВП
Member

Откуда:
Сообщений: 450
Сергей Лалов
Вот тебе соорудил макрос на нажатие кнопки, он очень простой:
Private Sub CommandButton1_Click()
totalRows = ActiveSheet.UsedRange.Rows.Count
For i = 2 To totalRows 'начинаем со второй строки, исключаем заголовок
' так лучше If i = totalRows Then
' так лучше Exit Sub
' так лучше Else
  If i <= totalRows Then 'так лучше
     If Cells(i + 1, 1) = "" Then
       Cells(i + 1, 1) = Cells(i, 1) 'номер
       Cells(i + 1, 2) = Cells(i, 2) 'имя
       Cells(i + 1, 3) = Cells(i, 3) 'адрес
     End If
  End If
Next
End Sub


Также приложил рабочее решение в экселе
22 мар 21, 12:55    [22298182]     Ответить | Цитировать Сообщить модератору
 Re: Excel - Скопировать данные в следующую пустую ячейку из предыдущей  [new]
Сергей Лалов
Member

Откуда: localhost SPB
Сообщений: 2090
ИВП,

Не, ваша корректировка не покатит, она будет добавлять результат в строку после последней.
Я тоже сначала так сделал, потом пришлось добавить дополнительный уровень проверки чуть выше.
Поизящней не получилось налепить, но работает самое главное.
23 мар 21, 15:38    [22298877]     Ответить | Цитировать Сообщить модератору
 Re: Excel - Скопировать данные в следующую пустую ячейку из предыдущей  [new]
ИВП
Member

Откуда:
Сообщений: 450
Сергей Лалов
ИВП,

Не, ваша корректировка не покатит, она будет добавлять результат в строку после последней.
Я тоже сначала так сделал, потом пришлось добавить дополнительный уровень проверки чуть выше.
Поизящней не получилось налепить, но работает самое главное.


Что работает - даже не сомневаюсь)))
А так:
If i < totalRows Then 
23 мар 21, 22:11    [22299129]     Ответить | Цитировать Сообщить модератору
 Re: Excel - Скопировать данные в следующую пустую ячейку из предыдущей  [new]
Сергей Лалов
Member

Откуда: localhost SPB
Сообщений: 2090
ИВП

А так:
If i < totalRows Then 


По идее должно. Можно выпускать в продакшн))
24 мар 21, 14:12    [22299429]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Office Ответить