设为首页 登录 注册
首页 中人社区 中人博客
查看: 14009|回复: 13
打印 上一主题 下一主题

[原创] 日期函数,表亲你收服了几个?

[复制链接]

2

主题

6

听众

161

积分

书生

Rank: 3Rank: 3Rank: 3

签到天数: 5 天

[LV.2]偶尔看看I

注册时间
2014-9-22
最后登录
2017-1-2
积分
161
精华
0
主题
2
帖子
8
跳转到指定楼层
楼主
发表于 2016-5-28 16:04:05 |只看该作者 |倒序浏览
本文版权属2014shiny所有
转载请注明:
中人网论坛-2014shiny-(链接地址:http://community.chinahrd.net/forum.php?mod=viewthread&tid=863644)



             掌握几个日期函数的公式不难,难的是如何确定好开始和结束时间,把握日期的各节点(如跨年、跨月),做到考虑全面,无所遗漏。下列的日期函数,有的是从网上摘抄的,有的是从自己平时的工作当中提炼出来的,供大家参考,此文仅为抛砖引玉,希望可以给大家带来帮助,有什么问题也可以随时交流^_^个人觉得比较常用的函数差不多就是now()/today()/datedif()/eomoth()/networkdays()/date()/year()/month()/day().

1.      当前的系统日期=today()   

解析:‘今天

2.      当前系统的日期和时间 =now()   

解析:‘目前所有,包括日期和实际

3.      计算当前是几点几分=now()-today() 或 =mod(now(),1)   

解析:‘today的显示值整型,now是值包含小数,now-today=小数,这小数代表的就是几点几分


4.      今天是几号?  =day(now())

5.      今天是星期几?  =weekday(now(),2)  或 =text(today(),”aaa”)  返回中文简写“五”、=text(today(),”aaaa”)   返回中文全称”星期五”  或text(today((,”ddd”) 返回英语简写“Fri” 或text(today(),”dddd”)  返回全称英文,如“Friday”

解析:(1)weekday返回一周中代表第几天的数值,第二个参数用2,表示将星期一计算为1,比较符合中国人的习惯。

(2)Text生成的几种日期格式

YYYY:  =TEXT(NOW(),"YYYY") 返回:2010

Dbnum1:  =TEXT(NOW(),"[dbnum1]yyyy年m月d日") 返回中文小写日期“二○一六年五月二十八日”

Dbnum2:  =text(now(),”[dbnum2]yyyy年m月d日”)  返回中文大写日期“贰零壹陆年伍月贰拾捌日”

(3)日期转换

把20080808修改成2008 -08-08的格式可以用以下格式 =TEXT("20080808","#-00-00")

把英文月份化成数字月份: =MONTH("Aug"&1)  或 =MONTH("August"&1)

返回一个月的最后一天,就是用下一个月的第一天-1就行

得到上一个月的最后一天:=TODAY()-DAY(NOW())解析:今天-本月的天数=上月最后一天

确定季度: =TEXT(ROUNDUP(MONTH(NOW())/3,0),"[dbnum1]第0季度")

返回星期(假设今天是2016年5月28日):

=WEEKDAY(NOW(),2)  返回6

=TEXT(TODAY(),"aaa") 返回六

=TEXT(TODAY(),"aaaa") 返回星期六

返回最近星期天的日期

=TODAY()-WEEKDAY(TODAY(),2)  ‘返回上一个星期天

=TODAY()-MOD(TODAY()-1,7)     ‘返回上一个星期天

=TODAY()+8-WEEKDAY(TODAY())   ‘返回即将到来的一个星期天

=TODAY()+6-MOD(TODAY()-2,7)   ‘返回即将到来的一个星期天

两个日期像个的星期天数

6.      今天是几月份? =month(now())

7.      今天是公元多少年?=year(now())

8.      今天是什么日子?=today()

9.      今天是本年度的第几周? =weeknum(now())

10.  今天是第几季度? =len(2^month(now()))   或 =TEXT(ROUNDUP(MONTH(NOW())/3,0),"[dbnum1]第0季度")

11.  今天是今年的第几天? =TODAY()-"1-1"+11

12.   今年出生的宝宝属什么?  

=MID("猴鸡狗猪鼠牛虎兔龙蛇马羊",MOD(YEAR(now()),12)+1,1)

13.  今天是本季度的第几天? =COUPDAYBS(NOW(),6^9/9,4,1)

14.  今天所在的季度有几天? =COUPDAYS(NOW(),6^9/9,4,1)

15.  今天是本月的第几天? =DAY(NOW())

16.  今天是本月的第几周?=INT((DAY(NOW())+MOD(NOW()-DAY(NOW()),7)-1)/7)+1

17.  今天离元旦还有多少天? ="12-31"-TODAY()+1

18.  今天离春节还有多少天? =match(“-1-1”,text(now()+row($1366),”[$-130000]-m-d”),)

这个有问题,不能得出正确结果

【适用日期范围至农历2026年春节止】

19.   今年有几天? ="12-31"-"1-1"+1

解析:12月31日就是用当前年份的12月31日减去当前年费的1月1日,再加上一天,就是全年的天数了。

20.  这个月有几天?=day(eomonth(now(),0))或  =DAY(DATE(YEAR(NOW()),MONTH(NOW())+1,0))

解析:eomonth(start date,months): 根据参数2months返回start date之前或之后月份的最后一天

21.  这个月第一天是哪天? =NOW()-DAY(NOW())+1  或 =EOMONTH(NOW(),-1)+1或 =DATE(YEAR(NOW()),MONTH(NOW()),1)

解析:上个月的最后一天再+1就是本月的第一天

22.  这个月还有几天? =EOMONTH(NOW(),0)-TODAY()  

23.  这个月最后一天是哪天? =EOMONTH(NOW(),0)  或=DATE(YEAR(NOW()),MONTH(NOW())+1,0)

24.  这个月一共有几周?(?)

=WEEKNUM(DATE(YEAR(NOW()),MONTH(NOW())+1,))-WEEKNUM((MONTH(NOW())&-1)-1)+1

25.  这个月有几个星期五? =COUNT(0/(MOD(MONTH(NOW())&-ROW(1:29),7)=6))(需要加数字键)

解析:?我还没看懂为什么要使用row(1:29),为什么要=6呢,为什么它能分得清是星期五呢!

26.  这个月得上几天班?(不考虑法定节日)=COUNT(0/(MOD(MONTH(NOW())&-ROW(1:39),7)>1))(需要加数字键) Or =NETWORKDAYS(EOMONTH(TODAY(),-1)+1,EOMONTH(TODAY(),0))

解析:?我还没看得懂为什么要使用row(1:39),为什么要>1

27.  这个月能休息几天?(不考虑法定节日)=COUNT(0/(MOD(MONTH(NOW())&-ROW(1:39),7)<2))

Or =DAY(EOMONTH(TODAY(),0))-NETWORKDAYS(EOMONTH(TODAY(),-1)+1,EOMONTH(TODAY(),0))

解析:count的row(1:39),<2还木有看懂。。。

28.  如何判断某天是否是周末?  =MOD(NOW(),7)<2

29.  显示当前星期+时间 =TEXT(NOW(),"aaaahh:mm:ss")

30.  下个工作日是哪天? =WORKDAY(NOW(),1)

31.  这个月月英文全写公式如何写? =TEXT(NOW(),"mmmm")

32.  这个月英文简写公式如何写? =TEXT(NOW(),"mmm") 返回“May”

33.  这个月中文小写月公式如何写? =TEXT(NOW(),"[DBNum1]m月") 返回“五月”

34.  这个月中文大写月公式如何写? =TEXT(NOW(),"[DBNum2]m月")  返回“伍月”

35.  下个月有几天? =DAY(EOMONTH(NOW(),1))

36.  上个月有几天?=Day(now()-day(now)) 或=DAY(EOMONTH(NOW(),-1))

37.  上个月最后一天是哪天? =Now()-Day(now()) 或=EOMONTH(NOW(),-1)

38.  下个工作日是哪天? =WORKDAY(TODAY(),1)

39.  今年有多少天? ="12-31"-"1-1"+1
40.  今年是闰年吗? =IF(COUNT(-"2-29"),"是","否")

解析:在Excel中如果输入“月/日”形式的日期,会默认按当前年份处理。如果当前年份中没有2月29日,输入“2-29”日就会作为文本处理。如果当前年份没有2月29日,“2-29”前面加上负号,就相当于在文本前加负号,会返回错误值#VALUE。再用COUNT函数判断-“2-29”是数值还是错误值,如果是错误值,当然不是闰年了。注意,“2-29”的写法在不同的语言版本中结果可能有差异。

41.  2008-2-28出生的宝宝多少天了? =today()-“2008-2-28”

42.  2008-2-28出生的宝宝几个月了? =datedif(“2008-8-28”,Now(),”m”)

解析:(1)在判断两个日期之间的差异的时候,切忌随便使用year或者month或者day去做,在跨年或者跨月的时候很容易出错滴,使用datedif是比较保险的

(2)datedif(开始日期,结束日期,返回的结果)

第三个参数写成m,返回两个日期之间的整月数,写成y,返回两个日期之间的整年数,写成d,返回两个日期之间的天数。写成“MD”,返回日期中的天数差,忽略日期中的月和年,写成“YM”,返回日期中月数的差,忽略日期中的日和年,写成“YD”,返回日期中天数的差,忽略日期的年。

43.  2008-2-28日出生的宝宝几周岁了?=datedif(“2008-2-28”,now(),”y”)

44.  今年的母亲节是哪天? =FLOOR("5-6",7)+8

45.  1992年3月18日离今天有几年几月几日? =text(sum(datedif(“1992-3-18”),now(),{“y”,”y,”,”md”})*10^{4,2,0}),”#年00月00日”)

46.  对日期进行上、中、下旬区分 =LOOKUP(DAY(NOW()),{0,11,21,31},{"上旬","中旬","下旬"})

47.  将日期转换成20160528的格式=YEAR(NOW())&TEXT(MONTH(NOW()),"00")&TEXT(DAY(NOW()),"00")或 =TEXT(NOW(),"yyyymmdd")

48.  将日期转换成“201605”格式    =TEXT(NOW(),"yyyymm")+0

49.  将日期转换成“XXXX年X月X日”=TEXT(NOW(),"yyyy年m月d日")

50.本月的工作日 =NETWORKDAYS(EOMONTH(NOW(),-1)+1,EOMONTH(NOW(),0))




0

主题

6

听众

13

积分

书童

Rank: 1

该用户从未签到

注册时间
2016-5-29
最后登录
2016-5-29
积分
13
精华
0
主题
0
帖子
7
沙发
发表于 2016-5-29 17:43:55 |只看该作者
谢谢分享
回复

使用道具 举报

无效楼层,该帖已经被删除
无效楼层,该帖已经被删除

1

主题

10

听众

517

积分

秀才

Rank: 5Rank: 5

签到天数: 27 天

[LV.4]偶尔看看III

注册时间
2013-10-21
最后登录
2023-6-20
积分
517
精华
0
主题
1
帖子
136
5
发表于 2016-6-12 16:54:10 |只看该作者
谢谢楼主分享,很实用
回复

使用道具 举报

0

主题

6

听众

78

积分

书生

Rank: 3Rank: 3Rank: 3

签到天数: 2 天

[LV.1]初来乍到

注册时间
2016-6-15
最后登录
2016-6-16
积分
78
精华
0
主题
0
帖子
8
6
发表于 2016-6-16 12:55:36 |只看该作者
谢谢分享
回复

使用道具 举报

0

主题

6

听众

20

积分

书童

Rank: 1

签到天数: 1 天

[LV.1]初来乍到

注册时间
2016-6-19
最后登录
2016-6-19
积分
20
精华
0
主题
0
帖子
4
7
发表于 2016-6-19 13:15:35 |只看该作者
谢谢分享,日期的转换很有用
回复

使用道具 举报

0

主题

6

听众

40

积分

书童

Rank: 1

该用户从未签到

注册时间
2016-6-22
最后登录
2016-6-22
积分
40
精华
0
主题
0
帖子
21
8
发表于 2016-6-22 12:41:30 |只看该作者
谢谢分享,好好好好好好好
回复

使用道具 举报

0

主题

6

听众

43

积分

书童

Rank: 1

签到天数: 1 天

[LV.1]初来乍到

注册时间
2016-7-18
最后登录
2016-8-31
积分
43
精华
0
主题
0
帖子
10
9
发表于 2016-7-21 15:16:12 |只看该作者
谢谢分享
回复

使用道具 举报

12

主题

11

听众

2万

积分

探花

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27

签到天数: 448 天

[LV.9]以坛为家II

注册时间
2010-3-16
最后登录
2020-9-18
积分
27746
精华
0
主题
12
帖子
1059
10
发表于 2016-7-25 15:05:39 |只看该作者
谢谢分享
回复

使用道具 举报

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