首页 文章

如何从ISO日期和星期获得月份

提问于
浏览
0

我正在寻找一种将ISO日期转换为月份的方法,我还需要将ISO周转换为月份 . 我需要在Excel和Access中执行此操作 . 我发现excel的这个公式但是当它转换为Access时它不起作用 . 有没有一种简单的方法来实现这一目标?我发现这个Excel公式将ISO日期转换为月 (C2=date) 并且它完美无缺:

=MONTH(DATE(YEAR(C2),MONTH(C2)+(WEEKDAY(C2,2)+(DAY(DATE(YEAR(C2),MONTH(C2)+1,0)))-(DAY(C2))<4),(((7-(WEEKDAY(C2,2)))+(DAY(C2)))>3)))

但是,当我为Access查询修改它时,它不会返回正确的值:

Date_to_Month:MONTH(DATESERIAL(YEAR([WW_Index].[ISO_date]),MONTH([WW_Index].[ISO_date])+(WEEKDAY([WW_Index].[ISO_date],2)+(DAY(DATESERIAL(YEAR([WW_Index].[ISO_date]),MONTH([WW_Index].[ISO_date])+1,0)))-(DAY([WW_Index].[ISO_date]))<4),(((7-(WEEKDAY([WW_Index].[ISO_date],2)))+(DAY([WW_Index].[ISO_date])))>3)))

我还需要将ISO week_year转换为Month . 我找到了这个公式,但它不起作用:

=MONTH(DATE(YEAR(C2),1,-2)-WEEKDAY(DATE(YEAR(C2),1,3))+D2*7)

示例:2012年第18周是2012年4月30日至2012年5月6日的ISO周 . 本周的4月4日当天较少,因此2012年的第18周是5月 .

任何帮助将不胜感激 .

1 回答

  • 1

    我不知道访问,但你可以使用这个公式在excel中更容易地完成第一部分(日期到月份)

    =MONTH(C2-WEEKDAY(C2-1)+4)

    这应该更容易转换访问......

    对于第二部分,你找到相关周的 Monday ,因此你在某些情况下得到错误的月份,本周的 Thursday (中点)应该总是在正确的月份内,所以你可以加3来得到它( - 2成为1),即

    =MONTH(DATE(YEAR(C2),1,1)-WEEKDAY(DATE(YEAR(C2),1,3))+D2*7)

    我假设C2在相关年份内是 date ,D2是ISO周数,但可能更好的是让C2包含年份,例如只是2013年,然后你可以使用

    =MONTH(DATE(C2,1,1)-WEEKDAY(DATE(C2,1,3))+D2*7)

相关问题