首页 > 解决方案 > 在 Power Pivot / DAX 中创建基于日期范围计算可用设备的度量

问题描述

当设备不在日期范围(开始和结束日期)内时,我正在寻找单位计数。

如何进行度量“AvailUnitCount”以在时间线维度(例如 2018 年 11 月 11 日)中按类别为我提供单位计数?

我认为它可以通过 Power Pivot 和日期表中的度量来实现,但我对 DAX 和时间维度概念总体上还是很陌生。

我的措施是:

AvailUnitCount := CALCULATE( DISTINCTCOUNT( EquipUsage[EquipmentNo] ) )

如何将时间维度合并到上述度量中,以便通过在 Excel 中移动时间线来报告特定日期的可用设备?

请参阅下面的数据集和期望的结果。我非常感谢您对此的建议。

表 1:EquipUsage

EquipNo     CategoryNo  UsageStartDate  UsageEndDate
----------------------------------------------------
10005164    A020004004  5-Nov-18        5-Dec-18
10005167    A020004004  24-Oct-18       10-Nov-18
10005176    A020004005  9-Oct-18        5-Dec-18
10015982    A020004006  18-Feb-18       5-Sep-18
10019170    A020004006  16-Aug-18       30-Mar-19
10019551    A020004006  2-May-17        10-Nov-18
10005178    A020004007  20-Sep-18       15-Jan-19

表 2:EquipCategories(2018 年 11 月 11 日的预期结果示例)

CategoryNo  AllUnits    AvailableUnits
--------------------------------------
A020004004  2           1
A020004005  1           0
A020004006  3           2
A020004007  1           0

标签: powerbidaxpowerpivotmeasure

解决方案


AllUnits措施很简单:

AllUnits = COUNTROWS(EquipUsage)

对于可用性,请阅读您想要的日期并总结该日期不在给定日期范围内的行:

AvailableUnits = 
VAR CheckDate = SELECTEDVALUE(DateTable[Date])
RETURN SUMX(EquipUsage,
           IF(
               EquipUsage[UsageStartDate] <= CheckDate &&
               EquipUsage[UsageEndDate]   >= CheckDate,
               0,
               1
           )
       )

推荐阅读