【问题标题】:Powerpivot DAX sum based on row value基于行值的 Powerpivot DAX 总和
【发布时间】:2017-09-11 00:14:10
【问题描述】:

我正在尝试根据 4 个标准创建一个运行总计,但似乎无法使其正常工作 - 抱歉,对于 powerpivot 和 DAX 来说都是新手。

我有一个总共有 17 列的查询 - 13 个实际数据和 4 个计算数据。

我想获得基于 4 个标准的累积总数。 到目前为止,我什至无法获得 1 个标准:

CALCULATE(
    SUM(Tonnes),
    Filter(Query,[Deliveryid]=[Deliveryid])
    )

基本上想要对每个交付ID 的所有吨数求和-这很简单,但我希望最终对行中日期值之前的所有日期以及每个商品和交货地址等执行此操作。

任何帮助将不胜感激。

【问题讨论】:

  • 我强烈推荐这个网站:daxpatterns.com 它看起来很简单,但我保证绝对不是,但绝对值得学习。
  • 谢谢尼克。看起来挺好的。对 DAX 来说仍然很新,所以任何资源都是很好的资源!
  • 抱歉,我无法回答您的问题 - 仍在学习自己。但是我学到了一件事:与 SQL 表达式不同,如果您连接了列,那么您在表达式中使用哪一列(事实中的列或维度中的列)会有很大的不同。

标签: excel powerpivot dax


【解决方案1】:

关于您对每个 Deliveryid 的所有吨数求和的具体要求,您已经接近了。试试这个:=CALCULATE(SUMX(Table1,[Tonnes]),FILTER(Table1,[Deliveryid]=EARLIER([Deliveryid])))。它将对每个 Deliveryid 的吨数求和。

关于您后续希望将当前日期之前的每个 Deliveryid 的所有吨数相加,试试这个:=CALCULATE(SUMX(Table1,[Tonnes]),FILTER(FILTER(Table1,[Deliveryid]=EARLIER([Deliveryid])),[Date]<EARLIER([Date])))

下表可能有助于说明它们的作用(我使用了很长的列标题以希望使这更容易理解):

TotalTonnesForDeliveryid(使用上面的第一个代码项制作)只是按 Deliveryid 总计吨。在下表中,您可以看到 Deliveryid 1 的 TotalTonnesForDeliveryid 为 91 吨 ... 38(自 2017 年 1 月 1 日起)+ 23(自 2017 年 1 月 3 日起)+ 30(自 2017 年 1 月 6 日起)。

TotalTonnesForDeliveryBeforeCurrentDate(使用上面的第二个代码项制作)按 Deliveryid仅针对当前日期之前的日期计算吨数。 TotalTonnesForDeliveryBeforeCurrentDate 首次出现 Deliveryid 时显示空白的原因是因为之前没有交付。如果针对特定 Deliveryid 进行了多次交货,则每次出现 Deliveryid 都会显示之前日期的吨数的累积。所以对于 Deliveryid 1:初始交货日期(2017 年 1 月 1 日)显示空白 TotalTonnesForDeliveryidBeforeCurrentDate(因为之前没有交货);第二个交货日期(2017 年 1 月 3 日)显示 38 吨(即 2017 年 1 月 1 日交货);第三个交货日期(2017 年 1 月 6 日)显示 61 吨(即第一次交货的 38 吨 + 第二次交货的 23 吨)。

【讨论】:

  • 你先生是个传奇。为超晚的依赖道歉,我实际上并没有再次看到这个。我还在学习 DAX,公司正在走 PowerBI/PowerPivot 路线,我想成为超级用户。其中包括 DAX 和 SQL。任何资源都会非常有用!
猜你喜欢
  • 2015-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多