Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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)
Sensacional, muito bom!
Fantástico, melhor material que já vi até hoje sobre Set Analysis.
Obrigado por compartilhar
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
Muito bom!!!
Olá, sou nova no grupo, gostaria de saber se é possível fazer download deste documento?
Para download, escolha esta opção encima:
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,
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.
Luis Carlos Lorenzo não entendi sua pergunta porém mesmo assim me atrevo a responder o seguinte.
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.
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.