DAX, исключая активы вне срока действия договора - PullRequest
0 голосов
/ 27 июня 2019

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

Сервисные данные:

Invoice Amount
Asset Key
Invoice Date

Данные актива:

Asset Key 
Contract Start Date
Contract End Date

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

Вот что я пытался сделать до сих пор:

NewISA = 
    var enddate = MIN(F_Service_Invoice_Summary[Invoice_Date])
    Return
    IF(
        enddate <= F_Asset[End_Date], 
        SUM(F_Service_Invoice_Summary[Invoice_Segment_Amount]), 
        0)

1 Ответ

0 голосов
/ 01 июля 2019

Если у вас есть связь между ServiceData и AssetData в поле AssetKey и что у вас есть связь между таблицей DateTable и ServiceData в поле InvoiceDate, должна работать следующая формула:

 Total Invoiced Active Contracts =
 CALCULATE (
     SUM ( ServiceData[Invoice Amount] ),
     FILTER (
         AssetData,
         AssetData[Contract Start Date] <= MIN ( DateTable[Date] )
             && AssetData[Contract EndDate] > MAX ( DateTable[Date] )
     )
 )

Мыможно использовать MIN (datetable [date]) и MAX (datetable [date]), чтобы определить интервал, который фильтруется в datetable, чтобы выбрать только те контракты, которые активны в течение всего периода.Помните, что если вы не выберете интервал, формула будет возвращать только те контракты, которые начались до первой даты в вашей таблице и заканчиваются после последней даты в вашей таблице.

...