我跟踪机器和他们的开/关状态,以及他们的服务历史:
MachineHistory
MachID
Branch
Status
StatusDate
ServiceHistory
ServiceID
MachID
ServiceDate
Calendar
Date
Year
Month
MachineHistory和ServiceHistory与MachId相关。 日历与日期列相关。
我想要的是ActiveMachineCount的度量(表示Status =" ON")和ServicedMachineCount(表示ServiceHistory表中存在行)。两者都应该按日期和组合进行分组。分支。
所以我应该能够有一个显示例如
的excel枢轴Branch ActiveMachCnt ServicedMachCnt
A 50 13
B 23 6
我有一个MachIdCnt = distinctcount(machineid)的度量 我的问题是ActiveMachIdCnt = calculate([MachIdCnt],MachineHistory [Status] =" ON")
无论我如何尝试使用ActiveMachIdCnt,我要么得到a)字面上表中的所有机器ID,或者b)已经服务的机器ID的数量(到期)关系)。
我显然没有正确理解ALL,ALLEXCEPT等功能系列。 :/
如何将ActiveMachIdCnt指标调整为"忽略"与ServiceHistory的关系,但仍然尊重过滤日期&分支?
感谢您的任何提示, SFF
答案 0 :(得分:1)
我认为您遇到此问题是因为您的数据模型不正确。您的历史记录表(机器历史记录和服务历史记录)两者都是事实表。事实表不能有直接关系,这是禁止的。
您需要做的是添加一个维度“机器”,它将包含MachineId和您机器的其他有用属性。然后,此表将通过MachineID与计算机历史记录和服务历史记录相关,与日历表通过日期相关的方式完全相同。
有了这样的结构,您的DAX非常简单:
Active Machines = DISTINCTCOUNT(MachineHistory[MachineId])
Serviced Machines = DISCTINCTCOUNT(ServiceHistory[MachineId])
如果你想通过Branch分析这些度量,你需要将分支作为一个单独的维度(这将是我的选择),或者作为维度“机器”中的属性(这可能有效,但在概念上是劣等设计)。