Excelmacros将date分成年份一周

我对这个Excel表格感到非常困难,并试图使用VBA以及Excel函数将date格式化为年,月,周,但是我一直在遇到问题。

我有以下input: 在这里输入图像说明

Column1看起来很奇怪的原因是因为我正在尝试使用= MONTH([Date]),但它看起来很奇怪,并不sorting到它应该的月份或周。

如果一切正常,下面是预期的结果。

在这里输入图像说明

所以使用date列我想要生成3列:年,月,周

任何想法,如果我在Excel中做错了什么,或者如果有一个简单的方法,在VBA做到这一点?

A2中的date,在E2中input:

=A2 ,格式为“yyyy”

F2中input:

=A2 ,格式为“mm-mmmm”

G2中input:

 ="Week " & ROUNDUP(DAY(A2)/7,0) 

不知道问题出在哪里,但下面的公式会给你年,月,日。 其中a1包含date

 =year(a1) =month(a1) =day(a1) 

当然,如果你想让月份用单词而不是数字来显示月份,你可以将单元格格式化为自定义,然后mmm

你正在使用正确的公式,唯一的问题是你的列格式,因为它正确地在评论中指出。 按照以下步骤获取所需的格式

  1. select列并右键单击“格式单元格”
  2. 在“编号”标签中,select类别列表中的“自定义”
  3. input“mm – mmmm”作为types。

你应该得到'12 – 12月'

  • =YEAR([@Date])公式: =YEAR([@Date])
  • 月份公式: =MONTH([@Date]) & "-" & TEXT([@Date],"mmmm")
  • 公式for week: ="Week " & WEEKNUM([@Date],2)-WEEKNUM(EOMONTH([@Date],-1)+1,2)+1

并为每一列使用适当的格式。

在这里输入图像说明