Manual Set Analysis Completo em Português BR

    Set Analysis

    O Set Analysis permite criar seleções (Filtros) diferentes das ativadas pelo usuário. A criação de grupo, variáveis e seleções especificas  te faz mudar as agregações definidas pela corrente seleção (filtro). O Set Analysis modifica o contexto somente da expressão que ele foi usado. Sendo assim, outras expressões sem o Set continuam com o contexto padrão, seleção atual ou o estado de grupo atual.


    O Set Analysis é composto por:

    • Identificador
    • Operador
    • Modificador

    Este 3 campos são opcionais.


    Exemplo de Set Analysis:

     

    Sum({$<vendedor = {“Carlos”}, produto = {“caneta”}>} vendas) 

     

    Soma de todas as vendas do produto caneta do vendedor Carlos com seleções atuais



    Identificadores


    Defini a partir da onde a seleção irá se basear. Se é do filtro atual, sem filtro, vazio, de uma seleção anterior, de um grupo ou bookmark


    A representação dentro do Set Analysis é a seguinte

    0               Vazio

    1               – Sem Filtro

    $               Filtros Correntes

    $1             – Seleção Anterior ($2 duas seleções anteriores)

    $_1            – Próxima Seleção

    Bookmark  – Nome da ID do bookmark

    Group        – Nome do grupo (Estado alternado)

     

     

    Operadores


      + : União de um conjunto

       * : Intercessão de um conjunto

       - : Exclusão de dois conjuntos

       / : Membros comuns de dois conjuntos

      = : Igualdade de dois conjuntos

      > : Maior de dois conjuntos

      < : Menor de dois conjuntos

    <> : Diferença de dois conjuntos


    Se você usar um operador com símbolo de igual:

    <dimensão += {‘valor’}>

    Fixa a seleção ao valor definido para esta dimensão


    <dimensão -= {‘valor’}>

    Fixa a seleção excluindo o valor definido para esta dimensão

     

    Exemplos:

     

    Sum({1-$} Vendas)

    Soma todas as vendas excluindo da corrente seleção

     

     

     

    Sum({Group1 * Book1} Vendas)

    Soma todas as vendas que estão group1 e no Book1 (membros que se encontram nos dois casos)

     


    Modificadores


    Este é a grande sacada do Set Analysis. Os modificadores me permitem aumentar a capacidade de seleção em qualquer agregação, tornando está ferramenta mais poderosa do que o AGGR (agregador). Sendo possível modificar a seleção em uma ou varias dimensões ao mesmo tempo.


    • Nas listbox é possível fazer uma nova seleção
    • No Set Analysis você é obrigado a usar o filtro determinado

     

    Curiosidade

    O Set Analysis é calculado antes de o gráfico ser computado e redesenhado.

     

     

    Agora sim! Como montar a composição completa


    {Seleção Inicial <Dimensão1 = {*} >}

    ({*} para numérico, {"*"} para texto)

    ou

    { Seleção Inicial < Dimensão1 = >}

     

     

    Qlikview aceita 3 tipos de sintaxe

    <vendedor ={“Maria”}>
    <vendedor ={‘Maria’}>
    <vendedor ={[Maria]}>
    
    

    Para seleção inicial você deve colocar os identificadores sendo que o $ é o padrão usado no Qlikview. Entretanto sendo omitido somente o valor definido no {*} ou {“*”}


    Exemplos:

    Sum({$<vendedor = {“Carlos”}, produto = {“caneta”}>} vendas) 

    Soma de todas as vendas do produto caneta do vendedor Carlos com seleções atuais

     

    Sum({$<vendedor =, produto = {“caneta”}>} vendas)

    Soma de todas as vendas do produto caneta de todos os vendedores com seleções atuais


     

    Sum({$<mes =, ano = {2015}>} vendas)
    
    

    Soma de todas as vendas de todos os meses no ano de 2015

     

    Cuidado com a hierarquia da dimensão para que uma dimensão não reset a seleção da outra. Não adicione o mês no Set Analysis caso você queria fazer uma listbox dela futuramente.



    Composição múltiplos valores

    Sintaxe:

     

    {Selection <Dimension1 = {member 1, member 2, …} [, Dimension2 = {member 1, member 2, …}] >}

     

     

    Exemplo:

     

    Sum({$<vendedor ={“Maria”,”Carlos”}, produto = {“caneta”,”caderno”,”lapis”}>} vendas)

     

    Soma de vendas dos vendedores Maria e Carlos dos produtos caneta, caderno e lápis.

     

     

    Sum($<vendedor = {}, produto{“caneta”,”caderno”,”lapis”}> vendas)

     

    Soma de vendas dos produtos caneta, caderno e lápis onde o campo vendedor está vazio.

     

     

    Composição de busca

    Sintaxe:

     

    {<Dimensão = {"*Pedaço do valor procurado*"}>}

     

     

    • * = Para muitos caracteres (“Mar*” retorna Maria, Mariana, Mara)
    • ? = Para único caractere (“Mar?” retorna Mara)

     

     

    Pode ser feita várias buscas:

     

    Sintaxe :

     

    {<Dimensão = {"*buscar1*", "Texto Fixo", " ?usca2*"}>

     

     

    Exemplo :

     

     

    {<vendedor = {"*ro", "João", "?ari*"}> 

     

    Todos os vendedores que termina com ro, que seja João e  que comece com uma letra depois ari e termine com qualquer quantidade de letras

     

     

    {<vendedor = {"*"} - {"Ma*"}>} , {< vendedor = - {"Ma*"}>}

     

    Todos os vendedores menos os que começam com Ma

     

     

    {< vendedor -=  {"Ma*"}>}

     

    Todos os vendedores selecionados exceto os que começam com Ma

     

     

    {< vendedor +=  {"Ma*"}>}

     

    Todos os vendedores selecionados mais os que começam com Ma

     

    Composição usando dimensão de números

    A maioria das horas e datas são numéricos. Por isso em muitos casos o Qlikview se torna mais rápido fazer join de números.

     

    {<ano = {"<2012”} >}

    Todos os anos menores de 2012

     


     

    {<ano = {">=2012 <=2014”}>}

    Os anos entre 2012 a 2014

     


     

    {<hora = {4, 5, 6} + {">=12 <20”}>}

    A hora 4, 5, 6 e o intervalo de 12 até 19 horas

     



    Usando variáveis


    Variáveis com um ou muitos dados

    Sintaxe:

     

    <Dimensão = {$(NomeVariavel)} > ou  <Dimension = {$(=NomeVariavel)}

     

    Com ou sem o = funcionará da mesma maneira

     

    Exemplo:

     

    <vendedor = {$(vVendedorEscolhido)}, Produto={$(=vProdutoEscolhido)}>

     

    Seleciona um vendedor e um produto através de uma variável especifica

     

     

    Usando variável para definir dimensões

    Exemplo:

    Set vDimensao = ‘produto’
    sum( {$ <$(vDimensao)={"*"} >} Vendas)
    
    

    Soma das vendas por todos os produtos



    Usando variável para definir o Set Analysis

    Exemplo:

    Set vAnalise = ‘vendedor = {"*"} - {"Ma*"}>, <vendedor =- {"Ma*"}’
    sum( {$ <$(vAnalise) Vendas)
    
    

    Soma as vendas dos vendedores que não comecem com Ma

     

     

    Composição com função numérica

    Sintaxe:

     

    <Dimensão = {" $(=f(argumentos))"}

     

     

    Exemplo:

     

    <Ano = {"$(=max({1} Year))"}>

    - Último ano dos dados

    Você deve usar o {1} dentro da agregação max para não perder o último ano quando for feita qualquer seleção.


    Sum({<produto = {"=rank(sum(vendas), 4)<= 20"}>} vendas)

    Top 20 dos produtos mais vendidos

     

    Sum({<produto = {"=rank(sum({<marca = {“A”}>} vendas), 4)<= 20"}>} vendas)

    Top 20 dos produtos mais vendidos da marca A

     

     

    Indirect Set Analysis


    Expressões de seleção e modificadores são relativamente simples. No entanto, neste caso precisamos criar uma expressão que retorne o resultado de outra expressão. Mais ou menos assim:

    • Primeiro temos que selecionar todos os clientes que compraram sapato no ano desejado, no caso 2010 (desconsiderando as seleções atuais)
    • Depois, pegamos o resultado da expressão (lista de clientes) e atribuímos à seleção atual para então somar as vendas


    Se você ainda não esta familiarizado com as expressões do Qlikview, sugiro a leitura desses dois tutoriais:


    Entendendo ALL e TOTAL nas funções do Qlikview e Guia Completo: Set Analysis Qlikview


    Para conseguirmos a lista de clientes, utilizaremos a função P() que retorna o resultado da expressão em um “array”. Haverá casos em que você terá de utilizar a função E() que retorna o INVERSO do resultado da expressam em um “array”.

     

    Sum({$<Cliente=P({1<Produto={'Sapato'},Ano={2010}>} Cliente)>} Vendas)
    
    

     

    Da mesma forma, podemos fazer o inverso e somar as vendas de todos os clientes que NÃO compraram sapato em 2010

    Sum({$<Cliente=E({1<Produto={'Sapato'},Ano={2010}>} Cliente)>} Vendas)