Set Analysis
O Set Analysis permite criar filtros pré definidos diferentes das ativadas pelo usuário e cria agregações num cálculo. Eles sempre estará entre { } dentro de uma conta especifica.
Count({$<tipo={"fralda"}>} DISTINCT [código do Item])
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:
Este 2 campos são opcionais e eles que elaboram o Set Analysis.
Tipos
0 - Vazio
1 – Sem Filtro
$ - Filtros Correntes
$1 – Seleção Anterior ($2 duas seleções anteriores) ($3 três 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
/ : Diferença simetrica (XOR) dos dois conjuntos
Exemplo de operação de identificadores
Sum({Group1 * Book1} Vendas): Soma todas as vendas que estão group1 e no Book1 (membros que se encontram nos dois casos)
Sum({Group1 + Book1} Vendas): Soma todas as vendas (Todos os Membros dos 2 conjuntos)
Sum({Group1 - Book1} Vendas): Soma todo Book1 que não está no Group1 (membros que se encontram somente no Book1)
Sum({Group1 / Book1} Vendas): Soma todas as vendas que não estão group1 mas no Book1 e os que não estão Book1 mas no Group1 (membros que não se encontram nos dois casos)
Exemplos de Identificadores
Expressão | Ident. | ValorVenda 1 | CódigoVenda 1 | ValorVenda 2 | CódigoVenda 2 | filtro feito pelo usuário | Result. |
---|---|---|---|---|---|---|---|
Sum({$} ValorVenda) | $ | 3,00 | 1 | 2,00 | 2 | CodigoVenda = 1 | 3,00 |
Sum({1} ValorVenda) | 1 | 3,00 | 1 | 2,00 | 2 | CodigoVenda = 1 | 5,00 |
Sum({1-$} ValorVenda) | 1-$ | 3,00 | 1 | 2,00 | 2 | CodigoVenda = 1 | 2,00 |
Sum({$1} ValorVenda) | $1 | 3,00 | 1 | 2,00 | 2 | CodigoVenda = 2 | 3,00 |
O modificador é tudo que se encontra dentro de <> e o que dá uma possibilidade infinita de filtros que podem ser feitos no Qlikview.
Este é a grande sacada do Set Analysis. Os modificadores que me permitem aumentar a capacidade de seleção em qualquer agregação. Sendo possível modificar a seleção em uma ou varias dimensões ao mesmo tempo.
<Dimensão1 = {"Valor Filtrado"}, Dimensão2 = {"Valor Filtrado"} >
Exemplo:
Sum{$<Year={2007,+2008},Region={US}>} Receita)
Sum{$<[Sales Region]={’West coast’, ’South America’}> Receita)
Comparativos
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
<dimensão = >: Se uma dimensão for definida sem resultado significa que ela não sofre alteração do usuário
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 {“*”}
O Set Analysis não é como clicar numa listbox. Nas listbox é possível fazer uma nova seleção já no Set Analysis você é obrigado a usar o filtro determinado no campo.
O Set Analysis é calculado antes de o gráfico ser computado e redesenhado.
RELEMBRAR! Campos com a marcação [] são normalmente usados pelo o motivo de terem espaço como [Código de Venda]. Não seria preciso se fosse descrito como VND_cdVenda pois seria um campo sem espaço.
Calculo({Identificador <Dimensão1 = {"Valor Filtrado"}, Dimensão2 = {"Valor Filtrado"} >} campo)
Ex.:
Sum({1 <Vendedor={"Luis"}, Produto-={"caneta"}>} vendas}
Soma das vendas menos das canetas do vendedor Luis sem sofrer alteração do filtro do usuário.
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.
Qlikview aceita 3 tipos de sintaxe (Modo de representação de uma String "", '', []):
Sum({<vendedor ={“Maria”}>} Vendas)
Sum({<vendedor ={‘Maria’}>} Vendas)
Sum({<vendedor ={[Maria]}>} Vendas)
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.
Sintaxe:
{<Dimensão = {"*Pedaço do valor procurado*"}>}
Pode ser feita várias buscas:
Sintaxe :
{<Dimensão = {"*search1*", "fixed text", " ?earch2*"}>
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
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
Exemplo:
Set vDimensao = ‘produto’
sum( {$ <$(vDimensao)={"*"} >} Vendas)
Soma das vendas por todos os produtos
Exemplo:
Set vAnalise = ‘vendedor = {"*"} - {"Ma*"}>, < vendedor = - {"Ma*"}’;
sum( {$ <$(vAnalise) Vendas)
Sintaxe:
<Dimensão = {$(NomeVariavel)} > ou <Dimension = {$(=NomeVariavel)}
Teste com ou sem o = pois não funcionará da mesma maneira. Experiência própria.
Exemplo:
vVendedor='Matheus';
vProdutoEscolhido='Caneta';
Sum(<vendedor = {$(vVendedorEscolhido)}, Produto={$(=vProdutoEscolhido)}> Vendas)
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
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:
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)
Não lí tudo, mas só pelo começo já ví que é util. Obrigado
Muito bom manual.
Parabéns e obrigado!!!
Ótimo conteúdo!
Parabéns
muito bom,
obrigado.
Sensacional o material.
Material muito bom !
Obrigado por disponibiliza-lo
Muito bom material, obrigado por compartilhar!
Material salvo para futuras consultas, obrigado por compartilhar!
Obrigado, depois veja outros materiais ensino como fazer um mapa de viagens com todos os aeroportos cadastrados, como carregar vários arquivos ao mesmo tempo, segredos para não travar seu painel caso não carregue o arquivo de senhas e sistema de bandeiras por código, sigla e sigla olímpica.