【问题标题】:PowerBI and filtered sum calculationPowerBI 和过滤总和计算
【发布时间】:2020-06-29 01:44:13
【问题描述】:

我应该能够就病假(天)和人年之间的关系进行报告。数据是每月级别的,由四年组成,如下所示(还有自己的年份和业务单位列):

Month   Sick leaves (days)  Man-years
January        35               1,5
February        0               1,63
March          87               1,63
April          60               2,4
May            44               2,6
June            0               1,8
July            0               1,4
August         51               1,7
September      22               1,6
October        64               1,9
November       70               2,2
December       55               2

用户必须能够过滤年、月以及业务单位,并获得过滤时间段内(以及所选业务单位)内的病假天数与人年总和相比的信息在同一时期(和单位)。根据上面的测试数据计算,期望的结果应该是488/22.36 = 21.82

但是,我没有设法做我想做的事。主要问题是,该计算仅考虑病假天数非零的月份,而忽略病假天数为零的月份的人年(示例数据:2 月、6 月、7 月)。我尝试了几个替代函数(all、allselected、filter…),但结果仍然很差。因此,所有有关更好解决方案的信息都将受到高度赞赏。

【问题讨论】:

  • 简单的DIVIDE(SUM(Table[Sick-days]), SUM(Table[Man-years])) 有用吗?如果没有,为什么不呢?
  • 感谢您的建议。我已经尝试过这种计算方式,但我认为问题的原因是,如果一个月内没有病假,那么在原始数据中,这些月份没有任何行。有关人年的信息在另一个表中,如果我根据业务单位和时间字段(连接类型:一对多)连接数据表(人年和病假),则计算仅考虑那些人年有病假的月份。
  • 显示你的关系图会很有用。

标签: powerbi dax slicers


【解决方案1】:

听起来这与 DAX 处理空白的方式有关 (https://www.sqlbi.com/articles/blank-handling-in-dax/)。您的上下文可能正在过滤掉“病假”的空白值的行。如何解决这个问题取决于您的数据的结构,但您可以尝试使用变量来更改过滤器上下文或使用“IF (ISBLANK (...))”来确保您正在计算空白行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多