创建 DAX 以计算 Power BI 中每个日历日期的已占用房间数

Create DAX to count number of occupied rooms per calendar date in Power BI

我正在计算每个日历日期 "Occupied rooms" 的数量。

所以如果说有 6 个不同的预留 "DateIN" 和 "DateOUT" 我就可以计算出每天有多少房间被占用。我已经通过使用列公式完成了此操作 - 但我需要它是一个度量以便被切片器过滤。

这是我需要的一个简单示例:

BOOKINGID                     DateIN               DateOUT

000001                       01-01-2017          06-01-2017

000002                       01-01-2017          03-01-2017

000003                       02-01-2017          03-01-2017

000004                       03-01-2017          05-01-2017

000005                       08-01-2017          10-01-2017

DATE                     OCCUPIEDROOMS

01-01-2017                          2

02-01-2017                          3

03-01-2017                          3

04-01-2017                          2

05-01-2017                          2

06-01-2017                          1

07-01-2017                          0

08-01-2017                          1

09-01-2017                          1

10-01-2017                          1

这是我用来做列的公式:

OcupacionHL = CALCULATE(count(F_Reservas[Reservas]); FILTER(F_Reservas; (F_Reservas[Fecha Inicio] <= D_Calendario[FECHA]) && (F_Reservas[Fecha Fin] >= D_Calendario[FECHA])); F_Reservas[Hotel] = "Hotel 1")

这是我的数据模型的图像:

该计算的度量版本与您尝试的没有太大区别。

OcupacionHL =
CALCULATE (
    DISTINCTCOUNT ( F_Reservas[BookingID] ),
    FILTER (
        ALL ( F_Reservas ),
        MAX ( Calendario[Fecha] ) >= [DateIN]
            && MAX ( Calendario[Fecha] ) <= [DateOUT]
    )
)

只需使用 MAX(Calendario[Fecha]) 获取上下文中的当前日期,您可以使用它与 F_Reservas table.

中的日期范围进行比较

请注意,在您的示例中,3/1/2017 的计算结果是 4 而不是 3。另外 7/1/2017 没有预订所以它 returns BLANK 这就是它没有出现的原因。