Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Февраля 18, 2019, 11:36:32 pm

Автор Тема: Выбор новых покупателей с использованием сет анализа  (Прочитано 381 раз)

Оффлайн Marina78

  • Новичок
  • *
  • Сообщений: 7
  • Страна: ru
  • Рейтинг: +0/-0
    • Просмотр профиля
Подскажите, пожалуйста, может кто сталкивался с такой или похожей задачей
Нужно понедельно разложить новых (сделавших хотя б одну покупку в течение последних 4 недель) и потерянных покупателей (не сделавших хотя б одну покупку в течение последних 4 недель).

Добавила календарь в скрипт.
всего покупателей в неделю - count({<dateshift={'now'}>} DISTINCT [Код клиента])
всего покупателей на прошлой неделе count({<dateshift={'Неделя'}>} DISTINCT [Код клиента])

Пыталась через пересечение множеств определить количество новых покупателей на текущей неделе относительно предыдущей count({<dateshift={now}*{Неделя}>} DISTINCT [Код клиента]). Не получается


Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1254
  • Страна: ru
  • Рейтинг: +134/-0
    • Просмотр профиля
Добрый день.
Ваша задача относится к теме сегментации клиентов.

Методологически, как обычно, два варианта - через скрипт и в выражениях объектов визуализации.

Решение через скрипт сводится к построению таблицы с агрегатами. Полями рассчитанными по всему массиву данных по продажам.
Например, min(Дата) - первая покупка, min(Дата,2) - вторая, соответственно с max(). (если надо считать интервалы в первых и крайних продажах, мало ли )))
count() для количества и т.д.
today(1)-max(Дата) = дней с последней продажи, так сказать, на сколько дней "потеряшка".
if(today(1)-max(Дата)>7,'Более 1 недели','Менее 1 недели') As СегментДляПотеряшек
и т.д.

Ключевое поле - ИД Покупателя.

Пример:
t1:
LOAD * INLINE [
    Чек, Покупатель, Товар, Количество, Сумма
    1, А, 100101, 1, 500
    1, А, 100102, 1, 200
    2, Б, 100101, 1, 500
    3, В, 100102, 1, 200
    4, Г, 100101, 1, 500
    4, Г, 100102, 1, 200
    5, Д, 100101, 1, 500
    5, Д, 100102, 1, 200
    5, Д, 100103, 1, 300
    6, А, 100103, 1, 300
    7, Б, 100103, 1, 300
];

CalSegment:
LOAD Покупатель,
Count( DISTINCT Чек) as [Количество Чеков],
Count( DISTINCT Товар) as [Количество SKU]
Resident t1
Group by Покупатель;
(Извините, но вы не имеете доступа к галерее)

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1254
  • Страна: ru
  • Рейтинг: +134/-0
    • Просмотр профиля
Через set analyse работа с множествами ведется через выражения P()
Но для расчета числа новых клиентов относительно двух календарных периодов мало информации о факте чека. Покупатель мог прийти повторно, спустя месяц, три полгода, год.
Выражение будет непростым.
Я рекомендую начать с построения контрольного примера через скрипт, сверить результат в Excel и уже затем на этом же контрольном массиве поэтапно формировать нужные выражения.
Такой подход будет эффективным и минимизирует число ошибок .

Неофициальный форум пользователей QlikView & Qlik Sense