【问题标题】:Power BI - Running total column with many filtersPower BI - 运行包含许多筛选器的总列
【发布时间】:2019-10-18 06:47:44
【问题描述】:

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

我尝试使用 YTD = TOTALYTD(SUM(Sales[Sales]); Calendar[Date]) 但它不起作用。我想我需要在 TOTALYTD 函数中使用过滤器,但我也没有设法理解如何。你能给我建议一个正确的解决方案吗?

Table "Sales"

【问题讨论】:

    标签: powerbi


    【解决方案1】:

    有人建议我使用此代码

    列 = 总和( 筛选 ( 销售量, 销售[产品] = 早期(销售[产品]) && 销售[国家] = 早期(销售[国家]) && 销售[日期]

    成功了。

    【讨论】:

      【解决方案2】:

      我通过为每种产品和国家/地区组合创建一组措施来部分解决我的问题:

      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"))

      等等。但是,如果我有 100 种产品和 30 个国家/地区怎么办?我想我需要在“Sales”中创建一个“Running total”列来计算每个产品和 aech 国家/地区的运行总计。

      【讨论】:

        【解决方案3】:

        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] ))))

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-06-24
          • 1970-01-01
          • 2022-01-18
          • 1970-01-01
          • 2021-05-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多