日期函数,表亲你收服了几个?
掌握几个日期函数的公式不难,难的是如何确定好开始和结束时间,把握日期的各节点(如跨年、跨月),做到考虑全面,无所遗漏。下列的日期函数,有的是从网上摘抄的,有的是从自己平时的工作当中提炼出来的,供大家参考,此文仅为抛砖引玉,希望可以给大家带来帮助,有什么问题也可以随时交流^_^。个人觉得比较常用的函数差不多就是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(),"yyyy年m月d日") 返回中文小写日期“二○一六年五月二十八日”
Dbnum2: =text(now(),”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),"第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),"第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($1:$366),”[$-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(),"m月") 返回“五月”
34. 这个月中文大写月公式如何写? =TEXT(NOW(),"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))
谢谢分享 谢谢楼主分享,很实用 {:5_257:}谢谢分享 谢谢分享,日期的转换很有用 谢谢分享,好好好好好好好 谢谢分享{:5_208:} {:5_257:}谢谢分享 谢谢分享 谢谢楼主分享
页:
[1]
2