Страницы: 1
RSS
Посчитать долг по клиенту накопительным итогом с условием DAX
 
Добрый день.

Есть таблица с оплатами от клиентов, бывает такое,  что один клиент оплачивает больше, чем нужно , например купил на 100, а оплатил 150, и получается что долг у него - 50 руб, а у другого, например, 200 руб и при сложении их долгов получается 150 руб.  Как правильно написать меру, чтобы на каждую дату она не только проверяла есть ли переплата, но и посчитала долг без учета этой переплаты, т.е чтобы на итог у него было не -50 , а 0 и при сложении с другим клиентом получился долг не 150 руб, а 200 ( т.е без учета переплаты).

В файле примера я добавила меру, которая проверяет была переплата или нет и по датам она правильно считает ( так как проверяет значения в строках), но итог считается неверно.  
 
Доброе время суток.
Вариант
Код
=Var curDate = MAX('Calendar'[Date])
Return SUMX(VALUES('Таблица4'[Клиент]);
    Var clientSum = CALCULATE(SUM('Таблица4'[Сумма]);
        FILTER(ALLSELECTED('Calendar'[Date]); 'Calendar'[Date] <= curDate)
    )
    Return IF(clientSum < 0; 0; clientSum)
)
 
Андрей VG, мера считает правильно, но она останавливается на одной последней дате, когда была оплата ( 10.08), а на 11.08 и далее значения пустые
 
angel1532, попробуйте
Код
Долг БП:=
VAR tbl = 
   ADDCOLUMNS ( 
      CALCULATETABLE ( VALUES ( 'Таблица4'[Клиент] ); ALL ( 'Calendar' ) ); 
      "debt"; MAX ( CALCULATE ( [Долг] ); 0 ) 
   ) 
VAR dbt = SUMX ( tbl; [debt] ) 
RETURN dbt
Изменено: surkenny - 03.09.2021 08:30:42
 
surkenny, Спасибо большое, все заработало! :)
 
angel1532, если создадите таблицу справочник клиентов, то будет проще
Изменено: StepanWolkoff - 03.09.2021 16:13:38
Страницы: 1
Наверх