Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3498|回复: 13

[习题] [201401函初班]第六讲作业B组上交贴

[复制链接]
发表于 2014-4-15 16:27 | 显示全部楼层 |阅读模式
本帖最后由 ddhhyy16 于 2014-4-21 17:08 编辑


【6】2014-函初-日期函数【作业】答案汇总.rar

71.87 KB, 下载次数: 14

发表于 2014-4-15 16:46 | 显示全部楼层
第一题:
  1. =2014-YEAR(--TEXT(MID(D7,7,11)-500,"0-00-00,"))
复制代码
借用小妖同学提取身份证出生日期的那个经典公式

第二题:
  1. =DATE(YEAR(D19),MONTH(D19)+E19,DAY(D19))
复制代码
或者
  1. =EDATE(D19,E19)
复制代码
第三题:
  1. =EOMONTH(C28-1,1)
复制代码
  1. =EDATE(C28,1)-1
复制代码
第四题:
  1. =LOOKUP(MONTH(C45),{1,1;4,2;7,3;10,4})
复制代码
  1. =ROUNDUP(MONTH(C45)/3,)
复制代码
第五题:
  1. =NETWORKDAYS(C57,D57)
复制代码
回复

使用道具 举报

发表于 2014-4-15 16:54 | 显示全部楼层
1.=DATEDIF(TEXT(MID(D7,7,6+(LEN(D7)=18)*2),"#-00-00"),TODAY(),"y")
"阐述公式原理:datedif是计算两个日期之间差值的函数,可以以年为单位也可以月或日为单位。此函数包含三个参数,第一和第二个参数为日期型数据,第三个参数说明了两个日期差值的单位。text函数生成第一个日期,是从身份证号码中获得的。*19与*2是为了兼容15位与18位两种不同的身份证号码。today函数获得当天日期作为第二个日期数据。第三个参数'y'是确定了两个日期差值以年为单位,同时这个datedif函数计算的是周岁。
2.=EDATE(D19,E19)
"阐述公式原理:利用edate函数求出到期
日期."                       
3(1)        =EOMONTH(C28,0)
  (2)        =DATE(YEAR(C28),MONTH(C28)+1,)
        阐述其中一种公式原理:下月的零天就
是上月的最后一天。
4.(1)=LEN(2^MONTH(C45))
    (2)=-INT(-MONTH(C45)/3)
    阐述其中一种公式原理:利用len函数统计2的月数的次方数来取巧
5.=NETWORKDAYS(C57,D57)
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
回复

使用道具 举报

发表于 2014-4-15 23:00 | 显示全部楼层
首先判断身份证位数,如果为15位,则取出第7第8位数为出生年,第9-10为出生月,第11-12为出生日;否则取第7-10为出生年,第11-12为出生月,第13-14为出生日。在用DATEDIF函数算出和现在之间的时间差
  1. =DATEDIF(IF(LEN(D7)=15,DATE(19&MID(D7,7,2),MID(D7,9,2),MID(D7,11,2)),DATE(MID(D7,7,4),MID(D7,11,2),MID(D7,13,2))),NOW(),"Y")
复制代码
使用EDATE函数算出生产日期之后的N个月(保质期)的日期
  1. =EDATE(D19,E19)
复制代码
根据DATE(year,month,day)函数中day项为0代表某月1号之前的一天即上月最后一天
  1. =EOMONTH(C28,0)
复制代码
根据"  一  二  三  四"这一字符串的特点,从中间某位置(月数)取出3个字符去掉空格正好是月份对应的季度
  1. ="第"&TRIM(MID("  一  二  三  四",MONTH(C45),3))&"季度"
  2. ="第"&LOOKUP(MONTH(C45),{1,4,7,10;"一","二","三","四"})&"季度"
复制代码
  1. =NETWORKDAYS(C57,D57)
复制代码
回复

使用道具 举报

发表于 2014-4-16 08:35 | 显示全部楼层
本帖最后由 hsl215 于 2014-4-16 12:54 编辑
  1. =DATEDIF(TEXT(MID(D7,9-(LEN(D7)=15)*2,6),"0-00-00"),TODAY(),"y")
复制代码
阐述公式原理:首先利用MID函数取身份证号码中的6位出生日期的字符串yymmdd,再利用TEXT函数将此字符串转换为文本形式的日期格式yy-mm-dd,再利用DATEDIF函数第一参数为前面生成的文本式日期,第二参数为当前日期,第三参数为y,计算出两日期差距的整年数即年龄。
  1. =EDATE(D19,E19)
复制代码
阐述公式原理:利用EDATE函数返回一个指定日期相隔指示的月份数的日期,正数返回指定日期之后的日期,负数是返回指定日期之前的日期
  1. =DAY(EOMONTH(C28,0))
  2. =DAY(DATE(YEAR(C28),MONTH(C28)+1,))
复制代码
阐述其中一种公式原理:首先利用EOMONTH函数返回一个与该月份相隔指定月份数的最后一天日期,正数返回指定日期之后某月的最后一天的日期,负数返回指定日期之前某月的最后一天的日期,0返回指肖月的最后一天的日期;再选用DAY取日期的天数即月末日期。
  1. =LEN(2^MONTH(C45))
  2. =MONTH(MONTH(C45)&0)
  3. =ROUNDUP(MONTH(C45)/3,)
