Excel,统计连续多少个月
Excel, count how many consecutive months
我有原始数据显示有人每月出现多次,而且超过一个月。我想知道这个人的值连续多少个月(从今天开始)为 0。我该如何为此编写公式?
COUNTIF(s) PERSON IN A2 is found in RAWDATA and VALUE of SCORE COLUMN IN RAW DATA is ZERO and COUNT OF MONTHS IN A ROW FROM TODAY THAT IT IS ZERO"
A 在 5 月、4 月、3 月和 2 月的得分为零,因此结果应为 4(从最大日期往回计算)
Name Date Score
Person A 1/10/2017 1
Person A 1/20/2017 1
Person A 1/30/2017 1
Person A 1/31/2017 1
Person A 2/10/2017 1
Person A 2/20/2017 0
Person A 2/24/2017 1
Person A 2/28/2017 0
Person A 3/10/2017 1
Person A 3/20/2017 1
Person A 3/31/2017 0
Person A 2017-04-31 0
Person A 4/10/2017 1
Person A 4/20/2017 1
Person A 4/28/2017 1
Person A 5/28/2017 0
Person A 5/10/2017 1
Person A 5/26/2017 1
Person A 5/10/2017 1
Person A 5/19/2017 1
Person A 5/30/2017 1
Person A 11/3/2016 1
Person A 11/11/2016 0
Person A 11/22/2016 1
Person A 12/9/2016 1
Person A 12/9/2016 1
Person A 12/19/2016 1
Person A 12/16/2016 1
Person A 2/10/2017 N/A
Person A 2/20/2017 1
Person A 2/24/2017 1
Person A 3/10/2017 1
Person A 3/20/2017 1
Person A 3/28/2017 N/A
Person A 4/20/2017 N/A
Person A 4/25/2017 N/A
Person A 5/30/2017 N/A
Person A 11/28/2016 N/A
Person A 12/6/2016 1
确实很棘手。
我建议的解决方案是:
(a) Find the date D1 of the latest zero score
(b) Going back month by month from D1, find the latest month which does not contain a zero score.
(a) 很简单 - 使用聚合找到 A 的分数为零的最新日期
=AGGREGATE(14,6,RawData!$C:$C0/((RawData!$A:$A0=$A)*(RawData!$D:$D0=0)),1)
(b) 更难。我必须开发一个月份数组,然后使用 COUNTIFS 查看每个月 A 的零分有多少,然后使用 MATCH 查看最近一个月没有零分的时间有多远。所以如果你想回去一年说
=MATCH(0,COUNTIFS(RawData!$C:$C0,"<"&DATE(YEAR($B2),MONTH($B2)-ROW(:)+1,1),
RawData!$C:$C0,">="&DATE(YEAR($B2),MONTH($B2)-ROW(:),1),RawData!$A:$A100,$A2,RawData!$D:$D0,0),0)
使用 CtrlShiftEnter.
作为数组公式输入
请注意,我的日期在 C 列中,因为我必须将它们转换为 dd-mm-yyyy,而我的分数在 D 列中。
我有原始数据显示有人每月出现多次,而且超过一个月。我想知道这个人的值连续多少个月(从今天开始)为 0。我该如何为此编写公式?
COUNTIF(s) PERSON IN A2 is found in RAWDATA and VALUE of SCORE COLUMN IN RAW DATA is ZERO and COUNT OF MONTHS IN A ROW FROM TODAY THAT IT IS ZERO"
A 在 5 月、4 月、3 月和 2 月的得分为零,因此结果应为 4(从最大日期往回计算)
Name Date Score
Person A 1/10/2017 1
Person A 1/20/2017 1
Person A 1/30/2017 1
Person A 1/31/2017 1
Person A 2/10/2017 1
Person A 2/20/2017 0
Person A 2/24/2017 1
Person A 2/28/2017 0
Person A 3/10/2017 1
Person A 3/20/2017 1
Person A 3/31/2017 0
Person A 2017-04-31 0
Person A 4/10/2017 1
Person A 4/20/2017 1
Person A 4/28/2017 1
Person A 5/28/2017 0
Person A 5/10/2017 1
Person A 5/26/2017 1
Person A 5/10/2017 1
Person A 5/19/2017 1
Person A 5/30/2017 1
Person A 11/3/2016 1
Person A 11/11/2016 0
Person A 11/22/2016 1
Person A 12/9/2016 1
Person A 12/9/2016 1
Person A 12/19/2016 1
Person A 12/16/2016 1
Person A 2/10/2017 N/A
Person A 2/20/2017 1
Person A 2/24/2017 1
Person A 3/10/2017 1
Person A 3/20/2017 1
Person A 3/28/2017 N/A
Person A 4/20/2017 N/A
Person A 4/25/2017 N/A
Person A 5/30/2017 N/A
Person A 11/28/2016 N/A
Person A 12/6/2016 1
确实很棘手。
我建议的解决方案是:
(a) Find the date D1 of the latest zero score
(b) Going back month by month from D1, find the latest month which does not contain a zero score.
(a) 很简单 - 使用聚合找到 A 的分数为零的最新日期
=AGGREGATE(14,6,RawData!$C:$C0/((RawData!$A:$A0=$A)*(RawData!$D:$D0=0)),1)
(b) 更难。我必须开发一个月份数组,然后使用 COUNTIFS 查看每个月 A 的零分有多少,然后使用 MATCH 查看最近一个月没有零分的时间有多远。所以如果你想回去一年说
=MATCH(0,COUNTIFS(RawData!$C:$C0,"<"&DATE(YEAR($B2),MONTH($B2)-ROW(:)+1,1),
RawData!$C:$C0,">="&DATE(YEAR($B2),MONTH($B2)-ROW(:),1),RawData!$A:$A100,$A2,RawData!$D:$D0,0),0)
使用 CtrlShiftEnter.
作为数组公式输入请注意,我的日期在 C 列中,因为我必须将它们转换为 dd-mm-yyyy,而我的分数在 D 列中。