KutoolsforOffice — 一套方案,五大工具。事半功倍。三月特賣:20% 折扣

依分隔符號將文字字串拆分為多列-3 快速技巧

作者Xiaoyang修改日期

通常,您可以使用「文字分列」功能,以特定分隔符號(例如逗號、句點、分號、斜線等)將儲存格內容拆分為多個欄位。但有時您可能需要將含有分隔符號的儲存格內容拆分為多列,同時重複其他欄位的資料,如下圖所示。在 Excel 中處理這類任務,是否有更高效的方法?本教學將為您介紹幾種實用又有效的方式,輕鬆完成這項工作。

將文字分割成多列

影片:依分隔符號將文字字串拆分為多列

 


方法 A:使用 VBA 程式碼將分隔文字拆分為多列

本節將介紹兩段 VBA 程式碼,協助您輕鬆拆分以特定分隔符號分隔的儲存格內容。

拆分以逗號、空格、分號等分隔的文字

若要拆分以常見分隔符號(例如逗號、空格、分號、斜線等)分隔的文字字串,下列程式碼可助您輕鬆達成目標。請依以下步驟操作:

注意:此程式碼不支援復原功能,建議您執行前務必先備份資料。

步驟 1:開啟 VBA 模組編輯器並複製程式碼

1. 先啟用您要使用的試算表,再按下「Alt」+「F11」鍵,即可開啟「Microsoft Visual Basic for Applications」視窗。

2. 在開啟的視窗中,點擊「插入」>「模組」,即可建立一個全新的空白模組。

3. 接著,將下方程式碼複製並貼上到空白模組中。

VBA 程式碼:依指定分隔符號(逗號、句點、空格等)拆分文字

