清华学弟函数攻略:一文讲透TEXT函数家族新成员(上)
创作者俱乐部成员
困难如山,我有金山。
大家好,欢迎收看本期函数攻略,我是学弟。
大家在看完我前一篇文章(一文讲透表格筛选功能 上)以后,是不是马上下载了15712以上的WPS版本,去体验“表格筛选→导出”的功能了呢?!学弟跟大家讲,除了这个功能,以及我们日趋熟练的WPS AI功能以外,这个新版本还默默更新了3个宝藏函数,它们都属于文本类函数家族成员:
它们分别是TEXTBEFORE()、TEXTAFTER()、TEXTSPLIT()函数!
那么学弟就在第一时间帮助大家做评测吧!
从这两个函数的参数说明,结合他们的英文单词的含义来看,不难发现,这两个函数,旨在找到那么一个“特定分隔符”,返回源字符串之前,或者之后的部分。
因此,它们的公式也很好写。
例如:A1234a-B5678b 字符串(假定在A1单元格),我们以“-”为分隔符,那么写下:
=TEXTAFTER(A1,"-"),回车。即可返回B5678b。
=TEXTBEFORE(A1,"-"),回车。即可返回A1234a。
非常简单吧!我们来对比一下传统的做法:
如果我们不用这个新函数,一般是这么做的:
第一步,找到“-”的位置=FIND("-",A1)
第二步,取“-”之前的字符串:=LEFT(A1,FIND("-",A1)-1)
或者取“-”之后的字符串:=RIGHT(A1,LEN(A1)-FIND("-",A1))
虽然理解起来并不难,但至少:①需要做两步的思考,②具体+1还是-1还是+0是需要用户花脑细胞默默思考一下的。因此,我们就发现TEXTAFTER() TEXTBEFORE()两个函数:
语法极其简单,十分好理解;
只需一步即可完成拆解,缩短了公式长度。
另,学弟发现,这个“分隔符”还可以是个字符串~~~
A1234a-B5678b 字符串,输入:
=TEXTBEFORE(A1,"5678") 结果为A1234a-B
功能强大又很好理解!讲完了,下课!
结束了,哈哈哈!
结束了?NO!!
学弟表示,以上这些个应用对于好学的你们,完全没有难度,接下来,正片开始,它们可是拥有6个参数的函数呀~ 学弟重点要跟大家讲讲这4个可选参数的用途:
第三个可选参数[搜索的方向],可以填写1或者-1
1 从前到后搜索(默认)
-1 从后到前搜索
这个功能主要是规避了源字符串中多个指定分隔符的情况。
第四个可选参数[是否区分大小写],可以填写0或者1
0 区分大小写(默认)
1 不区分大小写
这个功能主要是针对以字母作为指定分隔符的情况。
大小写这个我们先来讲,例如,A1234a-B5678b 字符串中,如果以“a”为分隔符,那么,在区分大小写模式下,只会找到一个a;如果不区分大小写,则会找到两个“a”。
=TEXTAFTER(A1,"a",,0) (区分大小写)结果为 1234a-B5678b
=TEXTAFTER(A1,"a",,1) (不区分大小写)结果为 -B5678b
这个大家理解起来应该没有问题吧!
然后我们讲解一下[搜索的方向],还是在 A1234a-B5678b 字符串中,以“a”为分隔符,假定我们都不区分大小写,这个字符串电脑会认为是“a1234a-b5678b”。
这时,如果我们从前到后搜索,会先找到第1位的“a”;
如果我们从后到前搜索,会先找到第6位的“a”。
因此:
=TEXTAFTER(A1,"a",1,1) (从前到后搜索,不区分大小写)结果为1234a-B5678b
=TEXTAFTER(A1,"a",-1,1) (从后到前搜索,不区分大小写)结果为-B5678b
大家有没有想过,如果我们没有找到这个指定的分隔符,会显示什么?
大家按照VLOOKUP等查找函数一贯的思维:应该是会显示#N/A吧。
是的!你没有猜错!
如果没有指定的分隔符,默认会显示#N/A。
但是,我们可以通过设置第六个可选参数[返回异常值],来进行设置返回的效果:
第六个可选参数[返回异常值]
在 A1234a-B5678b 字符串中,以“G”为字符串,那是肯定要报错的!
因此,
=TEXTAFTER(A1,"G") 结果为#N/A
=TEXTAFTER(A1,"G",,,,"没找到哦~") 结果为没找到哦~
这个功能真的是太贴心了!
直接省去了我
=IFNA(XXXXX,"没找到哦~")
=IFERROR(XXXXX,"没找到哦~")
这样长长的嵌套
学弟之前的函数教程一文讲透条件判断函数家族岂不是都要下架?!
接下来,我们一起来看看让学弟最谜的第五个可选参数:
第五个可选参数[结尾匹配],可以填写0或者1
0 - 不匹配到结尾(默认)
1 - 匹配到结尾
学弟祭出大招,拿清华的求学经历表示:每个字我都认识,但放在一起没看明白。
学弟将能想到的所有情况列了个遍!
因为,这个参数的默认值是0(不匹配),因此,只要选择了1(匹配),且结果与0(不匹配)得到的值不一致,证明这个参数起到了作用。然后学弟再去推测它可能得用途!
⏰ | (这就是清华学子孜孜不倦的求学态度!) |
哈哈,只要源字符串中包括的分隔符,结果就一致;只要源字符串中不包括的分隔符,结果就不一致——证明这个参数,对“找得到”不起作用、对“找不到起到”作用。
这一下子降低了一半的难度。我们再来分析下半区的结果:
因为“G”本身不存在于字符串中,因此无所谓“区分大小写”,又排除了两组,又降低了一半的难度。最后我们只需分析这两组结果:
学弟把字符串用MID+SEQUENCE函数拆成数组来看:
因此,学弟通过结果大胆推测:
结尾“匹配(1)”是告诉用户,如果你从头到尾(或者从尾到头)都没找到“分隔符”时,强制判定已经找到,再按照AFTER或者BEFORE的顺序,从左到右,给出结果,因此,尽管不存在这个分隔符,也一定不会报错。
结尾“不匹配(0,默认值)”是告诉用户,如果你从头到尾(或者从尾到头)都没找到“分隔符”时,那就算了,咱不找了!报错就报错,实事求是!
哈哈哈,花了一大半的笔墨,写了第五参数~
🔔 | 这一点是学弟通过试验推测出来的,可能与制作这个函数时的初衷有偏差,还请社区大佬们不吝赐教! |
如果你觉得今天的教程对你有帮助,欢迎在下方为我点一颗小红心💖💖💖哦!
同时,你也可以将感悟或者收获在下方留言,或者在评论区留下你的困惑,我会挑选有代表性的问题,推出更多的教程跟大家分享哦!
欢迎大家阅读我的其他文章:
✅【功能推荐】系列
✅【函数攻略】系列
✅【动态数组灰度测试】系列
动态数组行业案例:使用SEQUENCE/FILTER函数 × 动态数组 搞定三大高频场景
动态数组行业案例:使用SORTBY函数 × 动态数组 制作多功能成绩单
动态数组行业案例:使用UNIQUE函数 × 动态数组 多场景全能应用
动态数组行业案例:使用SEQUENCE函数 × 动态数组 生成动态序号
动态数组行业案例:使用XLOOKUP函数 × 动态数组 实现金牌查找(上)
动态数组行业案例:使用XLOOKUP函数 × 动态数组 实现金牌查找(下)
动态数组行业案例:使用RANDARRAY函数 × 动态数组 解决授课案例问题
动态数组行业案例:使用INDIRECT函数 × 动态数组制作二级下拉菜单
动态数组行业案例:使用TEXTJOIN函数 × 动态数组将字符串中的数字和汉字分开
✅【WPS AI办公】系列
✅【菁培班-函高一期PK赛】系列
✅【学习感悟】系列
创作者俱乐部成员
创作者俱乐部成员
创作者俱乐部成员
创作者俱乐部成员
创作者俱乐部成员
WPS函数专家