Можно ли создать в Power BI меру, которая ссылается на две таблицы, которые не имеют общих отношений? - PullRequest
2 голосов
/ 25 июня 2019

Я пытаюсь создать матричную таблицу в Power BI для отображения ежемесячных прогнозов арендной платы для ряда объектов. Я подумал, что мог бы просто создать показатель, который суммирует арендную плату из одной таблицы, а затем отображает ее по месяцам на основе условий даты начала и окончания, но прошло некоторое время с тех пор, как я создал любые показатели, и я забыл, что должны быть отношения между колоннами, между прочим.

Модель данных Data Model

С сайтом может быть связано несколько арендных договоров, и с арендой могут быть связаны как автостоянки, так и этажи, которых может быть несколько.

В дополнение к таблицам на связанном изображении, после того, как я разобрался с тем, что, как я думал, будет простым шагом, я собирался добавить еще одну таблицу, которая включает в себя предполагаемое процентное увеличение арендной платы и период, в который будет происходить увеличение.

Я начал с того, что попытался создать меру по следующим направлениям:

Matrix Test =
IF (
    HASONEVALUE ( Period[Month] ),
    IF (
        Period[Month] >= Leases[Custom Start Date],
        SUM ( Floor_Rent[Annual Rent] ) / 12,
        0
    ),
    0
)

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

Помимо того, что я забыл о требованиях к отношениям, я забыл, как бороться с проблемой сужения до одного значения в столбце.

Результат должен выглядеть примерно так:

Example Result

Пробелы указывают на аренду, которая начинается в будущем или заканчивается в течение указанного периода времени.

Когда я пытаюсь связать таблицу Leases и таблицу Period с Leases [ Начальный месяц для текущего срока ] и Period [ Month ] Все, что я могу получить, это таблица, показывающая сумму арендной платы за месяц, когда начинается аренда.

Возможно ли то, что я пытаюсь достичь? Если да, то как мне достичь желаемого результата?

Ссылка на файл .pbix

Решение

Прямой ответ на заглавный вопрос, вероятно, «нет», но, пытаясь понять, как я мог бы использовать предложение Пратика Бхавсара LOOKUPVALUE, у меня возникла мысль и я выполнил неуклюжий поиск в Google - power bi create table для каждого значение в столбце - и найдено это сообщение . Вмешиваясь в некоторые посты с DAX, я смог придумать следующее:

Test Table =
GENERATE(
    SELECTCOLUMNS(
        VALUES(Leases[Lease ID]),"Lease ID",[Lease ID]
    ),
    SELECTCOLUMNS(
        VALUES(Period[Month]),"Month",[Month]
    )
)

Результатом является таблица с каждым идентификатором аренды, сопоставленным с каждым месяцем. Я не могу утверждать, что точно понимаю, как работают функции, и это не тот результат, который, как я думал, мне нужен, но он позволяет мне достичь именно того, что я намеревался сделать.

Я принял ответ Пратика Бхавсара, потому что он фактически выполняет то же самое, что и работа, которую я выполнял. Решение Пратика может быть лучше, чем то, на котором я в конечном итоге приземлился, но мне нужно поближе взглянуть на то, как эти два сравниваются.

1 Ответ

0 голосов
/ 26 июня 2019

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

SiteToPeriod = 
CROSSJOIN(
    SELECTCOLUMNS(Sites1, "Building name/label", Sites1[Building name/label]),
    Period
)
...