как разделить данные на несколько столбцов, разделяя их только после первого двоеточия в Excel

как разделить данные на несколько столбцов, разделяя их только после первого двоеточия в Excel

У меня огромный список Excel (более 20 тыс. строк), и я хочу разделить этот список из одного столбца на несколько столбцов. Раньше я использовал Data|Text-to-Columns Wizard, но, похоже, у него есть ограничение: я не могу указать, после скольких «разделений» останавливаться для разделения. Пример данных:

type: abds : das
files: asdfs:jgkd

Цель:

|type|abds : das|
|files|asdfs:jgkd|

Спасибо за ваше время :)!

решение1

VBAотличный инструмент для небольших разовых задач, подобных этой.

Предполагая, что данные находятся в столбце Aи являются смежными с A1. Если это не так, просто отрегулируйте строку Set rng = ...в соответствии с вашими данными.

Sub SplitColumn()
    Dim rng As Range
    Dim dat As Variant
    Dim i As Long, j As Long

    Set rng = Range([a1], [a1].End(xlDown)).Resize(, 2)
    dat = rng
    For i = 1 To UBound(dat, 1)
        j = InStr(dat(i, 1), ":")
        If j > 0 Then
            dat(i, 2) = Mid$(dat(i, 1), j + 1)
            dat(i, 1) = Left$(dat(i, 1), j - 1)
        End If
    Next
    rng = dat
End Sub

решение2

Вы можете заменить первое двоеточие на «|» или какой-либо другой символ, который не будет отображаться в ваших данных, используя:

=SUBSTITUTE(A1,":","|",1)

Затем скопируйте и вставьте результаты как значения и выполните команду «Текст в столбцы» для этих значений.

решение3

Обычно вы пишете какой-нибудь vbscript для выполнения этой задачи, но если это лист с одним столбцом, вы можете сохранить его как Текст (с разделителями табуляции), а затем открыть его снова. Excel спросит вас, какой это тип текстового файла. Скажите ему, что это file with Separators, щелкните Nextи отметьте галочкой Otherи введите двоеточие в поле редактирования.

решение4

Самый простой способ, который я могу придумать, — начать с того, что вы уже сделали: Мастер преобразования текста в столбцы.

Затем вы повторно объединяете поля, которые были разделены непреднамеренно.

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