百变神君Text的6个使用场景,你会几个
与 30万 读者一起学Excel
卢子:Text一个很神奇的函数,可以将数据变化成你想看到的任何形式,有万能函数之称。
网友:万能?这么牛逼,真想好好见识下。
卢子:N年前在日企工作,经常会写一些日语格式的星期几、数字、日期,你们觉得输入这些是不是很麻烦?
网友:看都看不懂,别说输入了,那你日语一定很厉害吧,经常输入这些。
卢子:其实我有一个秘密一直没跟外人说,我压根儿不会日语,也很少用有道词典翻译。
网友:那你怎么输入这些?
卢子:我是借助自定义单元格格式跟Text函数而搞定这些,下面开始了解一些Text的基础,最后我再将我的绝招说出来。
万能当然是夸张的说法,但确实很强大。其实,Text的宗旨就是将自定义格式体现在最终结果里。Text函数主要是将数字转换为文本。当然,也可以对文本进行一定的处理。
TEXT函数的语法:TEXT(值,要显示的文本格式)
Text返回的一律都是文本形式的数据。如果需要计算,可以先将文本转换为数值,然后再计算。文本型数值遇到四则运算会自动转为数值,比如+0。但文本会不参与Sum之类的函数运算。
例子1 Text函数基本的数字处理方式。
=TEXT(12.34,"0")
=TEXT(12.34,0)
含义是将数字12.34四舍五入到个位,然后以文本方式输出结果,当只有一个0的时候,引号可以不加。
=TEXT (12.34,"0.0")
得到12.3,可以看到效果是保留一位小数。小数点后写几个0,就是设置多少位小数。
"0":数字占位符。如果单元格的内容大于占位符,则显示实际数字,如果小于占位符的数量,则用0补足。
=TEXT (12.34,"00000")
就显示为:00012。
"#":数字占位符。只显有意义的零而不显示无意义的零。小数点后数字如大于"#"的数量,则按"#"的位数四舍五入。
=TEXT(12.34,"#####")
就显示为:12。如果设置为"###.##",12.1显示为12.10;12.1263显示为:12.13。
"0,0":里面的逗号是千分符。
=TEXT(123456,"0,0")
就显示成123,456。
"G/通用格式":以常规的数字显示。例如:10显示为10;10.1显示为10.1。
另外,前导0的效果,想显示几位就写几个0,也可以配合Rept函数来写,REPT(字符,N),重复N次显示字符,比如REPT(6,3)就是666。就是一个为数据前面加0的效果。
=TEXT(D2,REPT(0,D2))
例子2 Text在日期时间处理方面的应用。
先说说日期这种特殊的数据类型,日期2010/5/25,其实是数字40323。
=TEXT(40323,"yyyy/m/d")
可以显示2010/5/25。Text是把日期所代表的真正的数字,来转成所需要的日期格式的文本。而20100525,要显示2010/05/25的话,要用上面介绍的0的方法:
=TEXT(20100525,"0!/00!/00")
如果分隔符号用-就不需要加!。!就是强制显示某字符,后面的案例会说。
=TEXT(20100525,"0-00-00")
公式中:yyyy可以用e来代替。mm,表示显示两位月份,m显示一位。中间的连接号,还可以换成其他。
text的结果是文本,如果text返回"2010/05/25"的话,再去设置格式就改变不了的。
例子3 Text表示四种数据类型。
=text(数据,"正;负;零;文本")
text里面可以表示四种数据类型。正数、负数、零与文本,用分号隔开。根据数据的类型,返回对应位置里的格式。
没有分号,代表一种格式。
2个分号:表示单元格为两种格式:分号前面为正数和0;分号后面为负数。
3个分号:表示单元格为三种格式:第1部分用于正数,第2部分用于负数,第3部分用于0值。比如"0;-0;",将只显示正数和负数,但不显示0;最后一个分号不能省略,如果写成"0;-0"表示的是不一样的含义。
=text(数据,"1;2;3;@")
@是文本的通配符,相当于数值中的0。
=text(数据,"1;2;3;@")
=if(数据>0,1,if(数据<0,2,3))
这两种是一样的。
当数据大于0,返回1;小于0,返回2;等于0,返回3,是文本的话,返回其本身。根据分号内的格式自动分配。
=text(数据,"1;;;")
这种,分号内没有要显示的格式了,结果就显示空。也就是,当数据大于0时,显示1,其余显示为空。3分号,四类型。
例子4 强制符号方面的应用。
=TEXT(A2,"0;!0;0;!0")
强制符号!有了它就可以强制显示0了。大于0,显示本身,其他显示0。
例5 条件判断方面的应用。
效果1
=TEXT(A2,"[>10]0;1")
=IF(A2>10,A2,1)
效果2
=TEXT(B2,"[>50]a;[>10]b;c")
=IF(A2>50,"a",IF(A2>10,"b","c"))
text很经典的用法就是在条件判断方面。因为可以省字符,数组公式中常用。条件需要用中括号括起来。这时,分号的作用就不是隔开正数、负数、零了。条件判断的顺序,是先左后右,如同if函数一样。
例6 中文数字中的应用。
效果1
=TEXT(A2,"[dbnum1]")
效果2
=TEXT(A2,"[dbnum2]")
效果3
=TEXT(A2,"[dbnum3]")
网友:头大了,这么多,那里记得住。
卢子:你会自定义单元格格式吗?
网友:这个会。
卢子:前面说了那么多,只是让大家有一个初步的了解,知道Text函数可以做什么。这么多用法其实我也记不住,也无需记忆。
输入任意一个数字,设置单元格格式为货币格式,然后查看自定义格式,复制自定义格式,输入
=TEXT(23,”¥#,##0.00;¥-#,##0.00”)
利用同样的方法,哪一种格式不会就设置单元格格式,再查看自定义格式代码,这样可以减轻我们的记忆负担。
现在到了应该解开最开始留下的那个日文输入法的时候了。
默认情况下,在特殊这个格式对应的区域设置,中文(中国),但实际上这里是允许选择任意国家的语言的。如果你选择日语,在类型这里就出现很多跟日语有关的数字格式,你只要选择这些就可以尝试一些设置。
善于借助一切可以为我们减去记忆负担的方法,这样学习起来就变得更加轻松。
[DBNum2][$-411]aaaa
[DBNum2][$-411]G/通用格式
[DBNum2][$-411]yyyy/m/d
网友:以前以为看到这些都要记住,原来很多都藏在自定义里,还有这个区域设置还第一次知道,以前从没注意过这个问题,长见识了。
卢子:学习这些要有好奇心,有空点开一些你从没点击过的功能来看看,也许会发现很多你意想不到的功能。惊喜就由此产生。
作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)