Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Коллеги привет
Пусть есть источник формата
LOAD * INLINE [
Order, Product, Product Type
1, A, X
1, A, Y
2, B, X
3, C, Y
4, D, X
4, D, Y
4, E, X
];
В источнике есть свойство. В одном Order есть строго один уникальный Product
Требуется посчитать количество продуктов, которые обладают одновременно свойствами X и Y
Как считать продукты по отдельным свойствам понятно:
Количество продуктов считаем как уникальное Order&Product, т.к. в заказе может быть только один продукт
А вот количество тех которые обладают обоими свойствами хз
Можно ли это сделать формулами, не прибегая к скрипту и изменению модели(Например можно было бы вывести справочник продуктов разметив ее флагами)?
С множествами можно выполнять математические операции.
Поэтому сама задача сводится к трём шагам:
В таком случае итоговое выражение может выглядеть так:
Count( distinct {< Product = P( {<ProductType = {'X'}> } Product) * P( {<ProductType = {'Y'}> } Product) >} Product)
Итог - на рисунке ниже:
Здравствуйте,
Используйте функцию P():
Выглядеть должно примерно вот так:
Count({<Product=P({1<[Product Type]={‘X’, 'Y'}>} Product)>} Product)
Спасибо!
Но
Count(DISTINCT{<Product=P({1<[Product Type]={'X','Y'}>} Product)>}Product)
Эквивалентно
Count(DISTINCT If([Product Type]='Y' or [Product Type]='X',Order&Product))
В результате должны получить A и D
Требуется выделить продукты которые обладают двумя свойствами(X,Y) одновременно
Если данных не много можно объединить два выражения и написать
if(Count(...X...)=1 and Count(...Y...)=1, 1)
Вместо проверки ProductType через IF лучше написать через Set Analysis: Count({<[Product Type]={'X'}>} Product). Так намного быстрее работает.
Тоже думал, но
Count(If(Count( не работает, а что то типа
If(Count(DISTINCT If([Product Type]='X',Order&Product))=1 and Count(DISTINCT If([Product Type]='Y',Order&Product))=1, Count(distinct Order&Product),0)
Условно работает только по измерению Product, не считается в Total
Вот сделал, во вложении.
Слишком замысловато. Я чувствую что мы ходим вокруг да около . Тоже учусь.
count({<Product={"=Count({1<ProductType={'X','Y'}>} Product)=2"}>} DISTINCT Product)
Выбирает те продукты у которых количество =2 по выражению.
С множествами можно выполнять математические операции.
Поэтому сама задача сводится к трём шагам:
В таком случае итоговое выражение может выглядеть так:
Count( distinct {< Product = P( {<ProductType = {'X'}> } Product) * P( {<ProductType = {'Y'}> } Product) >} Product)
Итог - на рисунке ниже: