如何將資料拆分為僅在Excel中的第一個冒號之後分隔的多列

如何將資料拆分為僅在Excel中的第一個冒號之後分隔的多列

我有一個巨大的 Excel 清單(20k+ 行),並且想要將該一列清單拆分為多列。以前我使用過“資料|文字到列嚮導”,但它似乎有一個限制:我無法指定在多少次“拆分”之後停止拆分。範例資料:

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

我能想到的最簡單的方法是從您已經做過的事情開始: Data|Text-to-Columns Wizard 。

然後,您重新連接無意中分割的欄位。

相關內容