在计算NumOfDays时定义“day”的粒度?

时间:2016-12-21 14:59:48

标签: powerbi dax

在计算每天的平均销售额时,我对NumOfDays采取了以下措施:

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

这样做是为了在没有销售的情况下删除这些日期的天数。

因此,我有以下视觉:

Visual

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

谢谢!

1 个答案:

答案 0 :(得分:1)

我推荐两件事:

  1. 使用CALCULATE()代替IF,这是使用过滤器定义度量的正确DAX方式
  2. 使用DISTINCTCOUNT()代替COUNTROWS(),以确保您永远不会遇到重复计算(如果您的数据变得更加细化)
  3. 此计算可能有效 - 但您可能需要在Date表中指定实际日期列。

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

    如果问题还有其他问题,请告诉我您希望在矩阵中看到的确切内容。