通过分隔符将文本字符串拆分为多行 - 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 种插入 工具(插入二维码、根据路径插入图片等) | 12 种转换 工具(小写金额转大写、汇率转换等) | 7 种合并与分割 工具(高级合并行、分割单元格等) | 还有更多... |
使用 Kutools for Excel 提升您的 Excel 技能,体验前所未有的高效。 Kutools for Excel 提供超过 300 种高级功能来提高生产力并节省时间。 单击此处获取您最需要的功能...
Office Tab 将标签式界面引入 Office,让您的工作更加轻松
- 在 Word、Excel、PowerPoint 中启用标签式编辑和阅读。
- 在同一窗口的新标签页中打开和创建多个文档,而不是在新窗口中进行操作。
- 将您的生产力提升 50%,每天为您减少数百次鼠标点击!