使用频率最高的文本函数 TEXT函数
TEXT函数是使用频率非常高的文本函数之一,她只有两个参数,参数1是要处理的数字,参数2用于指定格式代码,与单元格数字格式中的大部分代码都基本相同。
设置单元格格式与TEXT函数还有以下区别:
① 设置单元格的格式,仅仅是数字显示外观的改变,其实质仍然是数值本身,不影响进一步的汇总计算,即得到的是显示的效果。
② 使用TEXT函数可以将数值转换为带格式的文本,其实质已经是文本,不再具有数值的特性,即得到的是实际的效果。
接下来咱们就通过几个简单的实例,一起来学习TEXT函数的常见用法:
1、简单的员工考评
下图展示的是某单位员工考核表的部分内容。需要根据考核分数进行评定,85分以上为良好,76分至85分为合格,小于等于75分则为不合格。
C2单元格输入以下公式,向下复制。
=TEXT(B2,"[>85]良好;[>75]合格;不合格")
公式中使用的是包含自定义条件的三区段格式代码。格式代码的用法和自定义格式几乎是完全一样的。
2、转换日期格式
如下图所示 需要将B列的日期格式转换为中文格式的月份。
C2单元格输入以下公式,向下复制。
=TEXT(B2,"[DBnum1]m月")
格式代码“m”用于提取B2单元格中的月份,再使用格式代码[DBnum1]将其转换为中文小写数字格式。
3、计算伊斯兰历日期
如下图所示,要根据B列的出生日期,计算出伊斯兰历的日期。
C2单元格输入以下公式,向下复制。
=TEXT(B2-1,"B2 e年m月d日")
格式代码中的B2用于控制之后的 y,m,d 等日期格式代码所采用的日期形式。
4、计算日本年号
如下图所示,要根据B列的入职日期,计算出带日本年号的日期。
C2单元格输入以下公式,向下复制。
=TEXT(B2,"[$-411]ggg y年m月d日")
5、连接带有格式的内容
如下图所示,要连接A列姓名和B列的出生日期。
C2单元格输入以下公式,向下复制。
=A2&TEXT(B2," y年m月d日")
首先使用TEXT函数,把B列的日期变成具有特定样式的字符串,然后再与A列的姓名连接,就变成了最终需要的样式。
6、取整的间隔小时数
计算两个时间的间隔小时数,不足一小时部分舍去。
D2单元格输入以下公式,向下复制:
=TEXT(C2-B2,"[h]")
在格式代码中使用[h],表示得到取整后的小时。
7、提取出生年月
如下图所示,要根据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"。
这个时候,已经有了日期的模样,但是本身还是文本型的,所以再加上两个负号,也就是计算负数的负数,通过这么一折腾,就变成真正的日期序列了。
8、简化公式判断
如下图所示,要根据B~C列两年的数据,判断变化差异。
D2单元格输入以下公式:
=TEXT(C2-B2,"比上年多0元;比上年少0元;与上年相同")
TEXT函数第二参数使用"比上年多0元;比上年少0元;与上年相同",意思是:
如果C2-B2的结果大于0,就显示“比上年多n元”。
如果C2-B2的结果小于0,就显示“比上年少n元”。
如果C2-B2的结果等于0,就显示“与上年相同”。
TEXT函数格式代码中的0有特殊含义,通常表示第一参数本身的数值。
9、批量清除字符
如下图所示,要根据A列的测量数据,清除掉等号之后表示单位的字符。
B2单元格输入以下公式,向下复制:
=TEXT(,SUBSTITUTE(A2,"=","=*"))
首先使用SUBSTITUTE函数将A2单元格中的等号“=”全部替换为“=*”,再将替换后的内容作为TEXT函数的第二参数。
在TEXT函数的第二参数中使用星号时,表示要将星号之后的一个半角字符删除。