TEXT函数是使用频率非常高的文本函数之一,她只有两个参数,参数1是要处理的数字,参数2用于指定格式代码,与单元格数字格式中的大部分代码都基本相同。
有少部分代码仅适用于自定义格式,不能在TEXT函数中使用。例如:TEXT函数无法使用星号(*)来实现重复某个字符以填满单元格的效果。同时也无法实现以某种颜色显示数值的效果。
除此之外,设置单元格格式与TEXT函数还有以下区别:
① 设置单元格的格式,仅仅是数字显示外观的改变,其实质仍然是数值本身,不影响进一步的汇总计算,即得到的是显示的效果。
② 使用TEXT函数可以将数值转换为带格式的文本,其实质已经是文本,不再具有数值的特性,即得到的是实际的效果。
接下来咱们就通过几个简单的实例,一起来学习TEXT函数的常见用法:
1、简单的员工考评
下图展示的是某单位员工考核表的部分内容。需要根据考核分数进行评定,85分以上为良好,76分至85分为合格,小于等于75分则为不合格。
C2单元格输入以下公式,向下复制公式。
=TEXT(B2,”[>85]良好;[>75]合格;不合格”)
公式中使用的是包含自定义条件的三区段格式代码。格式代码的用法和自定义格式几乎是完全一样的。
2、转换日期格式
如下图所示 需要将A列的日期格式转换为中文格式的月份。
B2单元格输入以下公式,向下复制公式。
=TEXT(A2,”[DBnum1]m月”)
格式代码“m”用于提取A2单元格中的月份,再使用格式代码[DBnum1]将其转换为中文小写数字格式。
3、连接带有格式的内容
如下图所示,要连接A列姓名和B列的出生日期。
C2输入以下公式,向下复制。
=A2&TEXT(B2,” y年m月d日”)
首先使用TEXT函数,把B列的日期变成具有特定样式的字符串,然后再与A列的姓名连接,就变成了最终需要的样式。
4、取整的间隔小时数
计算两个时间的间隔小时数,不足一小时部分舍去,计算加班时经常会用到,说多了都是泪……
=TEXT(B2-B1,”[h]”)
5、提取出生年月
如下图所示,要根据B列身份证号码提取出生年月。
C2单元格公式为:
=–TEXT(MID(B2,7,8),”0-00-00″)
MID函数用于从字符串的指定位置开始,提取特定数目的字符串。
MID(B2,7,8)就是从B2单元格的第7位开始,提取8位数字,结果为:
19751226
再使用TEXT函数,将这个字符串变成”0-00-00″的样式,结果为”1975-12-26″。
这个时候,已经有了日期的模样,但是本身还是文本型的,所以再加上两个负号,也就是计算负数的负数,通过这么一折腾,就变成真正的日期序列了。
6、转换中文数字格式
如下图所示 需要将A列的中文小写数字转换为数值。
B2单元格输入以下数组公式,按<Ctrl+Shift+Enter>组合键。
=MATCH(A2,TEXT(ROW($1:$9999),”[DBnum1]”),)
ROW($1:$9999)用于生成1~9999的自然数序列。TEXT函数使用格式代码[DBnum1]将其全部转换为中文小写格式。再由MATCH函数从中精确查找A2单元格字符所处的位置,完成从中文大写到数值的转换。
公式适用于一至九千九百九十九的整数中文小写数字转换,可根据需要调整ROW函数的参数范围。
7、简化公式判断
如下图所示,要根据B~C列两年的数据,判断变化差异。
D2单元格输入以下公式:
=TEXT(C2-B2,”比上年多0元;比上年少0元;与上年相同”)
TEXT函数第二参数使用 “比上年多0元;比上年少0元;与上年相同”,意思是:
如果 C2-B2的结果大于0,就显示“比上年多n元”。
如果C2-B2的结果小于0,就显示“比上年少n元”。
如果 C2-B2的结果等于0,就显示“与上年相同”。
TEXT函数格式代码中的0有特殊含义,通常表示第一参数本身的数值。