Разбиение данных на столбцы

Разбиение данных на столбцы

У меня есть электронная таблица, над которой я работаю. В этой таблице есть два столбца. Столбец A — это уникальный идентификатор, а столбец B — номера идентификаторов. Один идентификатор может иметь от 1 до 5 идентификаторов. Мне нужно переместить все идентификаторы в одну строку, сохранив идентификатор, который я прикрепил к изображению «до» и «после».

Я уверен, что существует какая-то формула, которая может это сделать, надеюсь, вы сможете помочь.

До

До

После

После

решение1

Поместите этот макрос в стандартный модуль и запустите его:

Sub Macro1()
    Dim i As Long, j As Long, k As Long, Na As Long
    Dim v As String, Nc As Long

    Columns("A:A").Copy Columns("C:C")
    ActiveSheet.Range("C:C").RemoveDuplicates Columns:=1, Header:=xlYes


    Na = Cells(Rows.Count, "A").End(xlUp).Row
    Nc = Cells(Rows.Count, "C").End(xlUp).Row

    For i = 2 To Nc
        k = 4
        v = Cells(i, "C").Value
        For j = 2 To Na
            If v = Cells(j, 1).Value Then
                Cells(i, k) = Cells(j, 2).Value
                k = k + 1
            End If
        Next j
    Next i
End Sub

Вот пример вывода:

введите описание изображения здесь

Как видите, мы предполагаем, что входные данные находятся в столбцах.АиБ. Выходные данные идут в столбцах рядом с ними. Коду все равно, отсортированы данные или нет.

решение2

Я делаю это время от времени, но без VBA и в несколько шагов:

1) Сначала отсортируйте данные по идентификатору, чтобы они были сгруппированы вместе.

2) тогда в C2: =if(A1=A2,if(A2=A3,B1&","&B2, "Last,"&B1&","&B2),B2)

3) прогоните это

4) скопируйте и вставьте столбец C в качестве значений (скажем, в столбец D), чтобы избавиться от формулы

5) сортировка по столбцу D, удаление всего, что не содержит «последний»

6) выберите столбец D, вкладка «Данные» > «Текст по столбцам» > «С разделителями» > выберите «Запятые» > «ОК»

Теперь все разбито на уникальные столбцы и находится на той же строке, что и ID. Вы можете удалить столбцы B и C, так как они больше не нужны

Связанный контент