Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как разнести данные из столбца по трем строкам - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Как разнести данные из столбца по трем строкам
Faralde Дата: Понедельник, 27.04.2015, 13:26 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте, имеются данные выгруженные из 1с, я записал макрос который с помощью транспонирования разносит их в желаемый вид.
Вопрос как исправить макрос так, что бы он работал на весь файл, около 5000 строк, или может быть подскажите другой способ как это осуществить?
К сообщению приложен файл: 27042015.xlsm (16.0 Kb)
 
Ответить
СообщениеЗдравствуйте, имеются данные выгруженные из 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]
К сообщению приложен файл: 27042015_1.xlsm (17.7 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
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]
К сообщению приложен файл: marker.xlsm (20.0 Kb)
 
Ответить
СообщениеЕще вариант
[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
Дата добавления - 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)


Формулы можно протягивать вниз на сколь угодно большое количество строк.
К сообщению приложен файл: 27042015.xlsx (12.2 Kb)
 
Ответить
СообщениеВариант формулами без макросов:
Первый столбец (дата):
Код
=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
Дата добавления - 27.04.2015 в 14:15
Faralde Дата: Понедельник, 28.12.2015, 14:01 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте, вопрос похожий не могу сообразить как "закольцевать" разнос данных из столбца 1 в столбцы 1, 2, 3 ?
[moder]Это уже другая задача, создайте новую тему[/moder]
К сообщению приложен файл: 8142417.xlsm (12.1 Kb)


Сообщение отредактировал Manyasha - Понедельник, 28.12.2015, 14:09
 
Ответить
СообщениеЗдравствуйте, вопрос похожий не могу сообразить как "закольцевать" разнос данных из столбца 1 в столбцы 1, 2, 3 ?
[moder]Это уже другая задача, создайте новую тему[/moder]

Автор - Faralde
Дата добавления - 28.12.2015 в 14:01
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!