Добрый день, коллеги по Excel. Впервые пишу вопрос на форуме по Excel, ибо раньше справлялся сам или находил информацию в сети. Но сейчас какой-то тупик.
Суть проблемы: Есть таблица, в которой есть элементы. Элемент описывается несколькими параметрами, каждый параметр - отдельная строка (количество строк для каждого элемента может быть разным). Для каждого элемента в таблице есть идентификатор (это может быть дата, или номер, или код). В моем случае это номер (1,2,3...). Надо или перед всеми строками элемента добавить пустую, или после. В принципе, это нужно для того, чтобы в эти строки добавить другие данные, то есть для каждого элемента добавить еще один важный параметр.
Создал наглядный пример, как выглядит таблица. В одном файле исходная таблица. Во втором файле то, что должно получиться, то есть таблица с пустыми строками (или сразу с данными, если кто-то знает вариант, как туда сразу данные вставлять) в нужных местах.
В примере 20 строк, но в моих рабочих таблицах количество строк может достигать нескольких тысяч.
Может есть у кого-нибудь идеи по этому вопросу?
Добрый день, коллеги по Excel. Впервые пишу вопрос на форуме по Excel, ибо раньше справлялся сам или находил информацию в сети. Но сейчас какой-то тупик.
Суть проблемы: Есть таблица, в которой есть элементы. Элемент описывается несколькими параметрами, каждый параметр - отдельная строка (количество строк для каждого элемента может быть разным). Для каждого элемента в таблице есть идентификатор (это может быть дата, или номер, или код). В моем случае это номер (1,2,3...). Надо или перед всеми строками элемента добавить пустую, или после. В принципе, это нужно для того, чтобы в эти строки добавить другие данные, то есть для каждого элемента добавить еще один важный параметр.
Создал наглядный пример, как выглядит таблица. В одном файле исходная таблица. Во втором файле то, что должно получиться, то есть таблица с пустыми строками (или сразу с данными, если кто-то знает вариант, как туда сразу данные вставлять) в нужных местах.
В примере 20 строк, но в моих рабочих таблицах количество строк может достигать нескольких тысяч.
Может есть у кого-нибудь идеи по этому вопросу?fonmazer
Sub D() Dim N&, I& I = 3 Do If Cells(I, 2) <> Cells(I - 1, 2) Then Cells(I, 2).EntireRow.Insert Shift:=xlDown I = I + 2 Else I = I + 1 End If Loop Until Cells(I, 2) = "" End Sub
[/vba]
Можно простым макросом: [vba]
Код
Sub D() Dim N&, I& I = 3 Do If Cells(I, 2) <> Cells(I - 1, 2) Then Cells(I, 2).EntireRow.Insert Shift:=xlDown I = I + 2 Else I = I + 1 End If Loop Until Cells(I, 2) = "" End Sub
Если вручную, то такой алгоритм: 1. В Е1 что-то пишете и ставите автофильтр 2. В Е2 пишете формулу
Код
=B2=B1
и протягиваете ее вниз до конца таблицы 3. Фильтруете столбец Е по ЛОЖЬ 4. Встаете в Е2, жмете Контрл + Шифт + Стрелка вниз (выделяется все вниз), жмете Альт + ; (на русской раскладке это Альт + Шифт + 4) или, если не работает, то F5 - выделить - Видимые ячейки (в офисах 2010 и выше п.4 точно можно не делать, а вот в 2007 я не помню точно) 5. Прав. Кн. Мыши - Вставить строку 6. Снимаете автофильтр, жмете Контрл + Енд, ставите в ячейку D27 любой символ (например, 1) 7. Фильтр по Е (или любому другому столбцу - выбираете "Пустые") 8. Встаете в D2, повторяете п.4 9. вводите нужный текст, жмете Контрл Ентер 10. Жмете Контрл Стрелка вниз (попадаете в D27), жмете Делит (удаляем то, что поставили в п.6) 11. Снимаете автофильтр, стираете столбец Е
Если вручную, то такой алгоритм: 1. В Е1 что-то пишете и ставите автофильтр 2. В Е2 пишете формулу
Код
=B2=B1
и протягиваете ее вниз до конца таблицы 3. Фильтруете столбец Е по ЛОЖЬ 4. Встаете в Е2, жмете Контрл + Шифт + Стрелка вниз (выделяется все вниз), жмете Альт + ; (на русской раскладке это Альт + Шифт + 4) или, если не работает, то F5 - выделить - Видимые ячейки (в офисах 2010 и выше п.4 точно можно не делать, а вот в 2007 я не помню точно) 5. Прав. Кн. Мыши - Вставить строку 6. Снимаете автофильтр, жмете Контрл + Енд, ставите в ячейку D27 любой символ (например, 1) 7. Фильтр по Е (или любому другому столбцу - выбираете "Пустые") 8. Встаете в D2, повторяете п.4 9. вводите нужный текст, жмете Контрл Ентер 10. Жмете Контрл Стрелка вниз (попадаете в D27), жмете Делит (удаляем то, что поставили в п.6) 11. Снимаете автофильтр, стираете столбец Е_Boroda_
По макросу вопрос. Он работает с любым количеством строк? Я, к сожалению, не понимаю код макроса и не умею их писать (разве что записывать действия, но как в этом случае работать со всеми непустыми строками, мне не очень понятно).
Заносить данные в пустые строки все равно приходится ручками, а добавление пустых строк автоматизировать макросом очень пригодится, думаю.
P.S.: Пока ждал ответ, нашел один быстрый вариант, похожий на предложенный _Boroda_. Только после разделения строк на ИСТИНА/ЛОЖЬ фильтровал по ЛОЖЬ, выделял строки (с параметром "только видимые") и нажимал "вставить строку". И тогда перед каждой из выделенных строк добавлялась еще одна строка. А потом так же с фильтрами заносил нужные данные. Не уточнил, что заносимые данные нужны во всех ячейках пустых строк.
SLAVICK, _Boroda_, Спасибо!
По макросу вопрос. Он работает с любым количеством строк? Я, к сожалению, не понимаю код макроса и не умею их писать (разве что записывать действия, но как в этом случае работать со всеми непустыми строками, мне не очень понятно).
Заносить данные в пустые строки все равно приходится ручками, а добавление пустых строк автоматизировать макросом очень пригодится, думаю.
P.S.: Пока ждал ответ, нашел один быстрый вариант, похожий на предложенный _Boroda_. Только после разделения строк на ИСТИНА/ЛОЖЬ фильтровал по ЛОЖЬ, выделял строки (с параметром "только видимые") и нажимал "вставить строку". И тогда перед каждой из выделенных строк добавлялась еще одна строка. А потом так же с фильтрами заносил нужные данные. Не уточнил, что заносимые данные нужны во всех ячейках пустых строк.fonmazer
Меня узнают прохожие. Они называют меня "человек".
Сообщение отредактировал fonmazer - Четверг, 25.02.2016, 11:29