Create DAX to count number of occupied rooms per c

2019-06-12 05:32发布

问题:

I am trying to count the number of "Occupied rooms" per calendar date.

so if there was say 6 reserves with diffrent "DateIN" and "DateOUT" I would be able to calculate how many rooms occupied there was every day. I have done this by using a column formula - but I need it to be a measure in order to be filtered by slicers.

Here is a simple example of what I would need:

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

here is a the formula i used to do this as a column:

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")

And here is an image of my data model:

回答1:

The measure version of that calculation is not much different from what you tried.

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

Just use MAX(Calendario[Fecha]) to get the current date in context and you can use it to compare against the date range in F_Reservas table.

Note the calculation for 3/1/2017 is 4 instead of 3 in your example. Also 7/1/2017 has no bookings so it returns BLANK that's the reason it doesn't appear.



标签: powerbi dax