DAX 基于月份计算指数

DAX calculate index based on month

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

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 |

有人知道怎么做吗?

实现此目的的一种方法:

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

第二部分将 12 添加到过去的每一年,其中 -2017 位假设您的第一个约会是在 2017 年 1 月(为您留下 12x(2017-2017) = 12x0 = 0第一年。

您可以在使用 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

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

这是一个基于 Power Query 的方法:

从这个 table 开始为 "Table1":

单击 "Month" 列,然后单击 "Transform" 选项卡,然后单击 "Group By" 按钮;并像这样完成对话框:

...然后单击 "OK."

您现在的 table 看起来像这样:

单击 "Add Column" 选项卡,然后单击 "Index Column" 按钮添加索引列。

您现在的 table 看起来像这样:

单击 "AllData" 列右上角的 按钮以展开 "AllData" 列中的 table。

您现在的 table 看起来像这样:

拖动列以将它们排列成您想要的顺序: