DAX表达式:通过表重塑创建新表

时间:2019-03-20 15:56:00

标签: powerbi dax

我是Power BI的新手,也许这是一个非常愚蠢的问题。

我想要实现的是使用DAX通过重塑原始表来创建新表。

原始表格如下:

ID  Start   End
1   Sep 2013    Oct 2013
2   Oct 2013    Jan 2014
3   Oct 2013    Dec 2013
4   Oct 2013    Nov 2013
5   Nov 2013    Dec 2013
6   Nov 2013    Jan 2014

新表将使用“开始”和“结束”中的值作为行名,并将每个月年中“开始”和“结束”的计数用作值。这意味着预期的,经过重塑的新表如下所示:

MonthYear   StartCount  EndCount
Sep 2013    1   0
Oct 2013    3   1
Nov 2013    2   1
Dec 2013    0   2
Jan 2014    0   2

我想了解一下您是否知道如何使用DAX重塑表格。

1 个答案:

答案 0 :(得分:1)

如果您试图创建一个计算表,这应该返回预期的输出:

New Table =
ADDCOLUMNS (
    SELECTCOLUMNS (
        SUMMARIZE (
            UNION ( VALUES ( Data[Start] ); VALUES ( Data[End] ) );
            Data[Start]
        );
        "Date"; [Start]
    );
    "StartCount"; CALCULATE ( COUNTROWS ( Data ); Data[Start] = EARLIER ( [Date] ) );
    "EndCount"; CALCULATE ( COUNTROWS ( Data ); Data[End] = EARLIER ( [Date] ) )
)

使用 UNION SUMMARIZE ,我得到的日期具有不同的值,使用 SELECTCOLUMNS 仅用于创建别名。 使用 ADDCOLUMNS 来创建 CALCULATE 的范围,并使用 EARLIER 来过滤数据。