2017-01-27 27 views
0

我正在努力獲取銷售額和銷售年度迄今銷售額的新銷售額和銷售額。我試圖在一個表格中顯示它,然後用一年切片機過濾該表格。 下面是我所使用的公式:在電力BI中使用IF和值()的錯誤彙總

SalesPY = CALCULATE(SUM(SalesData[Value]),SAMEPERIODLASTYEAR('Calendar'[DateKey])) 

SalesYTD = TOTALYTD(SUM(SalesData[Value]), 'Calendar'[DateKey]) 

NewSalesUppdate = SUMX(VALUES(SalesData[CustomerName]),IF([SalesYTD] > 0 && [SalesPY] = 0, [SalesYTD])) 

LostSalesUppdate = SUMX(VALUES(SalesData[CustomerName]),IF([SalesYTD] = 0 && [SalesPY] > 0, -[SalesPY])) 

LostSalesOld = IF([SalesPY] > 0 && [SalesYTD] = 0, -[SalesPY]) 

NewSalesUppdate公式工作,因爲它應該正確地總結。然而LostSalesUppdate不起作用,儘管與NewSalesUppdate相比有相反的公式。看起來IF聲明從未成爲現實。這很奇怪,因爲公式LostSalesOld顯示正確的值,但它不顯示總數。

所有提示都被讚賞!


樣本數據:

Sample Data

當前結果:

Current Result 通知客戶如何 - 沒有銷售累計。 LostSalesOld銷售額爲85000,但沒有任何數字反映在總額中。 LostSalesUppdate什麼也沒有顯示。

所需的結果:

Desired Result 現在的銷售損失的一列(並不重要),對顧客的儲值,共

+0

你能解釋一些樣本(比如每月)的數據,你想完成什麼,你現在看到了什麼? SalesPY和SalesYTD度量是不同的(一個限於當前日期上下文,另一個是YTD度量)。因此,SalesYTD一旦在當年銷售一次就不會爲0,而SalesPY可能經常爲0.因此,我不會將LostSalesUppdate和NewSalesUppdate描述爲彼此相反。 – Leonard

+0

感謝您的回覆@Leonard!我會盡量做一些更具體的事情。 – Derf95

+0

在下表中,您可以看到我希望如何工作。但是,正如我之前所說的,LostSalesOld公式在lostSales中爲客戶A顯示-70000,但未顯示總額。當我嘗試使用LostSalesUppdated時,lostSales列變成空白(永遠不會變成真)。所以我知道公式只在使用IF語句時才起作用,但當我添加Values方法時它不起作用。因爲我正在過濾每位客戶的SalesYTD,所以感覺SalesYTD應該可能爲0. @Leonard – Derf95

回答

0

關注LostSalesUppdate,這個問題是一個背景。您的措施是「對於銷售數據表中的每個客戶名稱,如果去年的銷售額和今年沒有銷售額,請向我展示去年的銷售額。

的問題(我承認這是微妙的),是因爲今年是客戶A沒有銷售,客戶A是在SALESDATA表中未至於這一措施而言。因此,公式的其餘部分被忽略。

我會推薦的是添加一個單獨的表與客戶列表,類似於您的日期表(每個客戶一行)。然後,更新您的LostSalesUppdate公式,以便從SalesData中提取CustomerName,而不是從新客戶表中提取CustomerName。

LostSalesUppdate = 
SUMX (
VALUES (Customer[CustomerName]), 
IF ([SalesYTD] = 0 && [SalesPY] > 0, - [SalesPY]) 
) 
+0

感謝您的幫助@Leonard!它似乎正在像現在這樣工作。 – Derf95