[英]Power BI - DAX measure to reference a list of values. Calculate net turnover per broker - more elegant solution?
以下是股票交易數據的簡化版本。
StockData =
DATATABLE (
"STOCK", STRING,
"Date", DATETIME,
"Buyer", STRING,
"Seller", STRING,
"Turnover", INTEGER,
{
{ "AAPL", "2019/04/07", "GSI", "BRC", 100 },
{ "AAPL", "2019/04/07", "CITI", "JPM", 500 },
{ "AAPL", "2019/04/07", "JPM", "GSI", 700 },
{ "AAPL", "2019/04/08", "GSI", "JPM", 300 },
{ "AAPL", "2019/04/08", "GSI", "CITI", 800 },
{ "AAPL", "2019/04/08", "JPM", "BRC", 400 },
{ "MSFT", "2019/04/07", "GSI", "GSI", 500 },
{ "MSFT", "2019/04/07", "JPM", "BRC", 700 },
{ "MSFT", "2019/04/07", "BRC", "GSI", 800 },
{ "MSFT", "2019/04/08", "GSI", "BRC", 500 },
{ "MSFT", "2019/04/08", "GSI", "JPM", 600 },
{ "MSFT", "2019/04/08", "CITI", "BRC", 500 }
}
)
目標是按經紀人每天計算凈營業額。
我可以通過遵循DAX措施來實現這一點
Test BRC Net Turnover =
VAR TotalBuy = CALCULATE(SUM(StockData[Turnover]),StockData[Buyer] = "BRC")
VAR TotalSell = CALCULATE(SUM(StockData[Turnover]),StockData[Seller] = "BRC")
Return TotalBuy - TotalSell
然而,為了獲得上述示例數據中所有(四個)經紀人的凈營業額,我必須用不同的標准重寫該措施四次,即,而不是使用“BRC”我必須使用“GSI”等...
實際數據集由50個不同的代理代碼組成,因此采用50種不同措施的解決方案是不可行的。
如何使這個DAX函數迭代我的數據集中的所有Broker代碼。 考慮到庫存的過濾器。 即,如果MSFT不存在典型的代理代碼,但對於AAPL,該措施將考慮這一點。
我已經嘗試過values
函數來返回所有代理的列表,但沒有任何成功。
以上是我想用一個單一措施實現的目標。
非常感謝
示例寫得很好的問題!
為此,我們首先創建一個獨立的計算表,用於不同的買家和賣家。
Brokers = VALUES( StockData[Buyer] )
現在我們可以將Brokers[Buyer]
放在Legend字段中並編寫一個讀取該值的度量。
Net Turnover =
VAR Broker = SELECTEDVALUE ( Brokers[Buyer] )
VAR TotalBuy = CALCULATE ( SUM ( StockData[Turnover] ), StockData[Buyer] = Broker )
VAR TotalSell = CALCULATE ( SUM ( StockData[Turnover] ), StockData[Seller] = Broker )
RETURN
TotalBuy - TotalSell
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.