ARTICLE · 1150495
合并文本?试试Excel新函数ARRAYTOTEXT,稳准狠!
点击蓝字 关注我吧!
Hi,我是咸鱼。
如果你日常有“把多个单元格的信息快速合并到一起”的活儿,那么,看看今天这篇文章能不能给你一个新的解题思路。

我们一起来解锁一个Microsoft 365、Excel 2024和新版的WPS可以使用的函数:ARRAYTOTEXT,它能轻松拿捏上面这种情况。
本期导航
01 功能语法
02 使用场景
03 避坑指南
一、功能语法
ARRAY是“数组”的意思,TEXT是“文本”的意思。这个函数的功能就是把数组或者区域快速合并到一个单元格里,以文本形式返回。
语法
=ARRAYTOTEXT(数组,[格式])
参数1:数组【必填】
要转换的数组或单元格区域。
参数2:格式【可选】
0或不填:简明格式;
1:严格格式;
如果填了其他数字,函数会返回#VALUE!错误。
参数2有点抽象,来看个案例:
=ARRAYTOTEXT(B2:B6)

第2参数不填,返回的是B2~B6的内容用逗号+空格(对,你没看错,就是有个空格)分隔,合并到一个单元格里。
如果公式变成:
=ARRAYTOTEXT(B2:B4,1)

返回的结果是包含花括号、双引号以及逗号的数组常量形式。但这种用法,我个人感觉用处不大。
如果第1参数“数组”是多行多列,第2参数“格式”填1,返回的结果:列与列之间是逗号,行与行之间是分号。比如:
=ARRAYTOTEXT(B2:C4,1)

但如果第1参数“数组”是多行多列,第2参数“格式”不填或者填0,返回的结果之间都是用逗号+空格连接。
=ARRAYTOTEXT(B2:C4,0)

二、实用场景
1.提取C列的所有部门放到一个单元格里
【方法】
=ARRAYTOTEXT(UNIQUE(C2:C12))

【解析】
先用UNIQUE函数提取C2:C12中的唯一值;
再嵌套ARRAYTOTEXT合并到一个单元格里。
2.把一个部门的人员提取到一个单元格里
【方法】
在G2输入以下公式,向下复制到G4就行啦!
=ARRAYTOTEXT(FILTER(B:.B,C:.C=F2))

【解析】
FILTER(B:.B,C:.C=F2)会返回“销售1部”所有的人员姓名。
冒号后面的小数点是函数TRIMRANGE的简写形式,也叫语法糖。公式里用的B、C整列,在冒号的右边加上语法糖,能裁剪掉区域右边和下方没有数据的区域。
这样既能提高运算效率,也避免了公式向下复制时要对区域进行绝对引用的麻烦。
有兴趣详细了解语法糖,可以看这篇→猜你没用过TRIMRANGE,1秒修剪空白区域,效率拉满!
三、避坑指南
1.日期被合并到一个单元格后,会变成日期序列号。因为在Excel中日期是以数字形式存储的。

2.分隔符不能自定义
ARRAYTOTEXT默认用逗号+空格来合并文本。如果想要用顿号、分号等作为分隔符,只有用TEXTJOIN函数啦!
3.逗号后面带一个空格
对比一下ARRAYTOTEXT和TEXTJOIN合并的内容,可以看到ARRAYTOTEXT合并的结果在逗号后面是有一个空格的。

我们并不知道这样设计的初衷是什么,那么,你说,是个BUG吗?
记得点赞、关注再划走呀!