Skip to main content

按分隔符將文字字串拆分為多行 - 3個快速技巧

Author: Xiaoyang Last Modified: 2025-05-12

通常,您可以使用「文字轉欄」功能,通過特定的分隔符(如逗號、點、分號、斜線等)將單元格內容拆分到多列。但是,有時您可能需要將帶分隔符的單元格內容拆分到多行,並重複其他列的數據,如下方截圖所示。您是否有好的方法在 Excel 中處理此任務?本教程將介紹一些有效的方法來完成這項工作。

split text into multiple rows

視頻:按分隔符將文字字串拆分為多行

 


方法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 code to select the cells contain the delimited text

2. 然後,點擊「確定」,另一個提示框會彈出,提醒您輸入要根據其拆分數據的分隔符。這裡,我輸入了一個逗號和一個空格(, ),參見截圖:

vba code to typ a separator split the data based on

3. 最後,點擊「確定」按鈕。現在,您會看到所選文字字串已根據逗號拆分為多行,並且其他相關列的數據也已重複,如下方截圖所示:

the selected text strings are split into rows

以換行符分隔的文字

如果您的單元格內容是以換行符分隔的,要將它們拆分為多行,這裡有另一個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 code to selec the range to split

2. 然後,點擊「確定」按鈕,所選單元格中的數據將被拆分為多行,如下方截圖所示:

the data in the selected cells are split into rows

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

如果您已經安裝了「Kutools for Excel」,使用其「拆分數據到多行」功能,您可以根據指定的任何分隔符將文字字串拆分為多行。請按照以下步驟操作:

Kutools for Excel 提供超過 300 種進階功能,簡化複雜任務,提升創造力與效率。 結合 AI 能力,Kutools 能夠精準自動化任務,讓數據管理變得輕而易舉。Kutools for Excel 的詳細資訊...免費試用...

步驟1:選擇「拆分數據到多行」功能

點擊「Kutools」>「合併與拆分」>「拆分數據到多行」,參見截圖:

Click Kutools > Merge & Split > Split Data to Rows

步驟2:指定要拆分的數據單元格和分隔符

在彈出的對話框中,使用以下選項:

  • 1). 從「區域(單列)」文本框中選擇要拆分的單元格列表;
  • 2). 然後,選擇分隔您的數據的分隔符,這裡,我將選擇「其他」並在文本框中輸入逗號和空格(, );
  • 3). 最後,點擊「確定」按鈕。
Specify the data cells and delimiter for splitting in the dialog box

現在,所選單元格中的帶分隔符文字字串已根據特定分隔符轉換為多行,參見截圖:

the selected cells are converted into multiple rows

 提示:如果您想恢復原始數據,只需按Ctrl + Z進行撤銷即可。

容易使用嗎?對此功能感興趣嗎?請點擊下載以獲得30天免費試用版


方法C:使用Power Query將帶分隔符的文字拆分為多行

如果您正在使用Office 365或Excel 2016及更高版本,「Power Query」是一個強大的工具,可以幫助您將帶分隔符的文字拆分為多行或多列。當您希望在原始數據更改時刷新拆分數據時,這非常有用。請按照以下步驟完成操作:

步驟1:將數據表導入Power Query

1. 選擇要使用的數據範圍,然後點擊「數據」>「從表格」,參見截圖:

 提示:在Excel 2019和Office 365中,點擊數據>從表格/範圍。

click Data > From Table

2. 在彈出的「創建表格」對話框中,點擊「確定」按鈕以創建表格,參見截圖:

click OK button to create a table

3. 現在,顯示了「Power Query編輯器」窗口以及數據,參見截圖:

the Power Query Editor window is displayed with the data

步驟2:在Power Query中進行變換

1. 選擇要拆分的列。然後,點擊「主頁」>「拆分列」>「按分隔符」,參見截圖:

click Home > Split Column > By Delimiter

2. 在「按分隔符拆分列」對話框中:

要按逗號、空格、分號等拆分文字字串,請這樣做:

  • 1). 從「選擇或輸入分隔符」下拉列表中選擇您的數據分隔符;
  • 2). 從「拆分於」部分選擇「每次出現分隔符」;
  • 3). 然後,點擊「高級選項」展開該部分,並在「拆分至」下選擇「行」;
  • 4). 最後,點擊「確定」關閉此對話框。
specify the options in the dialog box to split the text by comma, space, semicolon, etc

要按換行符將文字字串拆分為多行,請這樣做:

  • 1). 從「選擇或輸入分隔符」下拉列表中選擇「自訂」;
  • 2). 從「插入特殊字符」下拉菜單中,點擊「換行符」,字符「#(lf)」將自動插入到「自訂」下的文本框中;
  • 3). 從「拆分於」部分選擇「每次出現分隔符」;
  • 4). 然後,點擊「高級選項」展開該部分,並在「拆分至」下選擇「行」;
  • 5). 最後,點擊「確定」關閉此對話框。
specify the options in the dialog box to split the text by line break

3. 現在,所選數據已被拆分為多行,如下方截圖所示:

the selected data has been split into multiple rows

步驟3:將Power Query輸出到Excel表格

1. 然後,您應該將數據輸出到工作表中。請點擊「主頁」>「關閉並載入」>「關閉並載入 / 關閉並載入至」,(這裡,我將點擊「關閉並載入」),參見截圖:

click Home > Close & Load to load the data

 提示:點擊「關閉並載入」將數據輸出到新工作表;點擊「關閉並載入至」選項,數據將輸出到您需要的任何其他工作表。

2. 最後,數據將被加載到新工作表中,參見截圖:

the data is loaded to a new worksheet

 提示:如果您需要經常更新原始表格中的數據,請不要擔心,您只需右鍵點擊結果表格並點擊「重新整理」以動態獲取新結果。


相關文章:

  • 將單元格值拆分為多列
  • 在Excel中,當您想通過某些分隔符(如逗號、空格、句號、換行符等)將一列單元格值拆分為多列時,通常內置的「文字轉欄」功能可以幫助您逐步完成此任務。本文將談論一些好用的技巧,讓您輕鬆快速地將單元格值拆分為多列或多行。
  • 將單元格拆分為多行或多列
  • 假設您有一個包含多個內容的單元格,這些內容由特定字符(例如分號)分隔,然後您想根據分號將這個長單元格拆分為多行或多列,在這種情況下,您是否有快速的方法在Excel中解決它?
  • 按大小寫拆分文字字串
  • 在Excel中,我們通常使用固定寬度或分隔符通過「文字轉欄」功能拆分文字,但您是否嘗試過按大小寫拆分文字?例如,您有一列數據,需要根據大小寫將它們拆分為兩列:一列包含小寫字串,另一列包含大寫字串,如下方截圖所示。「文字轉欄」功能不支持此操作,然而,我可以介紹一種技巧,快速按大小寫拆分文字字串。
  • 將數字拆分為單個數字
  • 假設您需要將數字分解或拆分為單個數字,如下方截圖所示,您能做什麼來實現它?本文將為您提供兩種方法。