Sub SplitTextIntoRows()
'UpdatebyExtendoffice
    Dim xSRg, xIptRg, xCrRg, xRg As Range
    Dim xSplitChar As String
    Dim xArr As Variant
    Dim xFNum, xFFNum, xRow, xColumn, xNum As Integer
    Dim xWSh As Worksheet
    Set xSRg = Application.InputBox("Select a range:", "Kutools for Excel", , , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    xSplitChar = Application.InputBox("Type delimiter:", "Kutools for Excel", , , , , , 2)
    If xSplitChar = "" Then Exit Sub
    Application.ScreenUpdating = False
    xRow = xSRg.Row
    xColumn = xSRg.Column
    Set xWSh = xSRg.Worksheet
    For xFNum = xSRg.Rows.Count To 1 Step -1
        Set xRg = xWSh.Cells.Item(xRow + xFNum - 1, xColumn)
        xArr = Split(xRg, xSplitChar)
        xIndex = UBound(xArr)
        For xFFNum = LBound(xArr) To UBound(xArr)
            xRg.EntireRow.Copy
            xRg.Offset(1, 0).EntireRow.Insert Shift:=xlShiftDown
            xRg.Worksheet.Cells(xRow + xFNum, xColumn) = xArr(xIndex)
            xIndex = xIndex - 1
        Next
        xRg.EntireRow.Delete
    Next
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub   

步驟 2:執行程式碼取得結果

1. 貼上程式碼後,請按下「F5」鍵執行。此時將彈出提示方塊,引導您選取包含欲拆分之分隔文字的儲存格,如下圖所示:

VBA 程式碼,用於選取包含分隔文字的儲存格

2. 接著點擊「OK」,系統將彈出另一個提示方塊,提醒您輸入用來拆分資料的分隔符號。此處我輸入逗號與空格(,),如下圖所示:

VBA 程式碼,輸入分隔符號以根據該符號分割資料

3. 最後,點擊「OK」按鈕,即可看到所選文字字串已依逗號拆分為多欄,且其他相關欄位的資料也同步重複顯示,如下圖所示:

所選的文字字串已分割成多列

拆分以換行符號分隔的文字

如果您的儲存格內容是以換行符號分隔,並希望將其拆分為多列,這裡提供另一段 VBA 程式碼,助您輕鬆達成目標。

注意:此程式碼不支援復原功能,建議您執行前務必先備份資料。

步驟 1:開啟 VBA 模組編輯器並複製程式碼

1. 按下「Alt」+「F11」鍵,即可開啟「Microsoft Visual Basic for Applications」視窗。

2. 在開啟的視窗中,點擊「插入」>「模組」,即可建立一個全新的空白模組。

3. 接著,將下方程式碼複製並貼上到空白模組中。

VBA 程式碼:依換行符號拆分文字

Sub SplitTextIntoRows()
'UpdatebyExtendoffice
    Dim xSRg, xIptRg, xCrRg, xRg As Range
    Dim xSplitChar As String
    Dim xArr As Variant
    Dim xFNum, xFFNum, xRow, xColumn, xNum As Integer
    Dim xWSh As Worksheet
    Set xSRg = Application.InputBox("Select a range:", "Kutools for Excel", , , , , , 8)
    If xSRg Is Nothing Then Exit Sub
    xSplitChar = Chr(10)
    Application.ScreenUpdating = False
    xRow = xSRg.Row
    xColumn = xSRg.Column
    Set xWSh = xSRg.Worksheet
    For xFNum = xSRg.Rows.Count To 1 Step -1
        Set xRg = xWSh.Cells.Item(xRow + xFNum - 1, xColumn)
        xArr = Split(xRg, xSplitChar)
        xIndex = UBound(xArr)
        For xFFNum = LBound(xArr) To UBound(xArr)
            xRg.EntireRow.Copy
            xRg.Offset(1, 0).EntireRow.Insert Shift:=xlShiftDown
            xRg.Worksheet.Cells(xRow + xFNum, xColumn) = xArr(xIndex)
            xIndex = xIndex - 1
        Next
        xRg.EntireRow.Delete
    Next
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub 

步驟 2:執行程式碼取得結果

1. 貼上程式碼後,請按下「F5」鍵執行。在彈出的對話框中,選擇您要拆分的儲存格,如下圖所示:

VBA 程式碼,用於選取要分割的範圍

2. 接著點擊「OK」按鈕,所選儲存格中的資料就會拆分成多列,如下圖所示:

所選儲存格中的資料已分割成多列

方法 B:使用 Kutools for Excel 在 10 秒內將分隔文字拆分為多列

若您已安裝「Kutools for Excel」,即可運用其「拆分到多行」功能,依照您指定的任意分隔符號,將文字字串輕鬆拆分為多列。請依下列步驟操作:

Kutools for Excel 提供超過 300 項進階功能,簡化複雜作業,提升創意與效率。整合 AI 功能,Kutools 能精準自動化任務,讓資料管理輕而易舉。Kutools for Excel 詳細資訊……         免費試用……

步驟 1:選取拆分到多行功能

點擊「Kutools」>「合併和拆分」>「拆分到多行」,如下圖所示:

按一下 Kutools > 合併與分割 > 將資料分割為列

步驟 2:指定欲拆分的資料儲存格與分隔符號

在彈出的對話方塊中,設定下列選項:

  • 1)。從「區域(單列)」文字框中選取您要拆分的儲存格清單;
  • 2)。接著,選擇用來分隔您資料的分隔符;在此我將選擇「其他」,並在文字框中輸入逗號與空格(,)。
  • 3)。最後,點擊「確定」按鈕。
在對話方塊中指定要分割的資料儲存格和分隔符號

現在,所選包含分隔文字字串的儲存格已根據指定分隔符號轉換為多列,如下圖所示:

所選儲存格已轉換為多列

提示:若要還原原始資料,只需按下 Ctrl + Z 即可輕鬆復原。

覺得簡單易用嗎?對此功能感興趣,請 立即點擊下載,免費試用 30 天


方法 C:使用適用於 Excel 的 Microsoft Power Query 將分隔文字拆分為多列

若您使用的是 Office 365 或 Excel 2016 及更新版本,「適用於 Excel 的 Microsoft Power Query」是一項強大工具,能輕鬆將分隔文字拆分為多列或多欄。當您原始資料變更時,若希望分割後的數據自動同步更新,這項功能尤其實用。請依照以下步驟完成操作:

步驟 1:將資料表匯入適用於 Excel 的 Microsoft Power Query

1. 選取您要使用的數據區域,然後點擊「資料」>「從表格」,如下圖所示:

