Разделитель запятой для уникального значения через vba

#vba #excel

#vba #excel

Вопрос:

введите описание изображения здесь, как у вас все хорошо, я хочу получить необходимые данные с помощью программирования на vba. можете ли вы, ребята, мне помочь.

ниже приведены необработанные данные.

ИДЕНТИФИКАТОР ПОЛЬЗОВАТЕЛЯ QTY Loc 14405 18 Индия 34479 18 Великобритания 38155 14 Индия 35365 19 Великобритания 47669 17 Непал 51680 18 Джермани 16124 14 китай 51915 20 Индия 14405 11 ВЕЛИКОБРИТАНИЯ 34479 14 Индия 38155 14 Великобритания 35365 14 Непал 47669 12 Джермани 51680 13 Китай 16124 16 Индия 51915 10 Великобритания 14405 16 Индия 34479 17 Великобритания 38155 20 Непал

Ниже приведен требуемый формат

ИДЕНТИФИКАТОР ПОЛЬЗОВАТЕЛЯ Loc КОЛ-ВО 14405 Индия, Великобритания 45 16124 Китай, Индия 30 34479 Индия, Великобритания 49 35365 Непал, Великобритания 33 38155 Индия, Непал, Великобритания 48 47669 Джермани, Непал 29 51680 Китай, Джермани 31 51915 Индия, Великобритания 30

Комментарии:

1. Откуда берется 45 16124? Этого нет в исходном примере??

Ответ №1:

Вот и все, что поможет вам начать работу со стандартными функциями Excel.

  1. Вставьте ваши данные в одну ячейку и разделите с помощью текста на столбцы на вкладке ДАННЫЕ:

Первый

  1. Разделите данные как разделенные пробелом:

Второй

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

Третий

  1. Приведите в порядок, удалите верхнюю строку. Затем используйте эту формулу =IF(MOD(ROW();3)=1;OFFSET($A1;COLUMN()-3;0);"del") , например, в C1 и расширьте ее до следующих двух столбцов, чтобы у вас было всего три.

Четвертое

  1. Перетащите вниз, чтобы соответствовать вашим данным:

Пятый

  1. Скопируйте все эти данные в другую область в виде значений (щелкните правой кнопкой мыши или вставьте специальный):

Шестое

  1. Переместите столбцы так, как вы хотите, и, когда закончите, нажмите ctrl f, введите del как искомую фразу, а в поле результатов в разделе «Найти» выберите один из результатов и нажмите ctrl a. При этом будут выделены все соответствующие ячейки, и вы можете щелкнуть правой кнопкой мыши, чтобы удалить их все за один раз.

Седьмой

  1. Выполнено

Выполнено

Ответ №2:

Я предположил, что ваша строка находится в ячейке A1.

 Sub Macro1()

    Range("A1").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=True, Other:=False

    Dim i As Long
    Dim j As Integer
    Dim k As Long
    i = 2
    For k = 1 To Range("A1").End(xlToRight).Column
        For j = 1 To 3
        Cells(i, j).Value = Cells(1, k).Value
        Next
        i = i   1
    Next

End Sub