使用Excel中的Text函数轻松驾驭文本数据处理

鉴水鱼技能说 2024-03-18 19:40:48

Excel作为一款功能强大的电子表格软件,广泛应用于各类数据处理和分析工作。其中有许多内置函数可以帮助我们更高效地处理数据,像Left、Right、Mid等函数就是常用的文本处理函数;而其中的文本处理类函数Text 函数因其参数少、易学易用而被广大用户所喜爱。下面跟鉴水鱼老师一起来学习Excel中的文本函数Text的基本用法,并通过实例演示其在数据处理中的强大功能。

一、Text 函数的基本用法

Text 函数的语法为:TEXT(value,format_text),其中 value 为数字值,format_text 为设置单元格格式中自己所要选用的文本格式。这个函数的主要功能是将数值转换成文本,使得数字可以以指定的格式显示。但需要注意的是,Text 函数产生的结果一定是文本,无法参与数值、日期类的计算。

例如,在工作中我们经常可以看到一些文本格式的日期,这样的日期在 Excel 中是不规范的,也无法直接作为日期参与计算。为了方便统计与分析,我们需要将文本日期转换为真正的日期。

这时,我们可以使用 Text 函数来实现。在 B2 单元格中输入公式=--TEXT(A2,"#-00-00")。

然后将 B 列单元格格式更改为日期格式,即可完成操作。

这里需要注意的是,直接修改 A 列的单元格格式为日期格式或者直接转化为数字是无法得到规范的日期格式的。

二、Text函数的经典实例讲解

【示例1】格式化员工工号

由于公司重组合并,需要对员工工号进行升级,不足8位的需要在工号前补0升成8位,升级后的工号前还需要有其所属的部门。

公式=A2&TEXT(B2,"00000000")

公式解析:TEXT(B2,"00000000")将原始工号升级为8位数的工号。

A2&TEXT(B2,"00000000")将部门名称与8位数工号合并。

【示例2】提取身份证号码中的性别和出生日期

身份证号码是我们在日常工作中经常需要处理的数据之一。由于身份证号码是文本格式的,要想从中提取数字信息,我们可以利用 Text 函数进行转换。

在 15 位身份证号码中,最后一位表示性别,男性为奇数,女性为偶数。而在 18 位身份证号码中,倒数第二位表示性别,同样是男性为奇数,女性为偶数。为了提取性别信息,我们可以使用以下公式:

=TEXT(MOD(MID(B2,15,3),2),"男;;女")。

这个公式的含义是:首先使用 MID 函数提取身份证号码中的相应位数(15 位身份证提取最后一位,18 位身份证提取倒数第三位),然后使用 MOD 函数判断提取的位数是奇数还是偶数,最后使用 Text 函数将结果转换为对应的性别文字。

注意:这里Text表示四种数据类型,常用方法为=text(数据,"正;负;零;文本")

另外,我们还可以使用 Text 函数来提取身份证号码中的出生日期。不管是 15 位还是 18 位身份证号码,出生日期都是从第 7 位开始的。区别在于 15 位身份证号码少了“19”,而 18 位身份证号码则直接表示年份。为了得到规范的日期格式,我们可以使用以下公式:

=--TEXT((LEN(B2)=15)*19&MID(B2,7,6+(LEN(B2)=18)*2),"0-00-00")。

这个公式的含义是:(LEN(B2)=15)*19,如果身份证号码为15位,则结果为1*19=19,如果身份证号码不是15位,则结果为0*19=0。

MID(B2,7,6+(LEN(B2)=18)*2)从身份证号码的第7位开始取值,如果为18位,那么截取的位数就=6+1*2=8,如果为15位,那么截取的位数就是6+0*2=6。刚好实现了18位截取8位、15位截取6位的目的。

15位最后的结果:19与截取的6位合并,例如A4单元格,19690626。

18位最后的结果:0与截取的8位合并,例如A2单元格,019870623。

TEXT((LEN(B2)=15)*19&MID(B2,7,6+(LEN(B2)=18)*2),"0-00-00")将字符串19690626转变为1969-06-26这样的格式,再通过--负负得正的运算将文本字符转换为日期字符。

最后再通过设置单元格格式,将数字格式设置为日期,最后年月日就计算出来了。

【示例3】阿拉伯数字转换为中文大小写数字

在实际工作中,我们可能会遇到需要把数字表示的年、月、日转换为中文的年、月、日,例如2017年转换为“二〇一七年”或“贰零壹柒年”。

公式解析:[DBNum1]是中文小写格式,[DBNum2]是中文大写格式。

[DBNum1]后面加0表示让数字逐位显示。

加0与不加0区别如下:

还有一种是大小写金额的转换,在工作中也非常常见。

公式=TEXT(A11*100,"[DBNum2]0亿0仟0佰0拾0万0仟0佰0拾0元0角0分")

【示例4】累计加班时间

下图为某员工上半月每天的加班时长,现需要计算加班总时长。如果使用公式=SUM(B2:B16)得出来的结果为18:35(实际为42:35),显然是错误的。

这是因为单元格自动把超过24小时的时间进位到天了,而结果只显示小于24小时的时间。

所以,我们需要借助Text公式=TEXT(SUM(B2:B16),"[h]:mm"),阻止单元格自动把超过24小时的时间进位到天,只以时间累计。

【示例5】自动判断盈亏、评定等级

一提到盈亏、等级,可能很多首先想到的是IF函数,其次是LOOKUP函数,其实Text函数也可以判断盈亏、评定等级。

公式=TEXT(B2,"[>90]!优秀;[<80]!不及格;及格")

可以用=text(数据,"正;负;零;文本")判断盈亏,公式=TEXT(B2,"增加¥0元;减少¥0元;持平;缺岗")

【示例6】与SUM函数组合使用

现有公司3月份和4月份每天的销售额,需要计算3月和4月份的销售总额。

在E3单元格输入公式=SUM((TEXT($A$2:$A$21,"YYYYMM")=TEXT(D3,"YYYYMM"))*$B$2:$B$21)

同时按下ctrl+shift+enter键,得到3月份的销售总额。

公式解析:TEXT($A$2:$A$21,"YYYYMM")是将日期单元格转化为“201703”和“201704”的形式。TEXT(D3,"YYYYMM")也是将2017年3月转换为“201703”。

如果TEXT($A$2:$A$21,"YYYYMM")和TEXT(D3,"YYYYMM")相等的话(同时为201703),则返回值为1,否则返回值为0。

SUM((TEXT($A$2:$A$21,"YYYYMM")=TEXT(D3,"YYYYMM"))*$B$2:$B$21)是对所有返回值为1所对应的B列销售额进行求和。

总之,Text 函数在 Excel 数据处理中发挥着重要作用,通过掌握其基本用法和灵活运用各种公式技巧,我们可以更加高效地完成各类数据处理任务。希望本次学习能够帮助大家更好地理解和使用 Text 函数。

我是鉴水鱼老师,关注我,持续分享更多Excel技巧

5 阅读:400