想将以上excel中A列多行内容快速转化到一行里边(比如都转到A1),要求转化完成后的每行内容之间有;隔开,原图如下:

实现后的效果如下:

方法1:使用 TEXTJOIN 函数(推荐,简单快速)
找一个空白单元格输入公式:=TEXTJOIN(";", TRUE, A1:A43)后按下 回车即可;
(如果你的数据没有多余的空行,也可以用 FALSE 代替 TRUE,即 =TEXTJOIN(";",FALSE,A1:A43))
方法2:使用 VBA 宏(适合需要频繁做此操作的人)
-
按
Alt + F11打开VBA编辑器(或wps页面打开路径:工具->开发工具-> VB编辑器 ) -
点击:
插入->模块 -
在空白处粘贴以下代码:
Sub MergeAndSeparate() Dim rng As Range Dim res As String Dim cell As Range '把选中的区域赋值给 rng,如果你没选中,就默认使用A1:A43 Set rng = Selection If rng.Count = 1 Then Set rng = Range("A1:A43") res = "" For Each cell In rng If cell.Value <> "" Then res = res & cell.Value & ";" End If Next cell '去掉最后一个多余的分号 If Right(res, 1) = ";" Then res = Left(res, Len(res) - 1) '把结果输出到A1单元格 Range("A1").Value = res '提示 MsgBox "合并完成!" End Sub -
关闭VBA窗口,回到表格
-
选中A1到A43的区域
-
按
Alt + F8,选择MergeAndSeparate,点击"执行"即可(最终结果输出到A1单元格,想输出到B1改对应代码为B1即可)