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

Вход

Регистрация

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

 

= Мир MS Excel/Транспонировать со сцепкой - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Транспонировать со сцепкой
ilyamihilev Дата: Среда, 30.10.2024, 11:52 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Office proffesional plus 2010
Приветствую!
Вот какая суть проблемы , необходимо сцепить горизонтальные ячейки с первым столбцом каждой ячейки в горизонтальной строке, и перенести это все друг под друга.
Во вложение пример. Есть строка 11, необходимо что бы бренд из первого столбца встал перед кодами на его строке ,и в дальнейшем переместился друг под друга что бы в столбик стал в одной ячейке бренд ,а рядом код.(пример есть в файле на листе 2)
К сообщению приложен файл: vopros.xlsx (10.2 Kb)
 
Ответить
СообщениеПриветствую!
Вот какая суть проблемы , необходимо сцепить горизонтальные ячейки с первым столбцом каждой ячейки в горизонтальной строке, и перенести это все друг под друга.
Во вложение пример. Есть строка 11, необходимо что бы бренд из первого столбца встал перед кодами на его строке ,и в дальнейшем переместился друг под друга что бы в столбик стал в одной ячейке бренд ,а рядом код.(пример есть в файле на листе 2)

Автор - ilyamihilev
Дата добавления - 30.10.2024 в 11:52
Hugo Дата: Среда, 30.10.2024, 12:23 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3649
Репутация: 785 ±
Замечаний: 0% ±

365
ilyamihilev, думаю формулами на практике не наработаете, а вот макросом можно пробовать (первая версия была не то, выгрузка не так сделалась... )) )
[vba]
Код

Option Explicit

Sub Perebor() 'коллекция в словаре
    Dim a, i&, ii&, t$, tt$, Dic As Object
    Dim el, col, mx&
    
    a = [a1].CurrentRegion.Value
    Set Dic = CreateObject("Scripting.Dictionary")
    With Dic
        .CompareMode = 1
        For i = 1 To UBound(a)
            t = a(i, 1)
            If Not .exists(t) Then .Add t, New Collection
            For ii = 2 To UBound(a, 2)
            tt = Trim(a(i, ii))
            If Len(tt) Then .Item(t).Add "'" & tt: mx = mx + 1
            Next
        Next
    End With
    
ReDim b(1 To mx, 1 To 2): i = 0
    For Each el In Dic.keys
        For Each col In Dic.Item(el)
        i = i + 1
        b(i, 1) = el
        b(i, 2) = col
        Next
    Next

    With Workbooks.Add.Sheets(1)
        .Cells(1, 1).Resize(UBound(b), UBound(b, 2)) = b
        .Cells.EntireColumn.AutoFit
    End With
End Sub
[/vba]
Выполнить на активном листе с исходными данными в показанном виде.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD


Сообщение отредактировал Hugo - Среда, 30.10.2024, 12:31
 
Ответить
Сообщениеilyamihilev, думаю формулами на практике не наработаете, а вот макросом можно пробовать (первая версия была не то, выгрузка не так сделалась... )) )
[vba]
Код

Option Explicit

Sub Perebor() 'коллекция в словаре
    Dim a, i&, ii&, t$, tt$, Dic As Object
    Dim el, col, mx&
    
    a = [a1].CurrentRegion.Value
    Set Dic = CreateObject("Scripting.Dictionary")
    With Dic
        .CompareMode = 1
        For i = 1 To UBound(a)
            t = a(i, 1)
            If Not .exists(t) Then .Add t, New Collection
            For ii = 2 To UBound(a, 2)
            tt = Trim(a(i, ii))
            If Len(tt) Then .Item(t).Add "'" & tt: mx = mx + 1
            Next
        Next
    End With
    
ReDim b(1 To mx, 1 To 2): i = 0
    For Each el In Dic.keys
        For Each col In Dic.Item(el)
        i = i + 1
        b(i, 1) = el
        b(i, 2) = col
        Next
    Next

    With Workbooks.Add.Sheets(1)
        .Cells(1, 1).Resize(UBound(b), UBound(b, 2)) = b
        .Cells.EntireColumn.AutoFit
    End With
End Sub
[/vba]
Выполнить на активном листе с исходными данными в показанном виде.

Автор - Hugo
Дата добавления - 30.10.2024 в 12:23
Nic70y Дата: Среда, 30.10.2024, 12:31 | Сообщение № 3
Группа: Друзья
Ранг: Экселист
Сообщений: 8984
Репутация: 2359 ±
Замечаний: 0% ±

