Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Новые / сохраненные / потерянные клиенты

Доброго дня Коллеги.

Давно ломаю голову над задачей с которой наверняка уже сталкивались.

Есть информация о продажах в разрезе клиентов. Задача - оценить сколько клиентов новых, сколько потерянных, сколько сохранено. Оцениваем по месяцу.

Если клиент купил впервые - это новый (это вообще самый первый месяц)

Если в прошлом покупал - но сейчас нет - потерянный

Если покупал в прошлом и купил сейчас - сохраненный

Если в прошлом не покупал, но с прошлой покупки прошло менее 10 месяцев - восстановленный.

Уверен в Клике есть красивый способ. Мне в голову приходят только некрасивые и выполняемые на стороне источника данных.

Буду признателен за советы

2 Replies
Eugeny_Ilyin
Creator II
Creator II

Привет.

Был вопрос, сколько новых клиентов помесячно.

Решил так: Подсчитал сколько клиентов в месяц имеют дату отгрузки равной минимальной дате в целом по всему реестру продаж.

Формула такая родилась:

Sum({1 <ScladMovesVidID={'21'}>}

    aggr( DISTINCT

        if((min({1 <ScladMovesVidID={'21'}>} Total <ПартнерID> дата1)) = min({1<ScladMovesVidID={'21'}>} дата1), 1)

        , ПартнерID))

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

"Если клиент купил впервые - это новый (это вообще самый первый месяц)"

Какие признаки? Как уже упомянул, минимальная дата отгрузки по всем периодам = дате отгрузки в месяце, следовательно первая отгрузка нового клиента. Либо первая запись отгрузки клиента в реестре, отсортированном по контрагентам и датам, тоже первая отгрузка нового клиента, в этом случае можем уже проставить номера отгрузок, либо номер месяца отгрузки. Далее это можно будет как-то обыграть.

И далее по пунктам, в таком же духе.

Может не совсем понятно описал, пишу на ходу.

Задача интересная.

Anonymous
Not applicable
Author

Добрый день.

Как вариант:

создаем таблицу

Temp:

LOAD

MonthName (AddMonths(now(0),-11+RowNo()))        as month,

if( mod(RowNo(),10)=1,1,if(mod(RowNo(),10)=2,10,100) ) as koef

AUTOGENERATE 10;


По месяцам привязать к ней ваших клиентов.

И дальше смотреть по mod(sum(koef),100)

1- новый

10-потерянный

11-сохраненный

0-восстановленный