Power BI中的交叉表数据

时间:2018-04-04 11:51:35

标签: powerbi dax

我在PowerBI中有数据,我需要交叉表以生成特定视觉的基础数据。

示例数据:

tblExample = DATATABLE("Customer ID", INTEGER, "Gender", STRING, "Age Range", STRING, "Order Date", DATETIME, "WS Next Day", STRING, "Order Next Day", STRING, "WS Next Week", STRING, "Order Next Week", STRING, "WS Next Month", STRING, "Order Next Month", STRING,
    {
        {1, "Female", "30 - 39", "2017-02-09", "Yes", "No", "Yes", "No", "No", "No" },
        {2, "Female", "30 - 39", "2017-02-11", "Yes", "Yes", "Yes", "No", "No", "No" },
        {3, "Female", "50 - 59", "2017-02-12", "Yes", "No", "Yes", "No", "No", "No" },
        {4, "Male", "20 - 29", "2017-02-12", "Yes", "No", "Yes", "No", "No", "No" },
        {5, "Male", "40 - 49", "2017-02-19", "No", "No", "Yes", "No", "No", "No" }
    }
)

此数据显示已下订单的客户,然后是一组六个是/否标志,显示客户是否在第二天/周/月再次访问过该网站,以及此次访问是否导致另一个订单

我需要做的是将此信息转换为一个表格,每个类别为#34;次日","下周"和"下个月",每行显示一个值,显示(a)访问过的客户数量和(b)购买的数量。

我认为这在DAX中会非常直接 - 而且说实话我不确定它是不是我还没有错过一些非常明显的东西 - 但是在那一刻,我无法看到实现这一目标的一种整洁方式。

我已经为我需要的六个值中的每一个创建了度量,如下所示:

NextDay_Visits = COUNTROWS(FILTER(tblExample, [WS Next Day] = "Yes"))
NextDay_Orders = COUNTROWS(FILTER(tblExample, [Order Next Day] = "Yes"))

依此类推,当我在卡片中看到这些措施时,它们会给我正确的值,但要把它们塞进一张正确形状的表格中,我会做以下几点(这几乎肯定是错误的做法)这在PowerBI中!):

1创建一个新表

tblJunk1 = DATATABLE("Row ID", INTEGER, "Category", STRING, { {1, "Next Day"} })

2将相应的度量添加到新表中作为新列

tblJunk2 = ADDCOLUMNS(tblJunk1, "Visits", [NextDay_Visits], "Purchases", [NextDay_Purchases])

3使用tblJunk3 / tblJunk4为"下周"再次执行相同的两个步骤。图

4使用tblJunk5 / tblJunk6再次执行相同的两个步骤#34;下个月"数字。

5通过联合tblJunk2 / tblJunk4 / tblJunk6创建一个最终表格作为我的柱形图的基础

tblChartBase = UNION(tblJunk2, tblJunk4, tblJunk6)

然后是好消息/坏消息,因为虽然这在我看来是一个可怕的黑客解决方案,但我确实得到了我需要的表格,正确的数字和正确的形状,我可以建立一个列它上面的图表给了我正在寻找的分析。 (好消息!)

然而,一旦我根据"性别"将切片器添加到页面中和#34;年龄组",这个新表中的措施没有对它们做出回应,这些数字并没有改变意味着这不是实现我想要的方式。 (坏消息)

我不确定我是否对正确的方法进行了对冲,但需要调整我的DAX以获取措施,以便他们对页面上的切片器做出响应,或者这是否完全是错误的方法?

感激地收到任何建议/指示。

1 个答案:

答案 0 :(得分:2)

我会在查询编辑器中解决此要求。它具有 Unpivot 功能,可满足您的需求,例如

https://support.office.com/en-us/article/unpivot-columns-power-query-0f7bad4b-9ea1-49c1-9d95-f588221c7098

自撰写该文章以来,查询编辑器已添加了一些选项,例如取消透视其他列,仅取消选择未选择的列