Excel 2010
формулами, поприколу
К сообщению приложен файл: 19.xlsx (20.5 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщениеформулами, поприколу

Автор - Nic70y
Дата добавления - 30.10.2024 в 12:31
ilyamihilev Дата: Среда, 30.10.2024, 12:35 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Office proffesional plus 2010
Hugo, не помогло :(, макрос создает новую книгу и просто переносит туда данные в том же порядке что и у исходника.
 
Ответить
СообщениеHugo, не помогло :(, макрос создает новую книгу и просто переносит туда данные в том же порядке что и у исходника.

Автор - ilyamihilev
Дата добавления - 30.10.2024 в 12:35
Hugo Дата: Среда, 30.10.2024, 12:38 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3649
Репутация: 785 ±
Замечаний: 0% ±

365
ilyamihilev, это было в первой версии ))
Кстати можете код где-то сохранить, вдруг понадобится так преобразовать что-то...
Он в основном отличается только выгрузкой, верхняя часть совсем чуть изменена. Но его больше нигде нет ))


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD


Сообщение отредактировал Hugo - Среда, 30.10.2024, 12:44
 
Ответить
Сообщениеilyamihilev, это было в первой версии ))
Кстати можете код где-то сохранить, вдруг понадобится так преобразовать что-то...
Он в основном отличается только выгрузкой, верхняя часть совсем чуть изменена. Но его больше нигде нет ))

Автор - Hugo
Дата добавления - 30.10.2024 в 12:38
Светлый Дата: Среда, 30.10.2024, 13:33 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1846
Репутация: 522 ±
Замечаний: 0% ±

Excel 2013, 2016
Тоже формулами.
*Что-то меня заклинило после отпуска. Решал противоположную задачу.
К сообщению приложен файл: vopros_1.xlsx (11.8 Kb)


Программировать проще, чем писать стихи.

Сообщение отредактировал Светлый - Среда, 30.10.2024, 13:48
 
Ответить
СообщениеТоже формулами.
*Что-то меня заклинило после отпуска. Решал противоположную задачу.

Автор - Светлый
Дата добавления - 30.10.2024 в 13:33
ilyamihilev Дата: Среда, 30.10.2024, 13:43 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Office proffesional plus 2010
Nic70y, вроде ближе к необходимому, не пойму как только расширить диапазон что бы в одной строке брать больше столбцов?=)
 
Ответить
СообщениеNic70y, вроде ближе к необходимому, не пойму как только расширить диапазон что бы в одной строке брать больше столбцов?=)

Автор - ilyamihilev
Дата добавления - 30.10.2024 в 13:43
ilyamihilev Дата: Среда, 30.10.2024, 13:45 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Office proffesional plus 2010
Hugo, ура пашет!=)
 
Ответить
СообщениеHugo, ура пашет!=)

Автор - ilyamihilev
Дата добавления - 30.10.2024 в 13:45
Светлый Дата: Среда, 30.10.2024, 15:33 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1846
Репутация: 522 ±
Замечаний: 0% ±

Excel 2013, 2016
Переделал
К сообщению приложен файл: vopros_2.xlsx (14.1 Kb)


Программировать проще, чем писать стихи.
 
Ответить
СообщениеПеределал

Автор - Светлый
Дата добавления - 30.10.2024 в 15:33
Hugo Дата: Среда, 30.10.2024, 15:41 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3649
Репутация: 785 ±
Замечаний: 0% ±

365
Цитата Светлый, 30.10.2024 в 13:33, в сообщении № 6 ()
Решал противоположную задачу

Я вот тоже в начале - собрал всё это в словарь с коллекцией, затем разложил всё назад в новой книге ))
Кстати тем кодом можно было бы провернуть всё назад. Ну если вдруг нужно. Или собрать из такого же негруппированого в сгрупированное. И можно было в процессе ещё и отсортировать.
Только вот тот код остался только у ТС, если остался...


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
Сообщение
Цитата Светлый, 30.10.2024 в 13:33, в сообщении № 6 ()
Решал противоположную задачу

Я вот тоже в начале - собрал всё это в словарь с коллекцией, затем разложил всё назад в новой книге ))
Кстати тем кодом можно было бы провернуть всё назад. Ну если вдруг нужно. Или собрать из такого же негруппированого в сгрупированное. И можно было в процессе ещё и отсортировать.
Только вот тот код остался только у ТС, если остался...

Автор - Hugo
Дата добавления - 30.10.2024 в 15:41
Nic70y Дата: Среда, 30.10.2024, 16:16 | Сообщение № 11
Группа: Друзья
Ранг: Экселист
Сообщений: 8984
Репутация: 2359 ±
Замечаний: 0% ±

Excel 2010
не пойму как только расширить диапазон что бы в одной строке брать больше столбцов?
не надо ни чего расширять,
тянуть формулы вниз,
но уже есть макрос.


ЮMoney 41001841029809
 
Ответить
Сообщение
не пойму как только расширить диапазон что бы в одной строке брать больше столбцов?
не надо ни чего расширять,
тянуть формулы вниз,
но уже есть макрос.

Автор - Nic70y
Дата добавления - 30.10.2024 в 16:16
  • Страница 1 из 1
  • 1
Поиск:

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