如B1单元格包含日期值2006-1-2,下面的公式分别返回数字1和2,代表第一周和第二周。2006-1-1是星期日,若return_type为1则从2006-1-1至2006-1-7日为第一周,若return_type为2则2006-1-1为第一周,从2006-1-2至2006-1-8为第2周。
=WEEKNUM(B1,1)
=WEEKNUM(B1,2)
注意:
先加载"分析工具库"才能使用WEEKNUM函数。加载的方法是单击菜单"工具"-"加载宏",在"加载宏"对话框中勾选"分析工具库"复选框,最后单击"确定"按钮。
1 一、获取“年月日”信息
获取“年月日”的信息比较简单,方法也比较多,用单一的函数(如TEXT函数)就可以实现,现举例如下:
=TEXT(A2,"YYYY年")
=TEXT(A2,"M月")
=TEXT(A2,"d日")
2 需要注意的是用TEXT函数提取到的“年月日”信息是文本型的,无法直接进行计算,如果要进行计算,一般情况下要分别用YEAR、MONTH、DAY三个函数。举例如下:
返回数值型的年份:=YEAR(A2)
返回数值型的月份:=MONTH(A2)
返回数值型的日:=DAY(A2)
3 二、获取“周数”信息
获取“周数”的信息就要复杂一些,虽然WEEKNUM函数可以直接返回一个日期对应的周数,但WEEKNUM函数是将1月1日所在的周视为一年中的第一周。然而,在实际应用中则是将包含新的一年中天数较多(四天或更多)的一周定义为第一周。这表明对于三天或少于三天的一月份的第一周,按照实际应用,WEEKNUM函数返回的周数是错误的。不过这可以用函数和公式来调整和避免的。
1、将1月1日所在的周视为第一周
这样的“周数”很简单,直接用WEEKNUM函数即可:
=WEEKNUM(A2,2)
4
2、新的一年中天数较多的一周为第一周
这样的“周数”就不能直接用WEEKNUM函数,而是需要进行计算,公式如下:
=IF(WEEKNUM(A2,2)-1=0,WEEKNUM(DATE(YEAR(A2)-1,12,31),2),WEEKNUM(A2,2)-1)
5
三、获取“工作日”信息
这里的“工作日”是指每周的周几信息,也相对比较简单,直接用现在的函数WEEKDAY就可以了。不过这个函数返回的数值,需要通过其他函数和公式转换成中文的显示习惯,转换的方法很多,大家可以仁者见仁,智者见智。我下面只是例举其中一种方法。公式如下:
=LOOKUP(WEEKDAY(A2,2),{1,2,3,4,5,6,7;"星期一","星期二","星期三","星期四","星期五","星期六","星期日"})
6
四、获取“季度”信息
Excel中没有直接的函数可以返回一个日期对应的“季度”信息,因此这需要充分发挥各自的聪明才智来解决这个问题。我的方法是通过下面的公式来实现:
=LOOKUP(LEN(2^MONTH(A2)),{1,2,3,4;"一季度","二季度","三季度","四季度"})
上面的公式直接返回的是中文习惯的季度信息,如果只是需要数值型的季度信息,只需要以下公式就可以了:
=LEN(2^MONTH(A2))
7
Excel中日期的相互转化还有很多方法,大家可以在日常工作中不断总结、积累、分享。
1 记住一个固定日期的星期数做计算参照时间,2009年1月1日是星期42 算出 参照时间到目标周的天数 当年50周为 1+50X7=351天,就是说第351天是星期43 1-12月每月天数分别是 31, 28(逢2000,2004,2008,2012闰年为29) ,31,30,31,30,31,31,30,31,30,31 (有个儿歌:1,3,5,7,8,10,腊,31天永不差,4,6,9,冬30整,唯有2月28) 利用各月天数把绝对天数换算成月日 这里因为351接近一年天数365 简单化,351离一年最后一天12月31日差 365-351=14天 换成日期为12月的 31-14=17号 就是说第50周周4为12月17日4 周一为17-3=号,周日为17+3=120号1、如果把新年的1月1日所在的周作为第一周,那这样指定日期计算周数很简单,用weeknum函数就可以直接算出来,如=weeknum(a2,2),其中a2是excel中日期的位置;2、如果把新的一年中天数较多的一周作为第一周,那这样的周数就不能直接用weeknum函数了,而要进行计算,公式为:=if(weeknum(a2,2)-1=0,weeknum(date(year(a2)-1,12,31),2),weeknum(a2,2)-1)
Excel 提供的WEEKDAY和TEXT函数都可以获取某日期为星期几,在Excel 2010中语法格式如下:
WEEKDAY(serial_number,[return_type])Serial_number 必需,查找的那一天的日期
Return_type 可选,用于确定返回值类型的数字
TEXT(value, format_text)value 必需,数值,计算结果为数值的公式,或对包含数值的单元格的引用。
format_text 必需,使用双引号括起来作为文本字符串的数字格式
注意:WEEKDAY函数获得的是星期的数字,如果需要显示文本,应使用TEXT函数。
下面给出实例演示:
一个不用任何函数的方法,EXCEL格式中就有此功能。如A1为2010/05/15,复制A1到B1,B1数值格式为日期中的“星期三”,这样B1显示的将不再是日期而是这个日期对应的星期几。
用函数只能显示1、2、3加上星期也只有星期1到星期7,如果要显示成星期一到星期日还得判断替换等,上面的方法最简单实用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)