На этой неделе был опубликован пост по работе с серо-зеленой цветовой кодировкой в Qlik. В нем использовалась встроенная функциональность Qlik по работе с цветом, которая позволяет увидеть связи в данных. Так, мы показываем альтернативные выборке данные и значения, не связанные с текущей выборкой. Сегодня, используя эту технику и механизм set analysis (анализ множеств), мы будем искать скрытые ответы в данных.
За основу возьмем тот же пример, что и в прошлом посте (см. скриншот выше).
Применяем функцию GetCurrentSelections(), которая имеет несколько встроенных параметров.
Для наглядности получаемого результата используем в формуле значения – 1,2,3.
Такой подход поможет нам в использовании этих значений в анализе множеств:
replace(
replace(
replace(
GetCurrentSelections( chr(39)& ‘},’,’=-{‘ & chr(39) ,chr(39) & ‘|’ & Chr(39) ) & chr(39) &’}’
,’,’,»)
,’}’, ‘},’)
,’|’,’,’)
Вот такая формула
GetCurrentSelections( chr(39)& ‘},’,’=-{‘ & chr(39) ,chr(39) & ‘|’ & Chr(39) ) & chr(39) &’}’
Возвращает:
%KeyDate=-{‘Jan’},Dim=-{‘B’|’C’}
В анализе множеств используется оператор «=-» для выделения исключенных значений и, конечно, знак доллара:
Sum({1 < %KeyDate=-{‘Jan’},Dim=-{‘B’,’C’} >} Value)
Это дает полный набор данных, который показывает результаты для %KeyDate, которая не равна Jan и Dim, а также B или C.
Для поиска новых связей в данных можно использовать и более простой подход, но мне было интересно поработать именно с функцией GetCurrentSelections, чтобы попрактиковаться.
На этом все на сегодня! До новых встреч!
Не поделитесь советом, заметкой или статьей, как научить QlikView представлять NULL значения полей как нормальные, чтобы можно было по ним фильтровать строки (аналог where x is NULL)?
Обходной путь с заменой NULL на пробел ‘ ‘ известен, но очень трудоёмок и ненадёжен.
Вроде можно что-то сделать с nullasvalue ?
Для такой задачи можно использовать функцию isnull() или NullAsValue, как вы отметили. Синтаксис функции имеет вид: NullAsValue Field1, Field2;. Перечислить можно более одного поля. По умолчанию значение NULL заменяется на пустую строку. Не забудьте установить символ, который вы будете использовать для замены Set NullValue = ‘NULL’;
Дополнительные материал по теме: технический бриф от Qlik (октябрь 2016), с 14 страницы
не претендую на звание человека сильно разбирающегося, но если я правильно понял ваши цели, а именно сделать так чтобы НУЛы можно было «крутить и анализировать», то вот как эту проблему для себя решаю я.
В скрипте загрузке я использую такую связку:
LOAD
…
if(IsNUll([наш столбец]), ‘неизвестность’, [наш столбец]) as [наш столбец],
…
FROM …
в итоге в Qlik, в таблице, в столбце «наш столбец» я наряду с реальными данными вместо НУЛов получаю значение «неизвестность».