Power BI: используйте несвязанную таблицу дат для создания меры - PullRequest
0 голосов
/ 07 августа 2020

Привет, я уже немного борюсь с этим и надеюсь, что не пропустил предыдущий вопрос. Я пытаюсь подсчитать количество автомобилей, которые у нас есть, на дату EOMONTH. Мы покупаем и продаем автомобили на регулярной основе, и для составления отчетов нам необходимо знать, сколько у нас было в конце каждого месяца, и отчет представляет собой скользящие 12 месяцев.

Я пытался установить отношения с дата покупки автомобиля до даты в моей таблице дат, но когда я создаю меру (Используется для расчета количества автомобилей, приобретенных, но не проданных):

SalesBlank = CALCULATE (COUNT (Vehicles [MVANumber ]), FILTER (Транспортные средства, Транспортные средства [купленные] <= СВЯЗАННЫЕ ('Дата' [EOMONTH]) && ISBLANK (Транспортные средства [проданные]))) </p>

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

Как мне настроить меру для просмотра таблицы дат и фильтрации таблицы транспортных средств с этим logi c: Purchased <= date [EOMONTH] && ISBLANK (salesdate) </p>

Любая помощь будет принята с благодарностью! Спасибо, Мэтт

Примеры данных и желаемые результаты

Взаимосвязи

1 Ответ

0 голосов
/ 08 августа 2020

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

Вы может создать активную связь между автомобилем [PurchaseDate] и Date [Date]. Затем создайте неактивную связь на основе Транспортных средств [Дата продажи] и Дата [Дата].

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

Inventory Count =
VAR MaxDate =
    MAX ( 'Date'[Date] )
VAR MinDate =
    CALCULATE ( MIN ( 'Date'[Date] ), ALL ( 'Date' ) )
VAR Purch =
    CALCULATE (
        COUNT ( 'Vehicles'[VehicleID] ),
        DATESBETWEEN ( 'Date'[Date], MinDate, MaxDate )
    )
VAR Sales =
    CALCULATE (
        COUNT ( 'Vehicles'[VehicleID] ),
        USERELATIONSHIP ( 'Date'[Date], Vehicles[Sale Date] ),
        DATESBETWEEN ( 'Date'[Date], MinDate, MaxDate )
    )
VAR MaxPurDt =
    CALCULATE ( MAX ( 'Vehicles'[Purchase Date] ), ALL ( 'Vehicles' ) )
VAR MaxSlDt =
    CALCULATE ( MAX ( 'Vehicles'[Sale Date] ), ALL ( 'Vehicles' ) )
RETURN
    IF (
        MIN ( 'Date'[Date] ) <= MaxPurDt
            || MIN ( 'Date'[Date] ) <= MaxSlDt,
        Purch - Sales
    )

Эта мера получает совокупное количество покупок и совокупный подсчет продаж, а затем вычитают их. Проверка IF предназначена для предотвращения распространения совокупных итогов за пределы максимальной даты в таблице «Транспортное средство».

Я не уверен, как интерпретировать ваш показ всего за 3 месяца в желаемых результатах. Это даст те же ответы, что и у вас, но без фильтра, примененного к таблице, он начинается с 31 марта 2016 г. (дата первой продажи).

Изменить: вероятно, есть более эффективный примерно так, как вы думали, но сейчас это ускользает от меня.

...