【问题标题】:Create calculated measure from other table with filters使用过滤器从其他表创建计算度量
【发布时间】:2019-08-16 11:27:03
【问题描述】:

我有四个表,我尝试过相关和不相关的:

  1. 商店(“商店编号”列)
  2. 日历(“销售日期”列)
  3. SKU(“SKU 代码”列)
  4. 销售(列“商店编号”、“销售日期”、 “SKU 代码”和“销售数量”)

我在日历和 SKU 表上有切片器

我需要列出所有商店,每个商店的总数为"Sales Quantity",同时将销售数量限制为上述两个切片机。基本上,我需要列出这些列:

  1. Store Number - 来自 Store 表(不从 Slicers 过滤)
  2. Store 名称 - 来自 Store 表(不从 Slicers 过滤)
  3. 商店的总销售额 - 由日历和 SKU 切片器过滤的计算度量

所以我的问题是,创建计算度量需要什么 DAX?

请注意,我必须列出所有商店,无论它们是否在规定期限内有销售。

我尝试了各种 DAX 函数,例如 TREATASSUMMARIZE、ETC。 我试过有没有积极的关系,也没有关系。 我得到的最接近的是下面的代码,但它不包括销售额为零的商店。无论销售额如何,我都需要所有商店。

Qty by Store = CALCULATE(
    sum(Sales[Sales Qty])
    ,USERELATIONSHIP(
        Sales[Store Number]
        ,Store[Store Number]
    )
)

我管理的输出的问题是没有销售的商店被排除在列表之外。我需要把它们包括在内。

【问题讨论】:

  • 你能分享你的关系图和你当前和想要的情况的图片吗?您是否尝试在所有关系的关系选项中将交叉过滤器方向更改为两者?
  • 这是一个链接:1drv.ms/u/s!AjQiTPc3xudmoaVpJGuayxfjrt3a-w?e=yiO6zn 这是一个示例 pbix (sandbox) 它有一些示例数据和数据模型
  • 只要您的模型中有活动的关系,将 [Sales Qty] 和 [Store Name] 都放在一个表中似乎可以正常工作。请务必将聚合模式设置为 sum(视觉对象的字段窗格中列名称旁边的向下箭头)。如果您还想显示零,请参阅@Alexis 的答案

标签: powerbi dax


【解决方案1】:

保持关系活跃,并将 DAX 公式更改为

Qty by Store = 
    VAR res = sum(Sales[Sales Quantity])
RETURN IF (ISBLANK(res), 0, res)

不需要USERELATIONSHIP()。关系Store - Sales 已处于活动状态。表格视觉中商店数量发生变化的原因是,当特定商店Qty by store 没有销售时,度量返回BLANK,而那些BLANKs 会被表格过滤掉。

结果:

【讨论】:

  • 谢谢尼克,这也有效 - 也感谢有用的信息。亚历克西斯的解决方案也有效,当他首先回答时,我已将他标记为正确答案
  • @RGI 没关系,但这里的答案是按时间降序排列的。最后一个在列表中排在第一位
【解决方案2】:

让空白返回零的简单方法是将+0 附加到您的度量公式。

Qty by Store = SUM ( Sales[Sates Quantity] ) + 0

这是有效的,因为 DAX 计算 BLANK() + 0 = 0

【讨论】:

    猜你喜欢
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 2016-10-10
    • 2014-10-13
    • 2019-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多