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

以逗號、空格、分號等分隔的文字
要拆分由某些常見分隔符(如逗號、空格、分號、斜線等)分隔的文字字串,以下代碼可以幫您完成。請按照以下步驟操作:
注意:此代碼不支持撤銷,最好在應用此代碼之前備份數據。
步驟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」鍵運行此代碼。然後會彈出一個提示框,提醒您選擇包含要拆分的帶分隔符文字的單元格,參見截圖:

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

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

以換行符分隔的文字
如果您的單元格內容是以換行符分隔的,要將它們拆分為多行,這裡有另一個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」鍵運行此代碼。在彈出的對話框中,請選擇您想拆分的單元格,參見截圖:

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

方法B:使用Kutools for Excel在10秒內將帶分隔符的文字拆分為多行
如果您已經安裝了「Kutools for Excel」,使用其「拆分數據到多行」功能,您可以根據指定的任何分隔符將文字字串拆分為多行。請按照以下步驟操作:
步驟1:選擇「拆分數據到多行」功能
點擊「Kutools」>「合併與拆分」>「拆分數據到多行」,參見截圖:

步驟2:指定要拆分的數據單元格和分隔符
在彈出的對話框中,使用以下選項:
- 1). 從「區域(單列)」文本框中選擇要拆分的單元格列表;
- 2). 然後,選擇分隔您的數據的分隔符,這裡,我將選擇「其他」並在文本框中輸入逗號和空格(, );
- 3). 最後,點擊「確定」按鈕。

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

提示:如果您想恢復原始數據,只需按Ctrl + Z進行撤銷即可。
容易使用嗎?對此功能感興趣嗎?請點擊下載以獲得30天免費試用版。
方法C:使用Power Query將帶分隔符的文字拆分為多行
如果您正在使用Office 365或Excel 2016及更高版本,「Power Query」是一個強大的工具,可以幫助您將帶分隔符的文字拆分為多行或多列。當您希望在原始數據更改時刷新拆分數據時,這非常有用。請按照以下步驟完成操作:
步驟1:將數據表導入Power Query
1. 選擇要使用的數據範圍,然後點擊「數據」>「從表格」,參見截圖:
提示:在Excel 2019和Office 365中,點擊數據>從表格/範圍。

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

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

步驟2:在Power Query中進行變換
1. 選擇要拆分的列。然後,點擊「主頁」>「拆分列」>「按分隔符」,參見截圖:

2. 在「按分隔符拆分列」對話框中:
要按逗號、空格、分號等拆分文字字串,請這樣做:
- 1). 從「選擇或輸入分隔符」下拉列表中選擇您的數據分隔符;
- 2). 從「拆分於」部分選擇「每次出現分隔符」;
- 3). 然後,點擊「高級選項」展開該部分,並在「拆分至」下選擇「行」;
- 4). 最後,點擊「確定」關閉此對話框。

要按換行符將文字字串拆分為多行,請這樣做:
- 1). 從「選擇或輸入分隔符」下拉列表中選擇「自訂」;
- 2). 從「插入特殊字符」下拉菜單中,點擊「換行符」,字符「#(lf)」將自動插入到「自訂」下的文本框中;
- 3). 從「拆分於」部分選擇「每次出現分隔符」;
- 4). 然後,點擊「高級選項」展開該部分,並在「拆分至」下選擇「行」;
- 5). 最後,點擊「確定」關閉此對話框。

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

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

提示:點擊「關閉並載入」將數據輸出到新工作表;點擊「關閉並載入至」選項,數據將輸出到您需要的任何其他工作表。
2. 最後,數據將被加載到新工作表中,參見截圖:

提示:如果您需要經常更新原始表格中的數據,請不要擔心,您只需右鍵點擊結果表格並點擊「重新整理」以動態獲取新結果。
相關文章:
- 將單元格值拆分為多列
- 在Excel中,當您想通過某些分隔符(如逗號、空格、句號、換行符等)將一列單元格值拆分為多列時,通常內置的「文字轉欄」功能可以幫助您逐步完成此任務。本文將談論一些好用的技巧,讓您輕鬆快速地將單元格值拆分為多列或多行。
- 將單元格拆分為多行或多列
- 假設您有一個包含多個內容的單元格,這些內容由特定字符(例如分號)分隔,然後您想根據分號將這個長單元格拆分為多行或多列,在這種情況下,您是否有快速的方法在Excel中解決它?
- 按大小寫拆分文字字串
- 在Excel中,我們通常使用固定寬度或分隔符通過「文字轉欄」功能拆分文字,但您是否嘗試過按大小寫拆分文字?例如,您有一列數據,需要根據大小寫將它們拆分為兩列:一列包含小寫字串,另一列包含大寫字串,如下方截圖所示。「文字轉欄」功能不支持此操作,然而,我可以介紹一種技巧,快速按大小寫拆分文字字串。
- 將數字拆分為單個數字
- 假設您需要將數字分解或拆分為單個數字,如下方截圖所示,您能做什麼來實現它?本文將為您提供兩種方法。
最佳辦公效率工具
🤖 | Kutools AI 助手:基於智能執行方式革新數據分析:智能執行 | 生成代碼 | 創建自訂公式 | 分析數據並生成圖表 | 調用 Kutools 函數… |
熱門功能:查找、標記重複值或識別重複項 | 刪除空行 | 合併列或單元格而不丟失數據 | 四捨五入無需公式 ... | |
高級 LOOKUP: 多條件 VLookup | 多值 VLookup | 多表查找 | 模糊查找 .... | |
高級下拉列表:快速創建下拉列表 | 依賴下拉列表 | 多選下拉列表 .... | |
列管理器: 添加特定數量的列 | 移動列 | 切換隱藏列的可見狀態 | 比較區域和列 ... | |
特色功能:網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿與工作表管理器 | 資源庫(自動文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按列表發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/斜體/刪除線...) ... | |
頂級 15 種工具集: 12 個文本工具(添加文本、刪除特定字符、...) | 50+ 圖表 類型(甘特圖、...) | 40+ 實用 公式(基於生日計算年齡、...) | 19 個插入工具(插入QR碼、根據路徑插入圖片、...) | 12 個轉換工具(金額轉大寫、匯率轉換、...) | 7 個合併與分割工具(高級合併行、分割儲存格、...) | ... 還有更多 |
使用 Kutools for Excel 提升您的 Excel 技巧,體驗前所未有的高效。 Kutools for Excel 提供超過 300 種高級功能來提高生產力並節省時間。 點擊這裡獲取您最需要的功能...
Office Tab 將標籤式界面帶到 Office,讓您的工作更加輕鬆
- 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中啟用標籤式編輯和閱讀。
- 在同一窗口的新標籤中打開和創建多個文檔,而不是在新窗口中。
- 將您的生產力提高 50%,每天為您減少數百次鼠標點擊!