Как получить подробную информацию об аренде за месяц, используя power bi

Я хочу показать подробности активной аренды за данный месяц в power bi. У меня есть таблица, где у меня есть детали аренды. В этой таблице у меня есть дата начала, дата окончания и сколько месяцев. Поэтому, когда я выбираю месяц в power bi visual, я хочу показать, какие арендные ставки в настоящее время активны, используя power bi

пример

Дом A 1.1.2019 31.12.2019 12 Дом B 1.2.2019 31.05.2019 03 Дом C 1.4.2019 31.12.2019 08

Если я выберу месяц, июньским результатом должны быть Дом A и Дом C, а если я выберу результат марта, то должны быть Все три (A, B, C)

Может ли кто-нибудь помочь мне с властью би?

Пожалуйста, найдите мое решение здесь - ( https://app.powerbi.com/groups/me/reports/b12bf4b6-14f1-41e1-9bf9-832509dce3e9?ctid=8ac0e5ca-0835-4daf-af23-c940683adbef)

Я получаю таблицу, используя вышеуказанное решение. Мне нужно сопоставить subscription_id с другими таблицами и получить данные, но в настоящее время это не позволяет. Любое решение

1 ответ

Решение

Предположим, у вас есть данные в одной таблице под названием "Аренда"

Таблица аренды содержит следующую информацию (но не ограничивается):

[Местоположение] | [Rent_Start] | [Rent_End]

Первый шаг:

Создать таблицу календаря:

SELECTCOLUMNS(
    GENERATESERIES(
        MIN(Rentals[Rent_Start]);
        MAX(Rentals[Rent_End])
    );
    "Date"; [Value]
)

Добавьте два вычисляемых столбца в таблицу календаря [Имя месяца] и [Номер месяца]

Шаг 2: Соедините таблицу проката с календарем в новой таблице, добавьте столбец флага, который указывает, используется ли местоположение или нет. Отфильтруйте строки, когда местоположение не используется, и выберите нужные столбцы:

RunningTime = 
SELECTCOLUMNS(
    FILTER(
        ADDCOLUMNS(
            CROSSJOIN(Rentals; Calendar);
            "In_Use";
            IF([Date] >= [Rent_Start] && [Date] <= [Rent_End]; 1; blank() )
        );
        [In_Use] = 1
    );
    "Location"; [Location];
    "Start"; [Rent_Start];
    "End"; [Rent_End];
    "Date"; [Date]
)

Шаг 3: Создайте соотношение 1:* между столбцами Calendar[Date] и RunningTime[Date]. Теперь вы можете создать срез из календаря, используя имя месяца, а в визуальной таблице с помощью RunningTime [Местоположение] вы не сможете увидеть, какие местоположения используются при выборе определенного месяца.

(Номер месяца необходим для сортировки [Название месяца] в "правильном" порядке, а не в алфавитном порядке)

Изменить 1: Давайте посмотрим, я думаю, мой код делает то, что вам нужно, насколько я могу понять вас. Если следующее разъяснение не работает для вас, вернитесь ко мне, загрузив вашу модель (или пример). Кроме того, не уверены, что вы имеете в виду, различая используемые дома и общую вместимость.

Насколько я могу судить по вашему изображению и тексту, мои [Rent_Start] и [Rent_End] соответствуют вашим столбцам [start_date] и [end_date], оба в формате datetime. Так я не понимаю, в чем проблема?

Если вы просто хотите узнать, сколько домов используется, вам нужна эта мера:

Houses in use = 
DISTINCTCOUNT('RunningTime'[Location])

Эти три столбца необходимы в моем решении, хотя вы можете иметь больше.Столбцы, которые я использую в таблице данных

Затем я получаю новую таблицу, похожую на эту:Расширенный стол

Эта новая таблица связана с календарем следующим образом:Связь между Calendar и RunningTime

Затем в визуальной таблице я использую столбцы [Location], [Start] и [End] из таблицы "RunningTime". И я создаю срез на основе Month_Name из моей таблицы Календаря, например так (примечание: на этом рисунке не был выбран месяц):

Базовая визуальная настройка

Если я сейчас выберу январь, я получу следующее:

Январь выбран

Если я выберу март, я получу следующее:

Март выбран

Другие вопросы по тегам