复制代码
阐述其中一种公式原理:首先利用MONTH函数取出月份值,再用LEN函数求出2的月份值的次方的长度即为季度
  1. =NETWORKDAYS(C57,D57)
  2. =NETWORKDAYS(C57,D57,{41760,41792,41890,41913,41914,41915})
复制代码
第一个公式计算出来的工作日天数包括国家法定假日;第二个公式计算出来的工作日天数 是除去了,五一、端午、中秋和国庆三天共计6天国假


回复

使用道具 举报

发表于 2014-4-16 12:40 | 显示全部楼层
本帖最后由 zhyoucheng 于 2014-4-16 12:42 编辑

【2014函数初级班】-B020-zhyoucheng【6】.rar (63.88 KB, 下载次数: 5)
回复

使用道具 举报

发表于 2014-4-16 13:21 | 显示全部楼层

RE: [201401函初班]第六讲作业B组上交贴-B001 Jio1ye

7.1作业六_Jio1ye.rar (63.72 KB, 下载次数: 1)
回复

使用道具 举报

发表于 2014-4-16 16:21 | 显示全部楼层
tracyliunana-B007

【6】2014-函初-日期函数【作业】.rar

63.07 KB, 下载次数: 1

回复

使用道具 举报

发表于 2014-4-16 21:06 | 显示全部楼层
【2014函数初级班】-B017-轻松
1.计算出每个人到今天的周岁年龄
  1. =DATEDIF(TEXT(MID(D7,7,6+(LEN(D7)=18)*2),"00-00-00"),TODAY(),"y")
复制代码
利用LEN函数判断取的位数,再用DATEDIF函数计算出年龄。
2、计算出每个食品的过期日期
  1. =EDATE(D19,E19)
复制代码
应用EDATE函数计算指定月份后的日期。
3、计算出每月月末日期
  1. =DATE(YEAR(D28),MONTH(D28)+1,0)
复制代码
  1. =DATE(YEAR(D28),MONTH(D28)+1,0)
复制代码
  1. =EOMONTH(C28,0)
复制代码
公式原理:先算出下月的第一天,再减1便得出本月的月末日期。
4、计算出日期所在的季度
  1. =INT((MONTH(C45)+2)/3)
复制代码
  1. =ROUNDUP(MONTH(C45)/3,0)
复制代码
取出日期里的月份加2再除以3得出所在季度
5、计算出起始日到终止日中的工作日天数(周末休息)
  1. =NETWORKDAYS(C57,D57,C57:D57)
复制代码
回复

使用道具 举报

发表于 2014-4-17 09:07 | 显示全部楼层
本帖最后由 fffox 于 2014-4-22 08:29 编辑

B组长:fffox
第一题。方法一
  1. =DATEDIF(TEXT(MID(D7,7,11)-500,"00-00-00,"),TODAY(),"y")
复制代码
没什么好说的,上课囧神已经讲了。
方法二
  1. =DATEDIF(TEXT(MID(D7,7,6+(LEN(D7)=18)*2),"0-00-00"),TODAY(),"y")
复制代码
原理:先用MID函数从身份证信息中取年月日信息,通过6+len((d7)=18)*2,18位身份证号码取8位,15位取6位。用TEXT函数构造成“年-月-日”格式,最后通过DATEDIF函数,使用第三参数y,计算出生日期与当前日期相差的完整年,即完成计算周岁。

第二题。
  1. =EDATE(D19,E19)
复制代码
直接利用EDATE函数功能,第一参数为日期,第二参数为月份数,计算结果为几个月之后(第二参数为正数)的日期或几个月之前(第二参数为负数)的日期。

第三题。
方法一:
  1. =DATE(YEAR(C28),MONTH(C28)+1,)
复制代码
先通过YEAR、MONTH函数分别取得要计算日期的年、月,再用DATE函数构造成日期格式,月份+1,日期为0,即返回当前月的最后一天。
方法二:
  1. =EOMONTH(C28,0)
复制代码
直接使用EOMONTH函数功能,第二参数为0,即返回该日期所在月的最后一天。

第四题。
方法一:
  1. =INT((MONTH(C45)+2)/3)
复制代码
方法二:
  1. =ROUNDUP(MONTH(C45)/3,)
复制代码
方法三:
  1. =CEILING(MONTH(C45)/3,1)
复制代码
方法四:
  1. =LEN(2^MONTH(C45))
复制代码
方法一、二、三都利用了舍入函数的功能,用MONTH函数取得日期所在月份,除以3后再舍入即取得所属季度。方法四取巧,利用了2的1-12次方后位数正好分别为1、2、3、4位数,与月份所在季度相对应。

第五题。
  1. =NETWORKDAYS(C57,D57,C61:C67)
复制代码
直接使用NETWORKDAYS的基本功能,计算两个日期之间的工作日天数。第三参数可设置为国家法定节假日。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-16 18:18 , Processed in 0.227797 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表