使用 DAX 的动态集群 (Power BI)

Dynamic Cluster with DAX (Power BI)

我有以下数据模型:

Table:合约

ContractID   ValidFrom   ValidTo
1   01/01/2020  15/04/2021

Table:房间数

RoomID   ContractID  Amount  ValidFrom   ValidTo
1   1   5   01/01/2020  18/01/2021
2   1   6   19/01/2021  15/04/2021

Table: 集群

ClusterID    RangeFrom   RangeTo RangeDesc
1   0   2   Small
2   3   5   Medium
3   6   10  Large

&table:日期(标准日历table)

我的事实table是Contract,它通过ContractID与Rooms相关联。

我需要做的是:

示例:

新 selected 值:2021-02

你能帮我处理 DAX 吗?

谢谢!

您可以通过以下措施达到您想要的效果

_maxVal = 
VAR _selectedMaxDatebyYr_Mo =
    CALCULATE (
        MAX ( 'Calendar'[Calendar_Date] ),
        ALLSELECTED ( 'Calendar'[YR-MO] )
    )
VAR _maxRoomAmount =
    CALCULATE (
        MAX ( Rooms[Amount] ),
        FILTER ( Rooms, Rooms[ValidFrom] <= _selectedMaxDatebyYr_Mo && Rooms[ValidTo] >= _selectedMaxDatebyYr_Mo )
    )
RETURN
    _maxRoomAmount

_rangeDesc = 
SWITCH (
    TRUE (),
    [_maxVal] == BLANK (), BLANK (),
    CALCULATE (
        MAX ( 'Cluster'[RangeDesc] ),
        FILTER (
            'Cluster',
            'Cluster'[RangeFrom] <= [_maxVal]
                && 'Cluster'[RangeTo] >= [_maxVal]
        )
    )
)
_isValid = SWITCH(TRUE(),[_maxVal]==BLANK(),BLANK(),"Yes")

最小依赖 - 具有以下结构的日历Table

| Calendar_Date | YR-MO  |
|---------------|--------|
| 2000-01-01    | 2000-1 |