在Excel中获取特定月份的唯一周数

时间:2016-07-18 15:14:38

标签: excel excel-formula

我有一个源表数据,其中包含以下日期,周,月和年信息。

CALENDAR_DATE  WEEK    MONTH   YEAR
15-Jun-15      25   2015 / 06   2015
16-Jun-15      25   2015 / 06   2015
17-Jun-15      25   2015 / 06   2015
18-Jun-15      25   2015 / 06   2015
19-Jun-15      25   2015 / 06   2015
20-Jun-15      25   2015 / 06   2015
21-Jun-15      26   2015 / 06   2015
22-Jun-15      26   2015 / 06   2015
23-Jun-15      26   2015 / 06   2015
24-Jun-15      26   2015 / 06   2015
25-Jun-15      26   2015 / 06   2015
26-Jun-15      26   2015 / 06   2015
27-Jun-15      26   2015 / 06   2015
28-Jun-15      27   2015 / 06   2015
29-Jun-15      27   2015 / 06   2015
30-Jun-15      27   2015 / 06   2015

我正在建立一个依赖数据验证列表,我需要提取每个月的所有唯一周数,如下所示

2016      2016 / 01    2016 / 02
2016 / 01      1          5
2016 / 02      2          6
2016 / 03      3          7
2016 / 04      4          8
2016 / 05       
2016 / 06       
2016 / 07       
2016 / 08       
2016 / 09       
2016 / 10       
2016 / 11       
2016 / 12       

是否有一个带有index,countif和/或vlookup组合的公式可以达到目的。任何指导都会非常有用

1 个答案:

答案 0 :(得分:0)

您可以使用数组公式来完成。如果您有以A2和B2开头的日期和周数,以及D1,E1等所需的月份数,公式为: -

=IFERROR(INDEX($B$2:$B$1000,MATCH(1,(COUNTIF(D$2:D2,$B$2:$B$1000)=0)*(MONTH($A$2:$A$1000)=D$1)*($A$2:$A$1000<>""),0)),"")

使用 Ctrl Shift 输入

进入D3

enter image description here

注意:必须有另一种方法,不需要列出所有周数 - 只需从每个月的开始开始,每次向前推进7天,有一点逻辑月底。

从G3中的第一个月开始,我想出了这个公式,以便在本月的最后一周给出第8,15等。那么你只需要获得每个日期的WEEKNUM。

=IF((G3+7)>EOMONTH(G3,0),IF(WEEKNUM(EOMONTH(G3,0))>WEEKNUM(G3),EOMONTH(G3,0),""),G3+7)