Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Здравствуйте!
(я дилетант-одиночка - сразу говорю)
Решаю задачу - подсчитать общее количество чеков в точках продаж, в которых были хоть раз (в определенный период месяц) продажи определенных некоторых блюд.
есть рабочая формула:
=(Count (DISTINCT{<EXTCODE= {'=sum({<DISH_RU= {$(vнаборблюд)}>} QUANTITY )>0'}>} GLOBALIDENT))
где $(vнаборблюд) - переменная в которой перечислен набор нужных блюд.
GLOBALIDENT - уникальный номер чека
EXTCODE - уникальный номер точки продаж
DISH_RU - понятно, блюдо
Эта формула корректно работает когда выделяю период - один месяц. (У нас разбивка по месяцам)
Но если выделяю два и более месяцев - количество чеков считает не корректно, оно увеличивается сильно, т.е. видимо EXTCODE берется не в пределах месяца а за весь выделенный период! И в итоге критерий фильтрации нужных блюд не работает.
ничего не смог придумать..
Мне кажется у вас проблема со структурой данных.
У вас QV или QS ? Выложите скрином структуру.
Попробуйте такую формулу, что получится :
=(Count (DISTINCT{< QUANTITY = {'>0'} }>} GLOBALIDENT))
добавьте переменные:
varMinDate = Min(Дата)
varMaxDate = Max(Дата)
И в сет анализе используйте доп. фильтрацию по датам, разбил по строкам для удобства чтения:
=(Count
(DISTINCT
{<
EXTCODE= {'=sum({<DISH_RU= {$(vнаборблюд)}>} QUANTITY )>0'}
, Дата = {'>=$(varMinDate)<=$(varMaxDate)'}
>}
GLOBALIDENT))
Спасибо за ответ!
Но не прокатило..
даже если подставить упрощенное выражение в котором явно указать какой месяц надо выбрать, все равно показывает абсолютную неадекватную цифру:
=(Count (DISTINCT{<EXTCODE= {'=sum({<DISH_RU= {$(vнаборблюд)}>} QUANTITY )>0'}, PAYBINDINGS_Month= {'Jan'}>} GLOBALIDENT))
Привет, если идёт разбивка по месяцам, может стоит поиграться с функцией Aggr? Пример
Aggr(Count (Distinct {Set} dimension), month)
Спасибо за ответ! А Вы можете на моем примере показать куда вставлять эту функцию? Если не сложно!
(Count (DISTINCT {< EXTCODE= {'=sum({<DISH_RU= {$(vнаборблюд)}>} QUANTITY )>0'}>} GLOBALIDENT)))
с функцией Aggr никогда не сталкивался..
= aggr (
(Count (DISTINCT{<EXTCODE= {'=sum({<DISH_RU= {$(vнаборблюд)}>} QUANTITY )>0'} >} GLOBALIDENT))
, PAYBINDINGS_Month)
Aggr((Count (DISTINCT {< EXTCODE= {'=sum({<DISH_RU= {$(vнаборблюд)}>} QUANTITY )>0'}>} GLOBALIDENT))), *Тут указать измерение месяц, по которому идет разбивка*)
Да, вот так и сделал:
Aggr(Count (DISTINCT {< EXTCODE= {'=sum({<DISH_RU= {$(vнаборблюд)}>} QUANTITY )>0'}>} GLOBALIDENT), PAYBINDINGS_Month)
Но так не хочет считать.. в этом случае вообще пропадают любые цифры.
Странно что когда кстати выбираю в фильтре один месяц - то строит считает правильно. Но если выбрать два и более месяцев - то цифры исчезают вовсе.
Может Set не пропускает?
Если выполнить без условий, считает?
Aggr(Count (DISTINCT GLOBALIDENT), PAYBINDINGS_Month)