Как разнести данные из столбца по трем строкам
Faralde
Дата: Понедельник, 27.04.2015, 13:26 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
Здравствуйте, имеются данные выгруженные из 1с, я записал макрос который с помощью транспонирования разносит их в желаемый вид. Вопрос как исправить макрос так, что бы он работал на весь файл, около 5000 строк, или может быть подскажите другой способ как это осуществить?
Здравствуйте, имеются данные выгруженные из 1с, я записал макрос который с помощью транспонирования разносит их в желаемый вид. Вопрос как исправить макрос так, что бы он работал на весь файл, около 5000 строк, или может быть подскажите другой способ как это осуществить? Faralde
Ответить
Сообщение Здравствуйте, имеются данные выгруженные из 1с, я записал макрос который с помощью транспонирования разносит их в желаемый вид. Вопрос как исправить макрос так, что бы он работал на весь файл, около 5000 строк, или может быть подскажите другой способ как это осуществить? Автор - Faralde Дата добавления - 27.04.2015 в 13:26
_Boroda_
Дата: Понедельник, 27.04.2015, 13:54 |
Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16913
Репутация:
6617
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Такой вариант [vba]Код
Sub Ìàêðîñ5() Application.ScreenUpdating = 0 Columns("C:E").ClearContents r0_ = 2 r1_ = Range("A" & Rows.Count).End(xlUp).Row n_ = 2 For i = r0_ To r1_ Step 3 Range("C" & n_).Resize(, 3) = WorksheetFunction.Transpose(Range("A" & i).Resize(3).Value) n_ = n_ + 1 Next i Columns("C:E").EntireColumn.AutoFit Application.ScreenUpdating = 1 End Sub
[/vba]
Такой вариант [vba]Код
Sub Ìàêðîñ5() Application.ScreenUpdating = 0 Columns("C:E").ClearContents r0_ = 2 r1_ = Range("A" & Rows.Count).End(xlUp).Row n_ = 2 For i = r0_ To r1_ Step 3 Range("C" & n_).Resize(, 3) = WorksheetFunction.Transpose(Range("A" & i).Resize(3).Value) n_ = n_ + 1 Next i Columns("C:E").EntireColumn.AutoFit Application.ScreenUpdating = 1 End Sub
[/vba] _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Такой вариант [vba]Код
Sub Ìàêðîñ5() Application.ScreenUpdating = 0 Columns("C:E").ClearContents r0_ = 2 r1_ = Range("A" & Rows.Count).End(xlUp).Row n_ = 2 For i = r0_ To r1_ Step 3 Range("C" & n_).Resize(, 3) = WorksheetFunction.Transpose(Range("A" & i).Resize(3).Value) n_ = n_ + 1 Next i Columns("C:E").EntireColumn.AutoFit Application.ScreenUpdating = 1 End Sub
[/vba] Автор - _Boroda_ Дата добавления - 27.04.2015 в 13:54
DJ_Marker_MC
Дата: Понедельник, 27.04.2015, 14:00 |
Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 991
Репутация:
213
±
Замечаний:
0% ±
Excel 2019
Еще вариант [vba]Код
Sub iTranspose_Marker() Dim X() As Variant Dim XT() As Variant Application.ScreenUpdating = False Columns("C:E").ClearContents iRow = Range("A1").SpecialCells(xlLastCell).Row iRowNew = 2 For i = 2 To iRow - 2 X = ActiveSheet.Range("A" & i & ":A" & i + 2).Value Range("B" & iRowNew & ":D" & iRowNew) = Application.Transpose(X) i = i + 2 iRowNew = iRowNew + 1 Next i Application.ScreenUpdating = True End Sub
[/vba]
Еще вариант [vba]Код
Sub iTranspose_Marker() Dim X() As Variant Dim XT() As Variant Application.ScreenUpdating = False Columns("C:E").ClearContents iRow = Range("A1").SpecialCells(xlLastCell).Row iRowNew = 2 For i = 2 To iRow - 2 X = ActiveSheet.Range("A" & i & ":A" & i + 2).Value Range("B" & iRowNew & ":D" & iRowNew) = Application.Transpose(X) i = i + 2 iRowNew = iRowNew + 1 Next i Application.ScreenUpdating = True End Sub
[/vba] DJ_Marker_MC
Ответить
Сообщение Еще вариант [vba]Код
Sub iTranspose_Marker() Dim X() As Variant Dim XT() As Variant Application.ScreenUpdating = False Columns("C:E").ClearContents iRow = Range("A1").SpecialCells(xlLastCell).Row iRowNew = 2 For i = 2 To iRow - 2 X = ActiveSheet.Range("A" & i & ":A" & i + 2).Value Range("B" & iRowNew & ":D" & iRowNew) = Application.Transpose(X) i = i + 2 iRowNew = iRowNew + 1 Next i Application.ScreenUpdating = True End Sub
[/vba] Автор - DJ_Marker_MC Дата добавления - 27.04.2015 в 14:00
Faralde
Дата: Понедельник, 27.04.2015, 14:06 |
Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
Большое спасибо, именно то что нужно.
Большое спасибо, именно то что нужно. Faralde
Ответить
Сообщение Большое спасибо, именно то что нужно. Автор - Faralde Дата добавления - 27.04.2015 в 14:06
Samaretz
Дата: Понедельник, 27.04.2015, 14:08 |
Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 223
Репутация:
63
±
Замечаний:
0% ±
Excel 2010; 2013; 2016
Вариант формулами без макросов: Первый столбец (дата): Код
=INDIRECT("A"&2+3*(ROW()-2);TRUE)
Второй столбец (вид обращения): Код
=INDIRECT("A"&3+3*(ROW()-2);TRUE)
Третий столбец (код): Код
=INDIRECT("A"&4+3*(ROW()-2);TRUE)
Формулы можно протягивать вниз на сколь угодно большое количество строк.
Вариант формулами без макросов: Первый столбец (дата): Код
=INDIRECT("A"&2+3*(ROW()-2);TRUE)
Второй столбец (вид обращения): Код
=INDIRECT("A"&3+3*(ROW()-2);TRUE)
Третий столбец (код): Код
=INDIRECT("A"&4+3*(ROW()-2);TRUE)
Формулы можно протягивать вниз на сколь угодно большое количество строк. Samaretz
Ответить
Сообщение Вариант формулами без макросов: Первый столбец (дата): Код
=INDIRECT("A"&2+3*(ROW()-2);TRUE)
Второй столбец (вид обращения): Код
=INDIRECT("A"&3+3*(ROW()-2);TRUE)
Третий столбец (код): Код
=INDIRECT("A"&4+3*(ROW()-2);TRUE)
Формулы можно протягивать вниз на сколь угодно большое количество строк. Автор - Samaretz Дата добавления - 27.04.2015 в 14:08
Faralde
Дата: Понедельник, 27.04.2015, 14:15 |
Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
Всем спасибо еще раз, проблему решил лекарством от _Boroda_
Всем спасибо еще раз, проблему решил лекарством от _Boroda_ Faralde
Ответить
Сообщение Всем спасибо еще раз, проблему решил лекарством от _Boroda_ Автор - Faralde Дата добавления - 27.04.2015 в 14:15
Faralde
Дата: Понедельник, 28.12.2015, 14:01 |
Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
Здравствуйте, вопрос похожий не могу сообразить как "закольцевать" разнос данных из столбца 1 в столбцы 1, 2, 3 ? [moder]Это уже другая задача, создайте новую тему[/moder]
Здравствуйте, вопрос похожий не могу сообразить как "закольцевать" разнос данных из столбца 1 в столбцы 1, 2, 3 ? [moder]Это уже другая задача, создайте новую тему[/moder] Faralde
Сообщение отредактировал Manyasha - Понедельник, 28.12.2015, 14:09
Ответить
Сообщение Здравствуйте, вопрос похожий не могу сообразить как "закольцевать" разнос данных из столбца 1 в столбцы 1, 2, 3 ? [moder]Это уже другая задача, создайте новую тему[/moder] Автор - Faralde Дата добавления - 28.12.2015 в 14:01