簡體   English   中英

Power BI/DAX:按添加的列值篩選 SUMMARIZE 或 GROUPBY

[英]Power BI/DAX: Filter SUMMARIZE or GROUPBY by added column value

由於數據的機密性,我將嘗試使用一些隨機示例來描述我正在努力解決的問題。 假設我在 Power BI 中有一個包含發票數據的事實表。 我需要計算在過去 12 個月內銷售額超過 5 萬歐元的不同產品 ID 的數量,或者更准確地說是在選定日期之前的 12 個月內。 同時,我需要能夠將結果縮小到選定的國家、產品組和產品類別。

我已經開始像這樣設置 DATESBETWEEN 的日期范圍:

productsCount = 
VAR lastDay = IF(MAX('Calendar table'[Date]) > NOW(); NOW(); MAX('Calendar table'[Date]))
VAR firstDay = EDATE(lastDay; -12)
RETURN

但后來我迷路了:

CALCULATE(
    COUNTROWS('Sales');
    SUMMARIZE(
        'Sales';
        'Sales'[ProductID];
        "prodSales"; SUM('Sales'[EUR])
    );
    DATESBETWEEN('Sales'[Date]; firstDay; lastDay);
    ALLEXCEPT(
        'Sales';
        'Sales'[Product group];
        'Sales'[Product category];
        'Sales'[Country]
    );
    [prodSales] > 50000
)

問題是,在計算行數之前,我需要能夠按銷售額總和過濾匯總數據。

我沒有對此進行測試,但我認為這樣的事情可能適用於您在總結后進行過濾:

productsCount =
VAR lastDay =
    IF (
        MAX ( 'Calendar table'[Date] ) > NOW ();
        NOW ();
        MAX ( 'Calendar table'[Date] )
    )
VAR firstDay = EDATE ( lastDay; -12 )
RETURN
    COUNTROWS (
        FILTER (
            CALCULATETABLE (
                SUMMARIZE ( 'Sales';
                   'Sales'[ProductID];
                   "prodSales"; SUM ( 'Sales'[EUR] )
                );
                DATESBETWEEN ( 'Sales'[Date]; firstDay; lastDay );
                ALLEXCEPT (
                    'Sales';
                    'Sales'[Product group];
                    'Sales'[Product category];
                    'Sales'[Country]
                )
            );
            [prodSales] > 50000
        )
    )

您可以在 power 查詢編輯器中創建一個匯總表,然后在 dax 中創建一個度量來過濾超過 50k 的結果。

總之,我們可以在匯總表之后進行過濾

我的輸入表是

在此處輸入圖像描述

我正在寫查詢

App Downlaod Count = 

FILTER(
    SUMMARIZE(events_intraday,
    events_intraday[event_name],
    events_intraday[event_date],
    events_intraday[platform],
    events_intraday[stream_id],
    "Count",CALCULATE(
        COUNT(events_intraday[event_name]),
            FILTER(events_intraday,
                    (events_intraday[platform] = "ANDROID" || 
                    events_intraday[platform] = "IOS")
                )
            )
        ),
        events_intraday[event_name] = "first_open" && 
        (events_intraday[stream_id] = "1415470954" || 
        events_intraday[stream_id] = "1420775080")
    )

Output 是

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM