怎样批量将excel中多行的数据合并为一行,并且自动换行?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样批量将excel中多行的数据合并为一行,并且自动换行?相关的知识,希望对你有一定的参考价值。

如图,想将A列的数据变成B列那样,因为数据较多,请问如何批量完成?

我用的是office2019有TEXTJOIN函数,不知道你用的什么版本是否有这个函数。

=IFNA(IF(MATCH(A1,A:A,)=ROW(),TEXTJOIN(CHAR(10),,OFFSET(A1,,,COUNTIF(A:A,A1))),""),"")

追问

上面描述的可能不够准确,我是想把如同A列的数据,批量合并成如C列的形式,就是把A列内每个黑框内的多行文字(每行文字内容都不同)整合到一个单元格内,这个怎么操作?

追答

要有规则,是每几行一合并,还是有共同特点的行一合并(共同特点是什么,根据什么判断是共同特点,不能说通过眼看,这个需要告诉电脑)

参考技术A 如果相邻的要加判断条件合并,合并完再合并下一个条件的。然后再合并的话,这个需要用VBA进行处理的。公式的话,通常需要预设,所以公式做起来会比较麻烦。在支持TEXTOIN函数的版本中,可以通过数组+排序(通过LARG或者SMALL函数)+条件筛选+文本合并等思路进行处理。因为公式里边的处理非常麻烦,数据稍微多一点,就慢得要命。而且实现起来非常绕。理论上TEXTJOIN函数可以实现,但是公式可能会非常长。
(注:TEXTJOIN函数在EXCEL2019或者WPS表格2019及以上版本支持。之前的版本不支持)
建议用VBA,比较方便。由于VBA写起来要耗费一定的精力和时间,不免费。需要的话可以私信。这里可以给你提供一下写VBA的思路。
可以先定义变量,遍历A列单元格。将遇到的单元格赋值给变量,然后再下一个单元格。遇到相同的单元格则合并到变量(中间加换行符),一旦遇到不同的单元格,写到B列相应的位置,并定义下一个要写入的位置,可以根据要求偏移或者计算下一个位置。直到遍历A列单元格完成即可实现。
由于写VBA需要耗费不少的精力和时间, 所以这里只能给个思路。如果日常使用比较频繁,或者数据量较大,就有必要用VBA了。做VBA时要发原表过来。要根据你的数据规律判断如何用公式比较好。
参考技术B 可以加上换行符,然后选中自动换行,这样就会在你想换的位置换行了,不管这一行有多宽。 参考技术C

可以加上换行符,然后选中自动换行,这样就会在你想换的位置换行了,不管这一行有多宽具体看附图公式和结果

SQL 多行多列数据清洗合并为一行

参考技术A SELECT  

            A,

            GROUP_CONCAT( B  SEPARATOR  ','  ),

            GROUP_CONCAT( C  SEPARATOR   ','  )

FROM

            table_name 

GROUP BY

            A

1.GROUP_CONCAT()中的值为你要合并的数据的字段名;

2.SEPARATOR 函数是用来分隔这些要合并的数据的 ,' ' 中是你要用哪个符号来分隔,可以直接不填符号默认为空值;

2.必须要用GROUP BY 语句来进行分组管理,不然所有的数据都会被合并成一条记录

参考链接

https://www.cnblogs.com/shoshana-kong/p/11147690.html

以上是关于怎样批量将excel中多行的数据合并为一行,并且自动换行?的主要内容,如果未能解决你的问题,请参考以下文章

如何快速批量将多行的内容,变成一行?

SQL 多行多列数据清洗合并为一行

怎样将多行Excel内容合并成一行

delphi中,cxgrid怎样将选中的单元格都赋为选中的第一行的值,并且数据集也同步更新

利用Oracle分析函数实现多行数据合并为一行

【Excel】多列数据合并为一列