按分隔符将文本字符串拆分为多行 —— 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 中,我们通常使用“文本分列”功能按固定宽度或分隔符拆分文本,但您是否尝试过按字母大小写来拆分文本?例如,您有一组数据,需要根据字母的大小写将其拆分为两列:一列包含小写字母组成的字符串,另一列包含大写字母组成的字符串(如下图所示)。“文本分列”功能并不支持此类操作,但我可以为您介绍一个实用技巧,助您在 Excel 中快速按大小写拆分文本字符串。
- 将数字拆分为单个数字
- 假设您需要将数字拆分为单个数字(如下图所示),该如何实现?本文将为您介绍两种实用方法。
最佳办公效率工具
| 🤖 | KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行 | 生成代码| 创建自定义公式 | 数据分析及生成图表| 调用 Kutools Functions…… |
| 热门功能:查找、高亮或标记重复项 | 删除空白行 | 合并列或单元格而不丢失数据 | 不使用公式的四舍五入…… | |
| 高级 LOOKUP:多条件 VLookup | 多值 VLookup | 跨多工作表 VLookup | 模糊查找…… | |
| 高级下拉列表:快速创建下拉列表 | 级联下拉列表 | 多选下拉列表…… | |
| 列管理器:添加指定数量的列|移动列|切换隐藏列的可见性状态|比较区域与列…… | |
| 特色功能:网格聚焦 | 设计视图 |增强编辑栏 | 工作簿和表管理器 | 资源库(自动文本)| 日期提取 | 汇总工作表 | 加密/解密单元格 | 按列表发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体单元格/斜体/删除线……) ...... | |
| 热门 15 工具集:12 文本工具(添加文本,删除特定字符,……)| 50+ 图表 类型(甘特图,……)| 40+ 实用公式(基于生日计算年龄,……)| 19 插入工具(插入二维码,从路径插入图片,……)| 12 转换工具(小写金额转大写,汇率转换,……)| 7 合并和拆分工具(高级合并行,分割单元格,……)|更多功能 |
借助 Kutools for Excel 超级提升您的 Excel 技能,体验前所未有的高效办公!Kutools for Excel 提供超过 300 项高级功能,助您大幅提升工作效率、节省宝贵时间。立即点击获取您最需要的功能……
Office Tab 为 Office 带来标签式界面,让您的工作更加轻松
- 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读。
- 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
- 每天为您省下数百次鼠标点击,工作效率提升 50%!
所有 Kutools 插件,一个安装程序
Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件,以及 Office Tab Pro,是跨 Office 应用协作团队的理想之选。
- 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
- 一个安装程序,一个许可证— 几分钟内即可完成设置(支持 MSI)
- 协同效果更佳— 在 Office 应用之间实现高效办公
- 30 天全功能免费试用— 无需注册,无需信用卡
- 超值之选— 相比单独购买插件更省钱