文本日期时间函数.docx
- 文档编号:24256525
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:16
- 大小:171.26KB
文本日期时间函数.docx
《文本日期时间函数.docx》由会员分享,可在线阅读,更多相关《文本日期时间函数.docx(16页珍藏版)》请在冰豆网上搜索。
文本日期时间函数
Preparedon22November2020
文本日期时间函数
Excel函数应用之文本/日期/时间函数
(陆元婕 2001年06月05日09:
40)
编者语:
Excel是办公室自动化中非常重要的一款软件,很多巨型国际企业都是依靠Excel进行数据管理。
它不仅仅能够方便的处理表格和进行图形分析,其更强大的功能体现在对数据的自动处理和计算,然而很多缺少理工科背景或是对Excel强大数据处理功能不了解的人却难以进一步深入。
编者以为,对Excel函数应用的不了解正是阻挡普通用户完全掌握Excel的拦路虎,然而目前这一部份内容的教学文章却又很少见,所以特别组织了这一个《Excel函数应用》系列,希望能够对Excel进阶者有所帮助。
《Excel函数应用》系列,将每周更新,逐步系统的介绍Excel各类函数及其应用,敬请关注!
所谓文本函数,就是可以在公式中处理文字串的函数。
例如,可以改变大小写或确定文字串的长度;可以替换某些字符或者去除某些字符等。
而日期和时间函数则可以在公式中分析和处理日期值和时间值。
关于这两类函数的列表参看附表,这里仅对一些常用的函数做简要介绍。
一、文本函数
(一)大小写转换
LOWER--将一个文字串中的所有大写字母转换为小写字母。
UPPER--将文本转换成大写形式。
PROPER--将文字串的首字母及任何非字母字符之后的首字母转换成大写。
将其余的字母转换成小写。
这三种函数的基本语法形式均为函数名(text)。
示例说明:
已有字符串为:
pLeaseComEHere!
可以看到由于输入的不规范,这句话大小写乱用了。
通过以上三个函数可以将文本转换显示样式,使得文本变得规范。
参见图1
Lower(pLeaseComEHere!
)=pleasecomehere!
upper(pLeaseComEHere!
)=PLEASECOMEHERE!
proper(pLeaseComEHere!
)=PleaseComeHere!
图1
(二)取出字符串中的部分字符
●
●
●
您可以使用Mid、Left、Right等函数从长字符串内获取一部分字符。
具体语法格式为
LEFT函数:
LEFT(text,num_chars)其中Text是包含要提取字符的文本串。
Num_chars指定要由LEFT所提取的字符数。
MID函数:
MID(text,start_num,num_chars)其中Text是包含要提取字符的文本串。
Start_num是文本中要提取的第一个字符的位置。
RIGHT函数:
RIGHT(text,num_chars)其中Text是包含要提取字符的文本串。
Num_chars指定希望RIGHT提取的字符数。
比如,从字符串"Thisisanapple."分别取出字符"This"、"apple"、"is"的具体函数写法为。
LEFT("Thisisanapple",4)=This
RIGHT("Thisisanapple",5)=apple
MID("Thisisanapple",6,2)=is
图2
(三)去除字符串的空白
在字符串形态中,空白也是一个有效的字符,但是如果字符串中出现空白字符时,容易在判断或对比数据是发生错误,在Excel中您可以使用Trim函数清除字符串中的空白。
语法形式为:
TRIM(text)其中Text为需要清除其中空格的文本。
需要注意的是,Trim函数不会清除单词之间的单个空格,如果连这部分空格都需清除的话,建议使用替换功能。
比如,从字符串"MynameisMary"中清除空格的函数写法为:
TRIM("MynameisMary")=MynameisMary参见图3
图3
(四)字符串的比较
在数据表中经常会比对不同的字符串,此时您可以使用EXACT函数来比较两个字符串是否相同。
该函数测试两个字符串是否完全相同。
如果它们完全相同,则返回TRUE;否则,返回FALSE。
函数EXACT能区分大小写,但忽略格式上的差异。
利用函数EXACT可以测试输入文档内的文字。
语法形式为:
EXACT(text1,text2)Text1为待比较的第一个字符串。
Text2为待比较的第二个字符串。
举例说明:
参见图4
EXACT("China","china")=False
图4
二、日期与时间函数
在数据表的处理过程中,日期与时间的函数是相当重要的处理依据。
而Excel在这方面也提供了相当丰富的函数供大家使用。
(一)取出当前系统时间/日期信息
用于取出当前系统时间/日期信息的函数主要有NOW、TODAY。
语法形式均为函数名()。
(二)取得日期/时间的部分字段值
如果需要单独的年份、月份、日数或小时的数据时,可以使用HOUR、DAY、MONTH、YEAR函数直接从日期/时间中取出需要的数据。
具体示例参看图5。
比如,需要返回2001-5-3012:
30PM的年份、月份、日数及小时数,可以分别采用相应函数实现。
YEAR(E5)=2001
MONTH(E5)=5
DAY(E5)=30
HOUR(E5)=12
图5
此外还有更多有用的日期/时间函数,可以查阅附表。
下面我们将以一个具体的示例来说明Excel的文本函数与日期函数的用途。
三、示例:
做一个美观简洁的人事资料分析表
1、示例说明
在如图6所示的某公司人事资料表中,除了编号、员工姓名、身份证号码以及参加工作时间为手工添入外,其余各项均为用函数计算所得。
图6
在此例中我们将详细说明如何通过函数求出:
(1)自动从身份证号码中提取出生年月、性别信息。
(2)自动从参加工作时间中提取工龄信息。
2、身份证号码相关知识
在了解如何实现自动从身份证号码中提取出生年月、性别信息之前,首先需要了解身份证号码所代表的含义。
我们知道,当今的身份证号码有15/18位之分。
早期签发的身份证号码是15位的,现在签发的身份证由于年份的扩展(由两位变为四位)和末尾加了效验码,就成了18位。
这两种身份证号码将在相当长的一段时期内共存。
两种身份证号码的含义如下:
(1)15位的身份证号码:
1~6位为地区代码,7~8位为出生年份(2位),9~10位为出生月份,11~12位为出生日期,第13~15位为顺序号,并能够判断性别,奇数为男,偶数为女。
(2)18位的身份证号码:
1~6位为地区代码,7~10位为出生年份(4位),11~12位为出生月份,13~14位为出生日期,第15~17位为顺序号,并能够判断性别,奇数为男,偶数为女。
18位为效验位。
3、应用函数
在此例中为了实现数据的自动提取,应用了如下几个Excel函数。
(1)IF函数:
根据逻辑表达式测试的结果,返回相应的值。
IF函数允许嵌套。
语法形式为:
IF(logical_test,value_if_true,value_if_false)
(2)CONCATENATE:
将若干个文字项合并至一个文字项中。
语法形式为:
CONCATENATE(text1,text2……)
(3)MID:
从文本字符串中指定的起始位置起,返回指定长度的字符。
语法形式为:
MID(text,start_num,num_chars)
(4)TODAY:
返回计算机系统内部的当前日期。
语法形式为:
TODAY()
(5)DATEDIF:
计算两个日期之间的天数、月数或年数。
语法形式为:
DATEDIF(start_date,end_date,unit)
(6)VALUE:
将代表数字的文字串转换成数字。
语法形式为:
VALUE(text)
(7)RIGHT:
根据所指定的字符数返回文本串中最后一个或多个字符。
语法形式为:
RIGHT(text,num_chars)
(8)INT:
返回实数舍入后的整数值。
语法形式为:
INT(number)
4、公式写法及解释(以员工Andy为例说明)
说明:
为避免公式中过多的嵌套,这里的身份证号码限定为15位的。
如果您看懂了公式的话,可以进行简单的修改即可适用于18位的身份证号码,甚至可适用于15、18两者并存的情况。
(1)根据身份证号码求性别
=IF(VALUE(RIGHT(E4,3))/2=INT(VALUE(RIGHT(E4,3))/2),"女","男")
公式解释:
a.RIGHT(E4,3)用于求出身份证号码中代表性别的数字,实际求得的为代表数字的字符串
b.VALUE(RIGHT(E4,3)用于将上一步所得的代表数字的字符串转换为数字
c.VALUE(RIGHT(E4,3))/2=INT(VALUE(RIGHT(E4,3))/2用于判断这个身份证号码是奇数还是偶数,当然你也可以用Mod函数来做出判断。
d.=IF(VALUE(RIGHT(E4,3))/2=INT(VALUE(RIGHT(E4,3))/2),"女","男")及如果上述公式判断出这个号码是偶数时,显示"女",否则,这个号码是奇数的话,则返回"男"。
(2)根据身份证号码求出生日期
=CONCATENATE("19",MID(E4,7,2),"/",MID(E4,9,2),"/",MID(E4,11,2))
公式解释:
a.MID(E4,7,2)为在身份证号码中获取表示年份的数字的字符串
b.MID(E4,9,2)为在身份证号码中获取表示月份的数字的字符串
c.MID(E4,11,2)为在身份证号码中获取表示日期的数字的字符串
d.CONCATENATE("19",MID(E4,7,2),"/",MID(E4,9,2),"/",MID(E4,11,2))目的就是将多个字符串合并在一起显示。
(3)根据参加工作时间求年资(即工龄)
=CONCATENATE(DATEDIF(F4,TODAY(),"y"),"年",DATEDIF(F4,TODAY(),"ym"),"个月")
公式解释:
a.TODAY()用于求出系统当前的时间
b.DATEDIF(F4,TODAY(),"y")用于计算当前系统时间与参加工作时间相差的年份
c.DATEDIF(F4,TODAY(),"ym")用于计算当前系统时间与参加工作时间相差的月份,忽略日期中的日和年。
d.=CONCATENATE(DATEDIF(F4,TODAY(),"y"),"年",DATEDIF(F4,TODAY(),"ym"),"个月")目的就是将多个字符串合并在一起显示。
5.其他说明
在这张人事资料表中我们还发现,创建日期:
31-05-2001时显示在同一个单元格中的。
这是如何实现的呢难道是手工添加的吗不是,实际上这个日期还是变化的,它显示的是系统当前时间。
这里是利用函数TODAY和函数TEXT一起来创建一条信息,该信息包含着当前日期并将日期以"dd-mm-yyyy"的格式表示。
具体公式写法为:
="创建日期:
"&TEXT(TODAY(),"dd-mm-yyyy")
至此,我们对于文本函数、日期与时间函数已经有了大致的了解,同时也设想了一些应用领域。
相信随着大家在这方面的不断研究,会有更广泛的应用。
附一:
文本函数
函数名
函数说明
语法
ASC
将字符串中的全角(双字节)英文字母更改为半角(单字节)字符。
ASC(text)
CHAR
返回对应于数字代码的字符,函数CHAR可将其他类型计算机文件中的代码转换为字符。
CHAR(number)
CLEAN
删除文本中不能打印的字符。
对从其他应用程序中输入的字符串使用CLEAN函数,将删除其中含有的当前操作系统无法打印的字符。
例如,可以删除通常出现在数据文件头部或尾部、无法打印的低级计算机代码。
CLEAN(text)
CODE
返回文字串中第一个字符的数字代码。
返回的代码对应于计算机当前使用的字符集。
CODE(text)
CONCATENATE
将若干文字串合并到一个文字串中。
CONCATENATE(text1,text2,...)
DOLLAR
依照货币格式将小数四舍五入到指定的位数并转换成文字。
DOLLAR或RMB(number,decimals)
EXACT
该函数测试两个字符串是否完全相同。
如果它们完全相同,则返回TRUE;否则,返回FALSE。
函数EXACT能区分大小写,但忽略格式上的差异。
利用函数EXACT可以测试输入文档内的文字。
EXACT(text1,text2)
FIND
FIND用于查找其他文本串(within_text)内的文本串(find_text),并从within_text的首字符开始返回find_text的起始位置编号。
FIND(find_text,within_text,start_num)
FIXED
按指定的小数位数进行四舍五入,利用句点和逗号,以小数格式对该数设置格式,并以文字串形式返回结果。
FIXED(number,decimals,no_commas)
JIS
将字符串中的半角(单字节)英文字母或片假名更改为全角(双字节)字符。
JIS(text)
LEFT
LEFT基于所指定的字符数返回文本串中的第一个或前几个字符。
LEFTB基于所指定的字节数返回文本串中的第一个或前几个字符。
此函数用于双字节字符。
LEFT(text,num_chars)
LEFTB(text,num_bytes)
LEN
LEN返回文本串中的字符数。
LENB返回文本串中用于代表字符的字节数。
此函数用于双字节字符。
LEN(text)
LENB(text)
LOWER
将一个文字串中的所有大写字母转换为小写字母。
LOWER(text)
MID
MID返回文本串中从指定位置开始的特定数目的字符,该数目由用户指定。
MIDB返回文本串中从指定位置开始的特定数目的字符,该数目由用户指定。
此函数用于双字节字符。
MID(text,start_num,num_chars)
MIDB(text,start_num,num_bytes)
PHONETIC
提取文本串中的拼音(furigana)字符。
PHONETIC(reference)
PROPER
将文字串的首字母及任何非字母字符之后的首字母转换成大写。
将其余的字母转换成小写。
PROPER(text)
REPLACE
REPLACE使用其他文本串并根据所指定的字符数替换某文本串中的部分文本。
REPLACEB使用其他文本串并根据所指定的字符数替换某文本串中的部分文本。
此函数专为双字节字符使用。
REPLACE(old_text,start_num,num_chars,new_text)
REPLACEB(old_text,start_num,num_bytes,new_text)
REPT
按照给定的次数重复显示文本。
可以通过函数REPT来不断地重复显示某一文字串,对单元格进行填充。
REPT(text,number_times)
RIGHT
RIGHT根据所指定的字符数返回文本串中最后一个或多个字符。
RIGHTB根据所指定的字符数返回文本串中最后一个或多个字符。
此函数用于双字节字符。
RIGHT(text,num_chars)
RIGHTB(text,num_bytes)
SEARCH
SEARCH返回从start_num开始首次找到特定字符或文本串的位置上特定字符的编号。
使用SEARCH可确定字符或文本串在其他文本串中的位置,这样就可使用MID或REPLACE函数更改文本。
SEARCHB也可在其他文本串(within_text)中查找文本串(find_text),并返回find_text的起始位置编号。
此结果是基于每个字符所使用的字节数,并从start_num开始的。
此函数用于双字节字符。
此外,也可使用FINDB在其他文本串中查找文本串。
SEARCH(find_text,within_text,start_num)
SEARCHB(find_text,within_text,start_num)
SUBSTITUTE
在文字串中用new_text替代old_text。
如果需要在某一文字串中替换指定的文本,请使用函数SUBSTITUTE;如果需要在某一文字串中替换指定位置处的任意文本,请使用函数REPLACE。
SUBSTITUTE(text,old_text,new_text,instance_num)
T
将数值转换成文本。
T(value)
TEXT
将一数值转换为按指定数字格式表示的文本。
TEXT(value,format_text)
TRIM
除了单词之间的单个空格外,清除文本中所有的空格。
在从其他应用程序中获取带有不规则空格的文本时,可以使用函数TRIM。
TRIM(text)
UPPER
将文本转换成大写形式。
UPPER(text)
VALUE
将代表数字的文字串转换成数字。
VALUE(text)
WIDECHAR
将单字节字符转换为双字节字符。
WIDECHAR(text)
YEN
使用¥(日圆)货币格式将数字转换成文本,并对指定位置后的数字四舍五入。
YEN(number,decimals)
附二、日期与时间函数
函数名
函数说明
语法
DATE
返回代表特定日期的系列数。
DATE(year,month,day)
DATEDIF
计算两个日期之间的天数、月数或年数。
DATEDIF(start_date,end_date,unit)
DATEVALUE
函数DATEVALUE的主要功能是将以文字表示的日期转换成一个系列数。
DATEVALUE(date_text)
DAY
返回以系列数表示的某日期的天数,用整数1到31表示。
DAY(serial_number)
DAYS360
按照一年360天的算法(每个月以30天计,一年共计12个月),返回两日期间相差的天数。
DAYS360(start_date,end_date,method)
EDATE
返回指定日期(start_date)之前或之后指定月份数的日期系列数。
使用函数EDATE可以计算与发行日处于一月中同一天的到期日的日期。
EDATE(start_date,months)
EOMONTH
返回start-date之前或之后指定月份中最后一天的系列数。
用函数EOMONTH可计算特定月份中最后一天的时间系列数,用于证券的到期日等计算。
EOMONTH(start_date,months)
HOUR
返回时间值的小时数。
即一个介于0(12:
00A.M.)到23(11:
00.)之间的整数。
HOUR(serial_number)
MINUTE
返回时间值中的分钟。
即一个介于0到59之间的整数。
MINUTE(serial_number)
MONTH
返回以系列数表示的日期中的月份。
月份是介于1(一月)和12(十二月)之间的整数。
MONTH(serial_number)
NETWORKDAYS
返回参数start-data和end-data之间完整的工作日数值。
工作日不包括周末和专门指定的假期
NETWORKDAYS(start_date,end_date,holidays)
NOW
返回当前日期和时间所对应的系列数。
NOW()
SECOND
返回时间值的秒数。
返回的秒数为0至59之间的整数。
SECOND(serial_number)
TIME
00A.M)到23:
59:
59(11:
59:
59之间的时间。
TIME(hour,minute,second)
TIMEVALUE
TIMEVALUE(time_text)
TODAY
返回当前日期的系列数,系列数是MicrosoftExcel用于日期和时间计算的日期-时间代码。
TODAY()
WEEKDAY
返回某日期为星期几。
默认情况下,其值为1(星期天)到7(星期六)之间的整数。
WEEKDAY(serial_number,return_type)
WEEKNUM
返回一个数字,该数字代表一年中的第几周。
WEEKNUM(serial_num,return_type)
WORKDAY
返回某日期(起始日期)之前或之后相隔指定工作日的某一日期的日期值。
工作日不包括周末和专门指定的假日。
WORKDAY(start_date,days,holidays)
YEAR
返回某日期的年份。
返回值为1900到9999之间的整数。
YEAR(serial_number)
YEARFRAC
返回start_date和end_date之间的天数占全年天数的百分比。
YEARFRAC(start_date,end_date,basis)
(责任编辑Ray)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文本 日期 时间 函数
![提示](https://static.bdocx.com/images/bang_tan.gif)