提示:在 Excel 2019 與 Office 365 中,請點選「資料」>「從表格/範圍」。

按一下「資料」>「從表格」

2. 在彈出的「建立表格」對話方塊中,點擊「確定」按鈕即可建立表格,如下圖所示:

按一下「確定」按鈕以建立表格

3. 現在,「適用於 Excel 的 Microsoft Power Query 編輯器」視窗會如右圖所示顯示資料:

Power Query 編輯器視窗已顯示資料

步驟 2:在適用於 Excel 的 Microsoft Power Query 中進行轉換

1. 選取您要拆分的欄位,然後依序點擊「首頁」>「分割欄位」>「依分隔符號」,如下圖所示:

按一下「首頁」>「分割欄」>「依分隔符號」

2. 在「依分隔符號分割欄位」對話方塊中:

若要以逗號、空格、分號等拆分文字字串,請照此操作:

  • 1)。從「選取或輸入分隔符」下拉清單中,選擇您資料所使用的分隔符;
  • 2)。從「拆分位置」區段中選取「每次出現分隔符時」。
  • 3)。接著,點擊「進階選項」展開該區段,並在「拆分為」下方選擇「列」;
  • 4)。最後,按一下「確定」即可關閉此對話方塊。
在對話方塊中指定選項,以逗號、空格、分號等分割文字

若要以換行符號將文字字串拆分為多列,請照此操作:

  • 1)。從「選取或輸入分隔符」下拉清單中選擇「自訂」;
  • 2)。從「插入特殊字元」下拉清單中點選「換行符」,字元「#(lf)」便會自動插入至「自訂」下方的文字框中;
  • 3)。從「拆分位置」區段中選取「每次出現分隔符時」。
  • 4)。接著,點擊「進階選項」展開該區段,並在「拆分為」下方選取「欄」;
  • 5)。最後,點擊「確定」即可關閉此對話方塊。
在對話方塊中指定選項,以分行符號分割文字

3. 現在,資料已拆分為多個欄位,如下圖所示:

所選資料已分割成多列

步驟 3:將適用於 Excel 的 Microsoft Power Query 輸出至 Excel 表格

1. 接著,請將資料輸出至工作表:點擊「首頁」>「關閉並載入」>「關閉並載入/關閉並載入至」(此處選擇「關閉並載入」),如下圖所示:

按一下「首頁」>「關閉並載入」以載入資料

提示:點擊「關閉並載入」即可將資料輸出至新工作表;若點選「關閉並載入至」,則可將資料輸出至您指定的其他工作表。

2. 最終,資料將載入至新工作表,如下圖所示:

資料已載入至新工作表

提示:若您需要經常更新原始表格中的資料,無須擔心!只需在結果表格上按一下右鍵,並點選「重新整理」,即可即時取得最新結果。


相關文章:

  • 將儲存格值拆分為多個欄位
  • 在 Excel 中,當您需要根據特定分隔符(例如逗號、空格、句點或換行符等)將儲存格中的文字拆分成多個欄位時,內建的「文字分列」功能通常能逐步引導您輕鬆完成。本文將分享幾個實用技巧,助您快速又精準地將儲存格內容拆分為多個欄位或列。
  • 將一個儲存格拆分為多個列或欄位
  • 假設您有一個儲存格,其中包含多項以特定字元(例如分號)分隔的內容,而您希望根據該分號將這個儲存格快速拆分成多個欄位或列。在這種情況下,您是否知道 Excel 中有哪些快速方法可以輕鬆達成此目的?
  • 依大小寫拆分文字字串
  • 在 Excel 中,我們通常使用「文字分列」功能,依照固定寬度或分隔符號來拆分文字。但您是否曾想過,也能依大小寫來拆分文字呢?例如,當您有一份資料清單,需要將其依大小寫拆分成兩欄:一欄保留小寫字串,另一欄則保留大寫字串(如下方截圖所示)。雖然「文字分列」功能無法直接支援此操作,但我將為您介紹一個實用技巧,讓您在 Excel 中快速依大小寫拆分文字字串!
  • 將數字拆分為個別數字
  • 假設您需要將數字拆解為個別數字(如下方截圖所示),該如何達成?本文將為您介紹兩種實用方法。