
你有没有经历过这种窒息时刻——
老板让你把50个销售人员的名字合并到一个单元格里,用顿号隔开。你开始疯狂地 =A2&"、"&A3&"、"&A4&"、"&A5……敲到第8个,手已经废了,发现还有42个在等你 ����
或者,同事甩给你一个表格,一个单元格里塞了十几个城市名,用逗号隔开,让你拆成单独的单元格。你默默点了"数据→分列",点完了发现……下次数据更新还得重新来一遍 ��
如果你点头了,那今天这篇文章就是为你准备的——
TEXTJOIN和TEXTSPLIT,一合一拆,Excel文本处理的双子星。学会它们,你会回来感谢我的 ✨
��一、TEXTJOIN:把散落的文本"串"起来
语法速览
=TEXTJOIN(分隔符, 是否忽略空值, 文本1, [文本2], ...)
• 分隔符:合并时用什么隔开,比如"、"、","、换行符CHAR(10)等
• 是否忽略空值:TRUE跳过空单元格,FALSE保留(一般选TRUE就对了)
• 文本1, 文本2, ...:要合并的内容,可以是单元格、区域、甚至数组
一句话理解:把一堆文本用你指定的分隔符粘成一段话,还能自动跳过空格。
比&符号强在哪?&一次只能连两个,空值你得自己判断,分隔符你得手动加。TEXTJOIN?一锅端,全自动 ��
实战场景1:合并部门人员名单
假设你有一张表,A列是部门,B列是姓名,你想把销售部所有人的名字合并成一个单元格:
A列(部门) | B列(姓名) |
销售部 | 张伟 |
销售部 | 李娜 |
销售部 | 王磊 |
销售部 | |
销售部 | 赵敏 |
公式:
=TEXTJOIN("、", TRUE, B2:B6)
结果:张伟、李娜、王磊、赵敏
看到了吗?第4行的空单元格被自动跳过了,顿号也没有连续出现。如果用 &,你得写一堆IF判断空值,人都要写没了 ��
实战场景2:按条件合并——搭配FILTER更香
还是上面那张表,但现在有多个部门混在一起,你只想合并销售部的人名:
A列(部门) | B列(姓名) |
销售部 | 张伟 |
技术部 | 陈刚 |
销售部 | 李娜 |
技术部 | 周洋 |
销售部 | 王磊 |
公式:
=TEXTJOIN("、", TRUE, FILTER(B2:B6, A2:A6="销售部"))
结果:张伟、李娜、王磊
FILTER 先筛选出销售部的人名,TEXTJOIN 再合并。数据更新了?公式自动刷新,完全不用管。这就是函数式思维的快乐 ��
实战场景3:合并时加换行符
有时候合并的内容需要换行显示,比如做工资条、通讯录:
=TEXTJOIN(CHAR(10), TRUE, B2:B6)
CHAR(10)就是换行符。记得把单元格设置为自动换行,不然看不到效果哦!
结果会变成每个名字独占一行,整齐得像列兵��
✂️ 二、TEXTSPLIT:把挤在一起的文本"拆"开来
语法速览
=TEXTSPLIT(文本, [列分隔符], [行分隔符], [是否忽略空值], [匹配模式], [填充内容])
• 文本:要拆的字符串
• 列分隔符:按这个拆到不同列(横向展开)
• 行分隔符:按这个拆到不同行(纵向展开)
• 是否忽略空值:TRUE忽略连续分隔符产生的空格,FALSE保留(默认FALSE)
• 匹配模式:0区分大小写(默认),1不区分
• 填充内容:行列数不齐时用什么填充(默认#N/A)
一句话理解:数据→分列的函数版,但更灵活,支持行拆、列拆、同时拆,而且结果动态更新。
实战场景1:拆分逗号隔开的城市列表
同事给你一个单元格:"北京,上海,广州,深圳,杭州",让你拆开:
=TEXTSPLIT(A2, ",")
结果自动溢出到5个单元格:北京 | 上海 | 广州 | 深圳 | 杭州
横向展开,整整齐齐。比"分列"好在哪?数据源变了,结果自动跟着变,不用重新操作。
实战场景2:按行拆分——纵向展开
同样是上面的城市列表,但你想纵向排列(一列显示):
=TEXTSPLIT(A2, , ",")
注意第二个参数(列分隔符)留空,逗号放在第三个参数(行分隔符)的位置。
结果:
• 北京
• 上海
• 广州
• 深圳
• 杭州
就这么一个小细节——把分隔符从第二个参数挪到第三个参数,横向就变纵向了。这设计,不得不夸一下微软��
实战场景3:用多个分隔符拆分
真实数据哪有那么规整?你看这个:
"张伟-销售部-北京/李娜-技术部-上海/王磊-财务部-广州"
人和人之间用/隔开,每个人的信息用-隔开。一套公式搞定:
=TEXTSPLIT(A2, "-", "/")
结果:
列1 | 列2 | 列3 | |
行1 | 张伟 | 销售部 | 北京 |
行2 | 李娜 | 技术部 | 上海 |
行3 | 王磊 | 财务部 | 广州 |
一个函数,横纵同时拆分,瞬间变成规整的表格。这要是用"分列"加"转置",步骤多到你想辞职 ��
��三、进阶玩法:TEXTJOIN + TEXTSPLIT 组合出击
单独用已经够强了,但这两个函数一旦组队,才是真正的王炸。
核心逻辑就八个字:先合后拆,先拆后合。看实例��
进阶场景:多行多列数据"逆透视"
你有没有遇到过这种"宽表"——
部门 | Q1 | Q2 | Q3 | Q4 |
销售部 | 120万 | 135万 | 148万 | 160万 |
技术部 | 80万 | 92万 | 88万 | 95万 |
老板说:"我要把它变成三列——部门、季度、业绩。"
手动复制粘贴?你怕是不想下班了��
第一步:先合并成字符串
在旁边写公式,把每行数据合并成一个字符串:
=TEXTJOIN("-", TRUE, A2:E2)
销售部那行变成:销售部-120万-135万-148万-160万
再合并所有行:
=TEXTJOIN("/", TRUE, TEXTJOIN("-", TRUE, A2:E2), TEXTJOIN("-", TRUE, A3:E3))
变成:销售部-120万-135万-148万-160万/技术部-80万-92万-88万-95万
第二步:再用TEXTSPLIT拆回来,但换成你想要的形状
=TEXTSPLIT(TEXTJOIN("/", TRUE, BYROW(A2:E3, LAMBDA(r, TEXTJOIN("-", TRUE, r)))), "-", "/")
结果:
部门 | Q1 | Q2 | Q3 | Q4 |
销售部 | 120万 | 135万 | 148万 | 160万 |
技术部 | 80万 | 92万 | 88万 | 95万 |
看起来和原来一样?别急,关键是数据现在是由公式生成的动态数组,你可以继续用TOCOL、WRAPROWS等函数做任意变形,实现完整的逆透视��
=HSTACK(TOCOL(IF({1,1,1,1},A2:A3)), TOCOL(B1:E1), TOCOL(B2:E3))
结果变成标准的三列长表:
部门 | 季度 | 业绩 |
销售部 | Q1 | 120万 |
销售部 | Q2 | 135万 |
销售部 | Q3 | 148万 |
销售部 | Q4 | 160万 |
技术部 | Q1 | 80万 |
技术部 | Q2 | 92万 |
技术部 | Q3 | 88万 |
技术部 | Q4 | 95万 |
而这一切的起点,就是 TEXTJOIN + TEXTSPLIT 帮你把数据"融化"再"重塑" ��
彩蛋场景:替换分隔符
手头有一串用逗号隔开的名字:"张三,李四,王五,赵六",但你要用顿号隔开。
不用一个个改,一行搞定:
=TEXTJOIN("、", TRUE, TEXTSPLIT(A2, ","))
先拆开,再合回去,换个分隔符就行。这就是"先拆后合"的魅力 ��
��四、总结一下
函数 | 一句话 | 核心优势 |
TEXTJOIN | 把散文本串起来 | 自动加分隔符、自动跳空值、支持区域合并 |
TEXTSPLIT | 把挤文本拆开来 | 行列双向拆分、多分隔符、动态更新 |
组合使用 | 拆了再合,合了再拆 | 数据变形、逆透视、分隔符替换 |
记住这个公式思维:
• 需要合并?→ TEXTJOIN
• 需要拆分?→ TEXTSPLIT
• 需要变形?→ 先合后拆 / 先拆后合
⚠️ 小提醒:这两个函数需要 Excel 365或Excel 2021及以上版本才支持,WPS最新版也已支持。如果你的Excel版本太旧……是时候更新了 ��
觉得有用的话,点个关注不迷路��
我是在抖音做Excel教学的 @excel_fans,每天分享一个让你少加班的Excel技巧。关注我,我们一起从"Excel小白"进化成"表格王者" ��
——你的Excel搭子,陪你打怪升级
夜雨聆风