У меня огромный список 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
Самый простой способ, который я могу придумать, — начать с того, что вы уже сделали: Мастер преобразования текста в столбцы.
Затем вы повторно объединяете поля, которые были разделены непреднамеренно.