Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
valerij_y
Contributor II
Contributor II

Мера, расчёт возникновения дебиторки.

Здравствуйте всем.

Задача рассчитать количество дней возникновения дебиторской задолженности по контрагенту.

Есть:

[Dt] – поле с дебиторской задолженности в таблице (справочник) контрагенты, на максимальную(сегодняшнюю) дату;

[maxDate] – переменная - максимальная дата или сегодняшнее число;

[сумма1] - поле с суммой отгрузки по датам [дата1] и контрагентам;


Рассчитываем дату возникновения отнимая от дебиторки суммы отгрузки по убыванию дат (от сегодняшнего числа). Как только разница будет 0 или отрицательная, тогда эта дата отгрузки будет датой возникновения текущей дебиторки.

Думаю вопрос типовой, но сходу решения не нашёл. Решил построить суммы отгрузки нарастающим итогом по убыванию дат:

RangeSum(Above(Sum([Сумма1]),0,RowNo()))

Соответственно подтянув даты, нашел разницу в днях, мера: «ДниВ»

[maxDate]-if([Dt]-RangeSum(Above(Sum([Сумма1]),0,RowNo()))<=0,[дата1],Null())

Получил таблицу по контрагенту:

дата1Сумма1ДниВ
25.10.201890 702,71р,-
22.10.2018213 618,12р,-
18.10.2018274 142,95р,-
15.10.2018270 327,07р,-
11.10.2018367 877,32р,-
08.10.2018186 138,69р,-
04.10.2018381 374,44р,-
01.10.2018200 339,99р,-
27.09.2018230 941,91р,-
24.09.2018182 497,99р,-
20.09.2018418 458,43р,-
17.09.2018149 480,41р,38
13.09.2018238 548,07р,42
10.09.2018158 197,15р,45
06.09.2018286 112,64р,49
03.09.2018229 596,31р,52

Нужная только одна, первая, строчка, где 38 дней. Как мне оставить только её?

Использование Min(), Max() сообщает об ошибке и возвращает null.

3 Replies
Sergey_Polekhin
Former Employee
Former Employee

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

  1. Дать пример исходных данных
  2. Конкретизировать вопрос.
    1. Что значит "Нужная только одна, первая, строчка, где 38 дней"? Нужно получить это число в виде результата расчета некоторого выражения? Это выражение должно рассчитываться в каком объекте визуализации: таблица, текст и т.п.? Как его планируется использовать дальше: просто увидеть это число или оно должно использоваться как-то дальше в последующих расчетах?
    2. Т.е. лучше попытаться сформулировать итоговые цели, т.к. выбор способа достижения цели зависит не столько от техники, сколько от формулировки решаемой задачи
valerij_y
Contributor II
Contributor II
Author

Здравствуйте. Вопрос ещё актуален.

1.Исходные данные все в таблице, не хватает только суммы дебиторской задолженности. Если просуммировать отгрузки с 17.09 по 25.10 получим 2 965 900,03р, сумма дебиторки чуть меньше 2 965 000,00р.

Т.е. если от суммы дебиторки [Dt] последовательно (по убыванию дат) отнимать суммы отгрузки [Сумма1], то именно на 17.09 разница будет отрицательной - это будет нужная дата.

Находя разницу между текущим числом 25.10 [maxDate], получим число 38 дней - количество дней, от текущей даты, когда образовалась дебиторская задолженность.

   

Dt=2 965 00,00р.  
Дата1Сумма1RangeSum(…)Разница: [Dt]-RangeSum(…)Условие на разницуДниВ
25.10.201890 702,71р,90 702,71р,2 874 297,29р,> 0-
22.10.2018213 618,12р,304 320,83р,2 660 679,17р,> 0-
18.10.2018274 142,95р,578 463,78р,2 386 536,22р,> 0-
15.10.2018270 327,07р,848 790,85р,2 116 209,15р,> 0-
11.10.2018367 877,32р,1 216 668,17р,1 748 331,83р,> 0-
08.10.2018186 138,69р,1 402 806,86р,1 562 193,14р,> 0-
04.10.2018381 374,44р,1 784 181,30р,1 180 818,70р,> 0-
01.10.2018200 339,99р,1 984 521,29р,980 478,71р,> 0-
27.09.2018230 941,91р,2 215 463,20р,749 536,80р,> 0-
24.09.2018182 497,99р,2 397 961,19р,567 038,81р,> 0-
20.09.2018418 458,43р,2 816 419,62р,148 580,38р,> 0-
17.09.2018149 480,41р,2 965 900,03р,-900,03р,<= 038
13.09.2018238 548,07р,3 204 448,10р,-239 448,10р,<= 042
10.09.2018158 197,15р,3 362 645,25р,-397 645,25р,<= 045
06.09.2018286 112,64р,3 648 757,89р,-683 757,89р,<= 049
03.09.2018229 596,31р,3 878 354,20р,-913 354,20р,<= 052

2.Вот это количество дней и нужно вывести в таблицу по каждому контрагенту, для ежедневного контроля. В дальнейшем построить график Y(дни), Х(даты) - отследить как сокращались дни по конкретному контрагенту.

Я не могу, пока, понять как мне отсечь остальные дни разницы 42, 45 и т.д. и/или переформулировать условия вывода результата так, что бы выводилась только одно число.

valerij_y
Contributor II
Contributor II
Author

Dt =2 965 000,00  
Дата1Сумма1RangeSum(…)Разница: [Dt]-RangeSum(…)Проверка '<= 0'ДниВ
25.10.201890 702,71р,90 702,71р,2 874 297,29р,> 0-
22.10.2018213 618,12р,304 320,83р,2 660 679,17р,> 0-
18.10.2018274 142,95р,578 463,78р,2 386 536,22р,> 0-
15.10.2018270 327,07р,848 790,85р,2 116 209,15р,> 0-
11.10.2018367 877,32р,1 216 668,17р,1 748 331,83р,> 0-
08.10.2018186 138,69р,1 402 806,86р,1 562 193,14р,> 0-
04.10.2018381 374,44р,1 784 181,30р,1 180 818,70р,> 0-
01.10.2018200 339,99р,1 984 521,29р,980 478,71р,> 0-
27.09.2018230 941,91р,2 215 463,20р,749 536,80р,> 0-
24.09.2018182 497,99р,2 397 961,19р,567 038,81р,> 0-
20.09.2018418 458,43р,2 816 419,62р,148 580,38р,> 0-
17.09.2018149 480,41р,2 965 900,03р,-900,03р,<= 038
13.09.2018238 548,07р,3 204 448,10р,-239 448,10р,<= 042
10.09.2018158 197,15р,3 362 645,25р,-397 645,25р,<= 045
06.09.2018286 112,64р,3 648 757,89р,-683 757,89р,<= 049
03.09.2018229 596,31р,3 878 354,20р,-913 354,20р,<= 052