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

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: WA от 10 октября 2018, 09:27:02

Название: создать измерение
Отправлено: WA от 10 октября 2018, 09:27:02
Помогите создать измерение.
Надо измерять только тех "Провайдер", которые содержат "*Vim*","*Bee*", но не содержат  "*/*"
как исправить это?
=aggr(only({<Провайдер={"*Vim*","*Bee*"} , Провайдер-={"*/*"}>}Провайдер),Провайдер)
Название: Re: создать измерение
Отправлено: admin от 10 октября 2018, 01:26:24
Привет, либо наличие символа / вынести в отдельный флаг, либо использовать множества P()
Название: Re: создать измерение
Отправлено: Andrey S от 10 октября 2018, 02:10:38
{<Провайдер={"*Vim*","*Bee*"}-{"*/*"}>}   - такое выражение должно сработать.

Но вам нужно иметь ввиду особенность работы aggr: если текущими выборками какой-либо из провайдеров исключен, а в силу построения с использованием СетАнализа выражение для этого провайдера должно давать результат не Null/0, в отчете вы его не получите (многое зависит от того, какую диаграмму вы строите).

Выход:
1. Засунуть {<Провайдер={"*Vim*","*Bee*"}-{"*/*"}>}  в СетАнализ в выражении. Тогда оно рассчитается только для интересующих вас провайдеров.
2. Использовать в расчете измерения wildmatch
if(wildmatch(Провайдер,"*Vim*","*Bee*")>0 and wildmatch(Провайдер,"*/*")=0,
Провайдер,
Null()
)
Попробуйте, может сработает.
Название: Re: создать измерение
Отправлено: WA от 10 октября 2018, 03:02:58

{<Провайдер={"*Vim*","*Bee*"}-{"*/*"}>}   - такое выражение должно сработать.

Сработало!
Для меня это достаточно. Спасибо
Название: Re: создать измерение
Отправлено: admin от 10 октября 2018, 03:14:46
Цитата: WA от 10 октября  2018, 03:02:58  

{<Провайдер={"*Vim*","*Bee*"}-{"*/*"}>}   - такое выражение должно сработать.

Сработало!
Для меня это достаточно. Спасибо
Контрольный пример не забывайте делать, для проверки выражений СетАнализ.