簡體   English   中英

聚合功率 BI SUM 的問題

[英]Issue with aggregate power BI SUM

我正在嘗試在 PowerBI 上復制我的環境中存在的業務計算,但我沒有得到我期望的結果。

我有 2 張表作為示例,並復制了現實生活中的問題。

表銷售:

dateSold      Sector    Idsale  NPS
01/12/2021    A         1       good
01/11/2021    A         2       bad
01/11/2021    A         3       good
01/11/2021    B         4       bad
01/10/2021    A         5       bad
01/10/2021    B         6       good
01/10/2021    B         7       good
01/09/2021    A         8       good
01/09/2021    A         9       good
01/09/2021    A         10      good

和重量表:

SECTOR  Weight
A       0,7
B       0,3

我創建了一些字段來做我的數學,他們做我所期望的,但最后一個字段沒有。 我使用這種方法對字段 NPS 上的 GOOD 和 BAD 和總值進行了計數:

QuantityGOOD = 
CALCULATE(
    COUNTA(Sales[Idsale])
    , DATESINPERIOD(Sales[dateSold], SELECTEDVALUE(Sales[dateSold]), -3, MONTH)
    , Sales[NPS] == "good"
)

然后使用我的字段創建了一個帶有數學的字段:

NPSCalculated = 
[QuantityGOOD] / [QuantityTotal] - [QuantityBad] / [QuantityTotal] 

然后在最后一步中,我必須將此值乘以另一個表中的權重,然后我嘗試了這個:

FinalValue = 
CALCULATE(
SUMX(
    SUMMARIZE(Sales ,Sales[dateSold], weights[Sector]),
    [NPSCalculated] * 
    CALCULATE(
        AVERAGE(weights[weight]))))

但是這段代碼去掉了前幾個月存在的扇區 A 的值,並且在目標月份不存在。 它返回總和而不丟失部分。

SaleDate    Sector  bad   good  total   NPS     weight  FinalValue
2021-12     A       2     2     4       0       0,7     0
2021-12     B       1     2     3       0,333   0,3     0,1

我需要得到上述列 FinalValue 的結果(僅在 2021-12 年在 excel 中完成),但我只得到 PBI 的第一行。 你們能幫幫我嗎?

CALCULATE(
    SUMX(
        CALCULATETABLE(
             SUMMARIZE(Sales ,Sales[dateSold], weights[Sector])
             ,DATESINPERIOD(Sales[dateSold], SELECTEDVALUE(Sales[dateSold]), -3, MONTH)
        )
        ,[NPSCalculated] * 
        CALCULATE(
            AVERAGE(weights[weight])
        )                            
    )
)
  1. 檢查以下步驟是否遵循單擊文件->獲取數據->並導入所需的數據->然后將數據加載到 PowerBI加載數據

確保數據集已完美加載。

  1. 接下來,您需要通過 Calendar = CALENDAR(MIN('Sales'[dateSold]), MAX('Sales'[dateSold])) 為此視覺對象創建一個新的日期表,然后添加一個名為 month 的計算列,如下所示。

日歷表創建

  1. 在表格視覺中,將 [dateSold] 替換為 [Month],這將使表格視覺獲得 [month] 和 [SECTOR] 的笛卡爾積。

  2. 並更改測量 DATESINPERIOD() 中的參數。 將 dateSold 列替換為新的日期列。 DATESINPERIOD('Sales'[dateSold], MIN('Calendar'[Date]),-3,MONTH))期間的日期

我需要得到上述列 FinalValue 的結果(僅在 2021-12 年在 excel 中完成),但我只得到 PBI 的第一行。 你們能幫幫我嗎?

然后在最后一步,我必須將此值乘以另一個表中的權重,我嘗試了這個:

FinalValue = CALCULATE(SUMX(SUMMARIZE(Sales,Sales[dateSold], weights[Sector]), [NPSCalculated] * CALCULATE(AVERAGE(weights[weight]))))

如果我們使用這個代碼而不是這個,那么預期的 output 將顯示為結果 FinalValue = VAR _s = ADDCOLUMNS ( CROSSJOIN ( VALUES ( 'Calendar'[Month] ), 'Weight' ), "final", [Weight] * [NPSCalculated] ) RETURN SUMX ( _s, [final] )結果

暫無
暫無

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

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