分享

27嘿!没想到TEXT函数还能这么用~

 asaser 2022-05-13

TEXT函数是Excel中最常用的文本函数之一,作用是按不同区间对数据格式化。今天给大家分享一个该函数开脑洞的用法。

如下图所示,A列有一段数据,包含了姓名、科目、成绩和评级等,不同数据之间被短横杠分隔。

图片

假设我们现在需要获取科目的信息。

通常我们会使用FILTERXML函数,又或者TRIM+SUBSTITUTE的套路:

TRIM函数 

=TRIM(MID(SUBSTITUTE(A2,"-",REPT(" ",99)),99,99))

FILTERXML函数▼

=FILTERXML("<a><b>"&SUBSTITUTE(A2,"-","</b><b>")&"</b></a>","a/b[2]")

这两种解法往期教程都有详细讲解,如果你感兴趣,可以点击以上👆函数名称查阅。

再给大家分享一个乍看起来有点儿奇怪的TEXT函数解法:

TEXT函数 

=TEXT(-1,""""&SUBSTITUTE(A2,"-",""";""")&"""")

这条TEXT函数有两个参数,一个是-1,另外一个是嵌套函数:

""""&SUBSTITUTE(A2,

"-",""";""")&""""

SUBSTITUTE函数将A2单元格值中的-替换为";",然后在替换结果前后各增加一个半角双引号,返回一个字符串:

"看见星光";"语文";"99";"优秀"

之所以将-替换为;是因为TEXT函数的第2参数表示自定义格式它被系统默认划分为了4个区间,不同区间以分号间隔,每个区间分别对应了正数;负数;零;文本

"看见星光";"语文";"99";"优秀"表达的意思是,如果是TEXT第1参数是正数,就返回看见星光;如果是负数就返回语文;如果是零,就返回99;如果是文本就返回优秀。

由于上面的TEXT函数第1参数是-1,因此返回负数区间对应的结果:语文。

同样的道理,只需要调整TEXT函数第1参数的值,即可获取不同区间的结果。

获取成绩,第1参数设置为0:

=TEXT(,""""&SUBSTITUTE(A2,"-",""";""")&"""")

获取评级,第1参数设置为文本:

=TEXT("",""""&SUBSTITUTE(A2,"-",""";""")&"""")

获取姓名,第1参数设置为正数:

=TEXT(1,""""&SUBSTITUTE(A2,"-",""";""")&"""")

同时获取姓名、科目、成绩和等级,也就是将A列数据按分隔符"-"拆分到B~E列,可以选中B2:E2输入以下区域数组公式,向下复制填充即可:

区域数组公式 ▼

=TEXT({1,-1,0,""},

""""&SUBSTITUTE(

A2,"-",""";""")&"""")

图片

上述TEXT的第1参数是一个常量数组{1,-1,0,""},包含了正数、负数、零和文本,也就分别返回第2参数对应区间的值。

摊手,是不是有学到?

最后,不要问我为什么用函数拆分数据,而不是用分列或快速填充,这两种方式…甚至还有VBA/PQ等多种方式之间的区别咱们解释了千百遍了听一首歌,同时空的陌生人呀,咱们下期再见~!


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多