网站首页 > java教程 正文
小伙伴们好啊,今天和大家分享几个字符拆分与合并的函数公式。
拆分字符
如下图,A列待拆分字符中,有多种类型的间隔符号,使用以下公式,可以按常量数组的形式将多种分隔符号写到一起。
=TEXTSPLIT(A2,{"+","-"})
公式中的列分隔符号为{"+","-"},每一个符号都加上双引号,符号之间用半角的逗号或半角分号作为间隔,最后用一组花括号包含起来。
TEXTSPLIT将依次按花括号中不同类型的分隔符拆分到各列。
拆分后求和
如下图所示,A列是商品和金额的混合信息,希望提取出其中的金额部分,并进行求和汇总。
B2单元格输入以下公式,向下复制即可。
=SUM(1*TEXTSPLIT(A2,TEXTSPLIT(A2,ROW($1:$10)-1,".",1),,1))
本例中用了两个TEXTSPLIT函数,先看这部分:
TEXTSPLIT(A2,ROW($1:$10)-1,".",1)
使用ROW($1:$10)-1部分得到的0~9的数字和小数点,对A2单元格中的内容进行拆分,第四个参数使用1,表示忽略空单元格。
这一步的作用相当于是将A2单元格中的数字和小数点都删除,仅保留文字部分,得到的结果为:
{"赵东来","沙瑞金"}
接下来再使用TEXTSPLIT函数,用前一个TEXTSPLIT部分得到文字作为间隔符,将A2内容进行拆分。
TEXTSPLIT(A2,TEXTSPLIT(A2,ROW($1:$10)-1,".",1,),,1)
这部分拆分后的结果为:
{"18","95.5"}
最后乘以1转换为数值,再用SUM函数求和。
合并内容
如下图,希望将B列的姓名,按照不同部门合并到一个单元格里。
=TEXTJOIN(",",1,IF(A$2:A$15=D2,B$2:B$15,""))
公式中要合并的内容为:
IF(A$2:A$15=D2,B$2:B$15,"")
也就是如果A$2:A$15等于D2,就返回B$2:B$15对应的内容,否则返回空文本"",结果是一个内存数组:
{"沙瑞金";"高育良";"蔡成功";"陈岩石";"";"";"";""……}
TEXTJOIN函数对IF函数得到的内存数组进行合并,第一参数指定使用间隔符号为逗号,第二参数使用1,表示忽略内存数组中的空文本。
返回间隔符号前后的内容
如下图,希望得到“调休”和逗号之间的字符,B2单元格输入以下公式,
=TEXTBEFORE(TEXTAFTER(A2,"调休"),",")
TEXTAFTER可返回指定间隔符号后的内容,TEXTBEFORE则是返回指定间隔符号之前的内容。
先使用TEXTAFTER函数返回“调休”后的全部字符,再从此基础上,使用TEXTBEFORE函数返回逗号前的全部字符。
图文作者:祝洪忠
猜你喜欢
- 2025-05-11 全局数组的结构分析(全局数组和局部数组)
- 2025-05-11 10秒合并800个表,VSTACK就是这么厉害!
- 2025-05-11 VBA实现将批量Excel文件中的工作表合并成一个工作表
- 2025-05-11 C语言之strcat字符串拼接函数(c语言字符串拼接函数实现)
- 2025-05-11 这几个动态数组函数,简单又高效(动态数组的方法)
- 2025-05-11 数据格式的转换方法,HSTACK函数重建数组
- 2025-05-11 Java归并排序算法(技术每天进步一点)
- 2025-05-11 如何零基础学习VBA——数组函数介绍
- 2025-05-11 新增工作表数据自动汇总到总表怎么弄?会用vstack函数轻松搞定!
- 2025-05-11 六十六、Leetcode数组系列(中篇)(leetcode数组汇总)
你 发表评论:
欢迎- 05-11全局数组的结构分析(全局数组和局部数组)
- 05-1110秒合并800个表,VSTACK就是这么厉害!
- 05-11VBA实现将批量Excel文件中的工作表合并成一个工作表
- 05-11C语言之strcat字符串拼接函数(c语言字符串拼接函数实现)
- 05-11这几个动态数组函数,简单又高效(动态数组的方法)
- 05-11数据格式的转换方法,HSTACK函数重建数组
- 05-11Java归并排序算法(技术每天进步一点)
- 05-11如何零基础学习VBA——数组函数介绍
- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)