2017-01-27 29 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