Power BI-运行带有许多过滤器的总计列

时间:2019-10-18 06:47:44

标签: powerbi

我有一个“销售”表(字段:“产品”,“国家/地区”,“日期”,“销售”),其中包含许多产品和国家/地区的每月销售额。我也有带有日历的表,产品列表,与此表链接的县列表。我想在“销售”中添加列,其中包含每个产品/国家/地区的销售总额,请查看具有所需结果“销售总额”的字段。

我尝试使用 YTD = TOTALYTD(SUM(Sales [Sales]); Calendar [Date]),但无效。我认为我需要在TOTALYTD函数中使用过滤器,但是我也没有设法理解它。您能建议我解决我的情况的正确方法吗?

Table "Sales"

3 个答案:

答案 0 :(得分:1)

建议我使用此代码

列= SUMX(     过滤器(         销售,         销售[产品] =早期(销售[产品])             && Sales [Country] = EARLIER(Sales [Country])             && Sales [Date] <= EARLIER(Sales [Date])             &&年(销售[日期])=年(早(销售[日期]))     ),     销售[销售] )

有效。

答案 1 :(得分:0)

我针对产品和国家/地区的每种组合制定了一套衡量标准来部分解决我的问题:

A_US = TOTALYTD(SUM(Sales [Sales]);'Calendar'[Date]; FILTER(All(Sales); Sales [Product] =“ A” && Sales [Country] =“ US”))

A_Canada = TOTALYTD(SUM(Sales [Sales]);'Calendar'[Date]; FILTER(All(Sales); Sales [Product] =“ A” && Sales [Country] =“ Canada”))

,依此类推。但是,如果我在30个国家/地区拥有100种产品,该怎么办?我想我需要在“销售”中创建一列“运行总金额”,以计算每种产品和aech国家/地区的运行总金额。

答案 2 :(得分:0)

TOTALYTD函数的问题在于它仅需要一个过滤器。 技巧是像在第二个响应中一样使用过滤器功能。

要仅对所有产品和国家/地区使用一列,则必须获取当前行的上下文。 为此,您可以在dax中更早地使用该功能。

有关早期文档:https://docs.microsoft.com/en-us/dax/earlier-function-dax

该列需要使用以下表达式构建:

TOTALYTD(SUM(Sales [Sales]),'Calendar'[Date],filter(Sales,and(Sales [Country] = EARLIER(sales [Country]),sales [Product] = EARLIER(sales [Product] ))))

相关问题