如何计算特定年份的运行月份?

时间:2019-01-08 13:38:32

标签: excel vba

我目前正在努力根据年份来计算运行月份。我有下表:

Received Month    Received Year
Feb               2018
Feb               2018
Mar               2018
...               ...
Nov               2018
Nov               2018
Dec               2018
Dec               2018
Jan               2019
Jan               2019
Feb               2019

我正在使用此公式计算不重复月份的数量(1个单格[C1]中的连续月份);

=SUMPRODUCT(1/(COUNTIF(KAIZEN_Table[Received Month],KAIZEN_Table[Received Month])))

这在2018年表现出色,给了我11月(2月-12月)的机会。

我必须添加一个过滤器,该过滤器还检查年份是否为2019年。我无法删除表格中的2018年,因为运营商仍在使用2018年行。筛选器就是在这里设置2019年的KPI。

由于某种原因,我不知道如何添加年份。我试过了

=SUMPRODUCT(1/(COUNTIFS(KAIZEN_Table[Received Month],KAIZEN_Table[Received Month],KAIZEN_Table[Received Year], "2019")))

这只是给我一个0。

对此有何建议? VBA代码也可以。

编辑:广泛搜索之后,我找到了一个可行的公式,对于可能对此感兴趣的人。

=SUM(IF(FREQUENCY(IF(tbl[Year]=2019,MATCH(tbl[Month],tbl[Month],0)),ROW(tbl[Month])-ROW($L$5)+1),1))

L5 = tbl [Month]

的第一行

2 个答案:

答案 0 :(得分:0)

我的数据存储在A1:B14中,我使用的公式是一个数组

=SUM(1/(COUNTIFS($A$1:$A$14,$A$1:$A$14,$B$1:$B$14,$B$1:$B$14)))

但是

=SUMPRODUCT(1/(COUNTIFS($A$1:$A$14,$A$1:$A$14,$B$1:$B$14,$B$1:$B$14)))

足够了

要进行特定的一年,您可以做类似的事情

=SUM(($B$1:$B$14=2019)*(1/COUNTIFS($A$1:$A$14,$A$1:$A$14,$B$1:$B$14,B1:B14)))

答案 1 :(得分:0)

另一种方法是使用数据透视表。

Create Pivot Table对话框中,选择Add this data to the Data Model

enter image description here

如果这样做,您将注意到“值字段设置”中的一个选项将为Distinct Count

Received Year拖到“行”列; Received Month到“值”列,然后选择“ Distinct Count”作为“值字段设置”

enter image description here