DAX根据月份计算指数

时间:2017-09-18 10:22:44

标签: excel dax powerquery

在电源查询中我有一个这样的表:

date       | month    |
01/01/2017 | jan 2017 |
02/01/2017 | jan 2017 |
03/01/2017 | jan 2017 |
...        | ...      |
01/02/2017 | feb 2017 |
...
01/02/2017 | mar 2017 |
...
01/01/2018 | jan 2018 |

现在我想添加一个计算行,它给出了一个基于月份的索引。 因此,对于每个新月,指数需要增加1.

index | date       | month    |
01    | 01/01/2017 | jan 2017 |
01    | 02/01/2017 | jan 2017 |
01    | 03/01/2017 | jan 2017 |
..    | ...        | ...      |
02    | 01/02/2017 | feb 2017 |
..    | ...        | ...
03    | 01/03/2017 | mar 2017 |
..    | ...        | ... 
13    | 01/01/2018 | jan 2018 |

有谁知道怎么做?

3 个答案:

答案 0 :(得分:1)

实现这一目标的一种方法:

=Month(date)+12*(Year(date)-2017)

第二部分每年都会增加12个计数,-2017位假设您的第一个日期是2017年1月(第一年留下12x(2017-2017)= 12x0 = 0) 。

答案 1 :(得分:1)

使用Power Query导入数据后,可以使用计算列实现此目的。首先,请添加此排名列。 Year&month num = YEAR(Sheet1[Date])&"-"&FORMAT(MONTH(Sheet1[Date]),"00")

然后请添加此计算列

Index = COUNTROWS(
                FILTER(VALUES(Sheet1[Year&month num]),
                       Sheet1[Year&month num]<EARLIER(Sheet1[Year&month num])

))+1

现在它应该只在新月份时添加新索引。

enter image description here

答案 2 :(得分:1)

这是基于Power Query的方法:

从此表开始为“Table1”:

enter image description here

单击“月”列,然后单击“转换”选项卡,再单击“分组依据”按钮;并完成如下对话框:

enter image description here

...然后点击“确定”。

您现在将拥有一个如下所示的表格:

enter image description here

单击“添加列”选项卡,然后单击“索引列”按钮添加索引列。

您现在将拥有一个如下所示的表格:

enter image description here

点击“AllData”列右上角的enter image description here按钮,展开“AllData”列中的表格。

您现在将拥有一个如下所示的表格:

enter image description here

拖动列以按照您想要的顺序排列它们:

enter image description here