Power BI:通过开关测量过滤表

问题描述 投票:0回答:1

您好,我正在使用以下代码根据发票时间和屏幕上选择的日期生成单独的订单存储桶。我想在页面上显示所有订单的表格,然后通过单击显示所有存储桶的圆环图对其进行过滤。以下是我正在使用的措施:

Time Frame (Same Day) =CALCULATE([Sales Credit Master],AND(SAP_Order_Export[Sales Credit Timeframe]="Same Day",SELECTEDVALUE(SAP_Order_Export[Invoice DateMaster])=SAP_Order_Export[Sales Order Date]))
 
Time Frame (Historical) = CALCULATE([Sales Credit Master], AND(SAP_Order_Export[Sales Credit Timeframe]="Historical",SELECTEDVALUE(SAP_Order_Export[InvoiceDateMaster])>SAP_Order_Export[Sales Order Date]))

Time Frame (Open) = CALCULATE([Total Open (DSR Page)],AND(SELECTEDVALUE(SAP_Order_Export[Invoice Date Master])=SAP_Order_Export[Sales Order Date],SAP_Order_Export[Invoice Date Master]=blank()))

Time Frame (Future Revenue) = CALCULATE([Total Booked],ALL(SAP_Order_Export),AND(SELECTEDVALUE('Invoice App Date'[Date])<SAP_Order_Export[Invoice Date Master],SELECTEDVALUE('Invoice App Date'[Date])=SAP_Order_Export[Sales Order Date]))

我在附图中显示的圆环图中显示这些措施。我希望能够通过单击圆环图来过滤所有订单的表格。必须有一种方法可以使用“SUMMARIZE”或类似的函数来实现这一点。任何建议将不胜感激。我尝试使用计算列来创建存储桶,但不能,因为其中一些使用 SELECTEDVALUE 函数。

powerbi dax
1个回答
0
投票

我会去创建一个辅助表:

Time Frame Categories = DATATABLE(
    "Time Frame", STRING,
    {
        {"Same Day"},
        {"Historical"},
        {"Open"},
        {"Future Revenue"}
    }
)

并且您需要更新措施以响应其中选定的时间范围,如下所示(我仅提供 1 个措施的代码,其余的您可以以相同的方式执行):

Time Frame (Same Day) = 
VAR SelectedTimeFrame = SELECTEDVALUE('Time Frame Categories'[Time Frame])
RETURN
IF(
    SelectedTimeFrame = "Same Day",
    CALCULATE(
        [Sales Credit Master],
        AND(
            SAP_Order_Export[Sales Credit Timeframe]="Same Day",
            SELECTEDVALUE(SAP_Order_Export[Invoice DateMaster])=SAP_Order_Export[Sales Order Date]
        )
    ),
    BLANK()
)

对于动态过滤器行为,请在您的测量中使用 TREATAS。

© www.soinside.com 2019 - 2024. All rights reserved.