【问题标题】:Define the granularity for "day" when calculating NumOfDays?在计算 NumOfDays 时定义“天”的粒度?
【发布时间】:2016-12-21 14:59:47
【问题描述】:

在计算每天的平均销售额时,我对NumOfDays 有以下度量:

NumOfDays = IF (
    [Sales Amount] > 0; 
    COUNTROWS ( Date )
)

这样做是为了删除那些没有销售的日期的天数。

因此,我有以下视觉效果:

如您所见,总数是错误的。 这是因为数据库的年份比矩阵中显示的年份多。 计算 NumOfDays 时如何定义“天”的粒度? 也就是说,我如何计算那些只有销售额的那几天的行数?

谢谢!

【问题讨论】:

    标签: powerbi dax


    【解决方案1】:

    我推荐两件事:

    1. 使用 CALCULATE() 代替 IF,这是使用过滤器定义度量的正确 DAX 方法
    2. 使用 DISTINCTCOUNT() 而不是 COUNTROWS(),以确保您永远不会遇到重复计数(以防您的数据变得更加细化)

    此计算可能有效 - 但您可能需要在 Date 表中指定实际日期列。

    NumOfDays = CALCULATE(DISTINCTCOUNT(Date[Date]),FILTER(SalesTable,[Sales Amount] > 0))
    

    如果还有其他问题,请告诉我您希望在矩阵中看到什么。

    【讨论】:

    • 您好,我收到错误消息:“函数‘CALCULATE’已在用作表过滤器表达式的真假表达式中使用。这是不允许的。”
    • 我明白了,我很惊讶它在这里发生,因为它是一个基本的表达方式,但我想我知道解决方案。您只需要在里面添加 FILTER() 函数:NumOfDays = CALCULATE(DISTINCTCOUNT(Date[Date]),FILTER(SalesTable,[Sales Amount] > 0))。请记住将“SalesTable”引用替换为调用主表的任何内容。
    • 更新了我原来的帖子以显示正确的计算
    猜你喜欢
    • 2013-05-20
    • 2015-06-17
    • 2016-06-02
    • 1970-01-01
    • 2017-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多