【问题标题】:DAX AVERAGEX including a 0 for total averageDAX AVERAGEX 包括 0 表示总平均值
【发布时间】:2019-10-18 15:39:25
【问题描述】:

我的表格代表在生产线上工作的用户。表中的每一行提供用户在 15 分钟窗口内生产的单位数。我正在尝试计算每个用户的单位/小时(这似乎工作正常),但我的总体平均值似乎偏离了。

我测量的表格和结果:

逐行这是我正在寻找的。但是 179.67 的总平均值是错误的。应该是 196。我认为对于 11:30 的时间戳,Leondro 没有任何工作,它包括一个 0。我想排除它。

测量:

UPH = 
var unitshour = CALCULATE(SUM(Table1[Units]) / (DISTINCTCOUNT(Table1[DateTime])/4))
var users = AVERAGEX( VALUES(Table1[DateTime]), DISTINCTCOUNT(Table1[Username]))
RETURN

unitshour/ users

【问题讨论】:

  • 你为什么期望 196? 179.67 在我看来很合适。
  • @AlexisOlson 196 是 UPH 列的平均值(如果您平均图像中显示的数字)。我假设 AVERAGEX 看到 Leondro 在 11:30 什么都没有,所以当时它给了我一个零,将平均 UPH 从 196 降低到 179.67。我想我理解为什么会发生这种情况,但我不知道如何解决它(不包括 Leondro 在 11:30 的 UPH(将为 0),因为他没有工作)。

标签: powerbi dax


【解决方案1】:

如果您想平等对待每个时间段,我认为 196 不是您想要的数字。我建议这个替代方案:

UPH =
AVERAGEX (
    VALUES ( Table1[DateTime] ),
    CALCULATE ( 4 * SUM ( Table1[Units] ) / DISTINCTCOUNT ( Table1[Username] ) )
)

如果您希望每个时间段按该时间段内的用户数加权,那么 196 就是您想要的。

UPHUserWeighted =
VAR Summary =
    SUMMARIZE (
        Table1,
        Table1[DateTime],
        Table1[Username],
        "UPH", 4 * SUM ( Table1[Units] ) / DISTINCTCOUNT ( Table1[Username] )
    )
RETURN AVERAGEX ( Summary, [UPH] )

【讨论】:

    猜你喜欢
    • 2019-05-05
    • 2020-09-29
    • 1970-01-01
    • 2018-09-09
    • 2021-04-09
    • 2017-08-10
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    相关资源
    最近更新 更多