excel函数技巧:函数TEXT七助数据大变身
如果函数有职业,那各函数的职业会是什么呢?别的先不说,就拿TEXT而言,它可以让日期变数字、数字变日期、阿拉伯数字变大写中文数字、金额元变万元,连IF的条件判断它也可以变出来…这简直就是当之无愧的变装女皇啊!
变装一:八位数字变成日期
很多公司都会使用ERP系统,某些系统中的日期是以8位数字的形式呈现的,当我们导出系统中的数据时,很可能会看到这样的情况:
使用这样的日期去做数据分析是不便的,需要将其变成标准的日期格式才行,请看TEXT的表演:
公式解读:=TEXT(A2,"0年00月00日")
A2是需要处理的数据,奥秘在"0年00月00日"这一部分,0是占位符,使用年月日将8位数字分成三段。需要注意的是划分从右往左进行,首先将A列最右边的两位数字当作“日”,然后挨着的左边两位当作“月”,最后剩下的四位数字只需要一个0就可以代表,这四位数字当作“年”。
这个公式完整的写法是:=TEXT(A2,"0000年00月00日"),这样八位日期数字就能看明白了!
变装二:日期变成八位数字
在某些时候,还会遇到将日期变成八位数字的情况,既然TEXT能把八位数字变成日期,那么再变回去当然没问题了:
公式解读:=TEXT(H2,"emmdd")
H2是要处理的数据,不同的是后面的格式代码相比上次完全不同了。
在第一个例子中,我们要处理的数据源是数字,因此用到了数字占位符0。但在这个例子中,数据源是日期,就不能用0了。e表示“年”,也可以用yyyy代替,m表示“月”,d表示“日”。一个e就是四位,再加上两个m和两个d,刚好就是8位。
变装三:拆分日期和时间
把数字和日期之间的戏法耍过之后,来看看TEXT是如何拆分日期和时间的。
这种情况常见于考勤数据:
只有把打卡日期和时间分开才好做进一步的统计,TEXT真的可以办到吗?
拆分日期:
公式解析:=TEXT(B2,"e/m/d")
e表示年,m表示月,d表示日,很好理解。
拆分时间:
公式解析:=TEXT(B2,"h:mm:ss")
h表示时,m表示分,s表示秒。
戏法揭穿了其实一点也不难。
但是你可千万别以为懂得这几个代码就能看穿TEXT,不信往下看……
变装四:数字变大写中文
这个戏法变得怎么样!
公式解析:=TEXT(A2,"[DBNUM2]")
DBNUM2是针对于数字的特定代码,需要放在一对中括号中。数字2还可以改成1和3,具体是什么效果你可以试试看,记得留言告诉大家你测试的结果哦!
对了,改成4也是可以的,至于5、6、7……
看到这一个例子,做财务工作的朋友估计会有想法了,能不能用TEXT函数将会计报表中的金额变成包含圆角分的大写金额呢?
变装五:金额元变万元
连阿拉伯数字都能变成中文大写数字,金额元变成万元就更不在话下了:
公式解析:=TEXT(A2,"0!.0000万元")
和第一个例子一样,0还是占位符,不过这里多了一个感叹号。如果没有感叹号,"0.0000"表示数字保留四位小数。在TEXT的秘密武器中,感叹号用于在原有内容的某个位置强制增加感叹号后的字符,所以我们在单元格中看到的那个小数点其实是在原数据千位数字左边强行加进去的,最后加上“万元”这个后缀,就变成这样的效果了。
如果你觉得四位小数太多了,还可以保留一位小数:
公式解析:=TEXT(A2,"0!.0,万元")
在这个公式中,特定代码中间出现了一个逗号。这个逗号其实就是数字格式中的千位分隔符:
使用了千位分隔符后,数字就缩小了千倍,相当于变成以千元计的数字,因此只需要在最后一位数字的前面显示小数点就能变成万元计的数字。
什么!还想要两位小数的……
这个要求虽说有些为难TEXT,但也不是不行。在之前的例子中,还从来没有对第一参数动过手脚,只是在玩格式代码,现在看来不出绝招是不行了:
公式解析:=TEXT(A2%%,"0.00万元")
A2后面加两个百分号,表示对单元格A2中的数字除以10000。既然已经对数据源做了手脚,格式代码自然就不需要感叹号了,直接按照数字的设置规则去做就好了。0.00表示以两位小数显示,当然也可以用0.0、0.000、0.0000去设置不同的小数位。
变装六:抢IF的风头做条件判断
在日期、时间、数字、金额这些地方耍了一圈的TEXT,这次又跑到了IF的领域,连IF函数的风头也想抢:
看上去表现还不错,这又是什么套路呢?
公式解析:=TEXT((A2-B2)/A2,"上升0%;下降0%;持平;")
这次TEXT没有使用格式代码,而是用了一个新道具:分号。使用分号后,TEXT函数可以做条件判断。
第一种,默认判断:
套路是TEXT(数据,">0结果;<0结果;=0结果;文本的结果")。TEXT默认把数据分成四种类型,正数、负数、零与文本,不同的类型返回不同的结果。参数中各个结果之间依次用分号隔开。参数中第一个分号前的值是正数的返回值;第二个分号前的值是负数的返回值;第三个分号前的值是零的返回值,最后一个值是文本的返回值。
当(A2-B2)/A2为正数时,显示上升和百分比的增长率;为负数时,显示下降和百分比的下降率;为零时,显示持平。
第二种,运算符判断:
实际上TEXT函数还支持用比较运算符作为判断的条件,例如成绩大于等于85分为优秀,大于等于60分为及格,60以下为不及格,使用TEXT的公式是这样的:=TEXT(F2,"[>=85]优秀;[>=60]合格;不合格")
在这种用法中,条件要放在中括号内,括号后面紧跟要显示的内容。最后使用分号作为一组条件和结果的分隔符。
一个TEXT函数条件最多可以使用3个条件,如果多于3个条件,则返回错误值#VALUE!。对于一些简单的判断问题,使用TEXT函数不仅比IF更为简短,而且看起来更高大上呢。