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