【发布时间】:2021-01-25 21:24:01
【问题描述】:
在我当前的数据模型中,我正在训练尽可能避免使用双向关系。
为了让我的查找表相互交互和过滤,我一直使用 KPI 作为可视级别指示器。
基本上如果这个KPI大于0,就说明数据存在。
这在切片器上运行良好,但在其他可视化上它仍然显示所有可能的字段,除非我手动选择切片器中的项目。
我遇到的问题是我有一个函数可以根据计划的工作日给出每日平均工作量。这些在日期表上用“1”表示。
虽然这通常可以正常工作,但在将 KPI 用于可视级别过滤器时,它也会影响使用日历表中日期的另一个度量。
尤其是在向下钻取时,我遇到了困难。
Avg. Daily Workday Runtime =
DIVIDE(
SUMX(
efficiency_records,
efficiency_records[Runtime] * related('Calendar'[Binary Working Days])
),
CALCULATE(
sum('Calendar'[Binary Working Days])
)
) / 60
上述度量采用符合计划工作日的天数(日期旁边的 1 或 0 列)来给出每个计划工作日的平均运行时间。
问题在于,如果我添加一个过滤器以仅显示具有记录的项目,则此度量仅查看特定机器运行的天数,而不是所选时间段内的所有天数。
添加allexcept('Calendar', 'Calendar['Date']) 一开始似乎可行,但如果我深入研究某个零件或机器,那么日期表仍会被过滤。因此,假设所选范围内的真实工作日数是“11”,但对于所选机器,它最终为“2”,因为它只运行了 2 天。
我觉得必须有一些过滤器组合才能解决这个问题,但很难找到合适的组合。
任何建议将不胜感激。
【问题讨论】:
-
我建议为此共享一个最小的示例 PBIX 文件(上传到例如 Dropbox 或 Google Drive 并共享链接)。充分表达所有相关的过滤器、关系、度量等是相当困难的。
-
我只是尝试将我认为是问题的简化模型放在一起,但由于某种原因它没有重现问题,就像我想要的那样工作。这个建议让我意识到问题在于其中一种关系是如何建立的,与 DAX 无关。谢谢!
-
不错。这是构建最小示例的常见好处。
标签: powerbi dax powerbi-desktop