Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Manual Set Analysis Completo em Português BR

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:

  • Identificador,  defini o estado do filtro do usuário diante ao Set Analysis
  • Modificador, Toda definição de filtros desejado

Este 2 campos são opcionais e eles que elaboram o Set Analysis.




Identificadores


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ãoIdent.
ValorVenda 1
CódigoVenda 1
ValorVenda 2
CódigoVenda 2
filtro feito pelo usuário
Result.
Sum({$} ValorVenda)

$

3,00

12,002

CodigoVenda = 1

3,00
Sum({1} ValorVenda)13,0012,002CodigoVenda = 15,00

Sum({1-$} ValorVenda)

1-$3,0012,002CodigoVenda = 12,00
Sum({$1} ValorVenda)$13,0012,002CodigoVenda = 23,00


Modificadores


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.

Composição completa


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)

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 = {"*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

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

Usando variável para definir dimensões do Set Analysis

Exemplo:

Set vDimensao = ‘produto’

sum( {$ <$(vDimensao)={"*"} >} Vendas)

Soma das vendas por todos os produtos



Usando variável para definir todo o Set Analysis

Exemplo:

Set vAnalise = ‘vendedor = {"*"} - {"Ma*"}>, < vendedor = - {"Ma*"}’;

sum( {$ <$(vAnalise) Vendas)


ATENÇÃO: De vez enquanto esta expressão diz que esta com erro mas ignore o erro pois funciona mesmo com erro de expressão.



Variáveis com um ou muitos dados

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)



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


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)

Labels (4)
33 Replies
marcio150972
Creator
Creator

Sensacional, muito bom!

Not applicable
Author

Fantástico, melhor material que já vi até hoje sobre Set Analysis.

Obrigado por compartilhar

eduardo_dimperio
Specialist II
Specialist II

Achei interessante ainda mais porque o autor nao tem obrigação nenhuma de criar um artigo, fez pelo simples prazer de ajudar, mas para quem é muito leigo fica complicado.

Não existe exemplos com input e output

Não existe uma explicação de quando e como utilizar {},[],<>, =,"".

Um exemplo disso seria este:
Count(DISTINCT {$<CommercialSite = {"=$(variable1) > 0 and $(variable2)>0"}>} [CommercialSite])


Como alguem saberia onde colocar esses marcadores?

Enfim, de qualquer forma parabéns pelo trabalho

rodrigo_rocha
Creator
Creator

Muito bom!!!

tatiana_duarte
Contributor II
Contributor II

Olá, sou nova no grupo, gostaria de saber se é possível fazer download deste documento?

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Para download, escolha esta opção encima:

Capturar.JPG

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
luis_lorenzo
Contributor III
Contributor III

Como poderia fazer uma análise com os seguintes dados:

Já tenho a fórmula:

count({$<[Dt. Entrada] = {$(V_Dt_Filtro)}, Cancelados = {'Não'},

[Clinica Atendimento] = {'Médica','Cirurgica'},

[Tipo de Atendimento] = {'Internado'} >}

>} DISTINCT([Nr. Atendimento]))

A fórmula acima, contem dados que ainda devo eliminar, que são:

[Tipo Passagem Setor Movimentação]  deve ser  'Alta'

E

[Setor Movimentacao Paciente] = 'Hospital Dia'



ou seja, Quando tiver uma ALTA do setor Hospital dia não deve contar...importante lembrar que apenas quando a Alta for pelo Hospital dia qualquer Alta em outro setor deve entrar!


A disposição,

marcelvinicius
Creator III
Creator III

Boa tarde amigo,

Por gentileza, criar um tópico de ajuda para melhor atende-lo:

Como obter ajuda? Leia antes de postar

do amigocleveranjos‌ pode te ajudar.

Atenciosamente.

Not applicable
Author

Luis Carlos Lorenzo não entendi sua pergunta porém mesmo assim me atrevo a responder o seguinte.

  1. Para filtros específicos, onde tempo não irá mudar, não seria o ideal fazer uma marcação ou grupo e depois inserir este grupo ou marcação no set analysis?
  2. O que você acha de fazer uma prévia em ETL, pode ser no Qlikview mesmo um painel anterior que gera um QVD e que coloca flag em todas estas questão para que você precise só somar, não pesando constantemente no processamento do seu servidor?

Não quero desmotivar o seu aprendizado no Set Analysis mas quero motiva-lo a tomar caminhos mais faceis e menos invasivas para a solução dos seus problemas.

Agradeço a leitura do documento em questão e estou a disposição para qualquer dúvida.

Not applicable
Author

Eduardo obrigado por sua constatação. Percebi que para um leigo seria realmente muito difícil entender Set Analysis com os conceitos básicos não mencionados [ ] ' ' " " { } ( ) mediante seu relato tentei ser o mais polido possível nas minhas explicações. Espero ajudar aqueles que realmente precisam entender sobre Set Analysis. Obrigado por suas pontuações serviu de combustível para tornamos esta comunidade cada vez melhor.