Professional Documents
Culture Documents
A anlise de conjunto oferece um meio de definir um conjunto (ou grupo) de valores de dados que
est diferente do conjunto normal definido pelas selees atuais.
Geralmente, quando voc faz uma seleo, funes de agregao, como Sum, Max, Min,
Avg e Count * agregam sobre as selees que voc fez: as selees atuais. Suas selees
automaticamente definem o conjunto de dados para agregar por cima. Com a anlise de conjunto
voc pode definir um grupo que independente das selees atuais. Isso pode ser til se voc
quer mostrar um valor particular, por exemplo, participao de mercado de um produto em todas
as regies, independentemente das selees atuais.
Anlise de conjunto tambm til quando se faz diferentes tipos de comparao, como produtos
mais vendidos comparados com os produtos menos vendidos, ou esse ano comparado ao ano
passado.
Imagine um exemplo no qual voc comea a trabalhar em um documento selecionando o ano de
2010 em uma lista. Ento, as agregaes so baseadas nessa seleo, e os grficos mostram
apenas valores para aquele ano. Quando voc faz novas selees, os grficos so atualizados de
acordo. As agregaes so feitas sobre o conjunto de registros possveis definido pela seleo
atual. Com a anlise de conjunto, voc pode definir um conjunto que de seu interesse e no
depende dessas selees.
Uma expresso de conjunto deve ser usada em uma funo de agregao. Nesse exemplo,
a funo de agregao sum (Sales).
Uma expresso de conjunto deve estar dentro de chaves, {}. No exemplo, a expresso de
conjunto : {$<Year={2009}>}.
Uma expresso de conjunto consiste em uma combinao das seguintes partes:
Exemplo 2:
Sum({$<Year={2009}>+1<Country={"Sweden"}>} Sales)
Essa expresso de conjunto contm os identificadores $ e 1, o operador + e os
modificadores <Year={2009}> e <Country={'Sweden'}>.
A expresso de conjunto foi criada para somar as vendas do ano 2009 associadas com as selees
atuais e para adicionar o conjunto completo de dados associados com o pas Sweden em todos os
anos.
Expresses de conjunto podem ser usadas apenas em expresses de grficos, no em
expresses de script.
Identificadores
Identificadores definem a relao entre a expresso de conjunto e os valores do campo ou
expresso que est sendo avaliada.
Em nosso exemplo sum( {$<Year={2009}>} Sales ), o identificador o sinal de dlar, $, e
significa que o conjunto de registros a serem avaliados consistem de todos os registros da seleo
atual. Esse conjunto ento filtrado ainda mais pela parte modificadora da expresso de conjunto.
Em uma expresso de conjunto mais complexa, dois identificadores podem ser combinados usando
um operador.
Essa tabela mostra alguns identificadores comuns.
Identificador Descrio
$_1 Representa a prxima (para frente) seleo. $_2 representa a prxima seleo-
mais-um, e adiante.
BM01 Voc pode usar qualquer ID do marcador ou nome do marcador.
MyAltState Voc pode referenciar as selees feitas em outro estado pelo nome do estado.
Exemplo Resultado
sum ({1} Sales) Retorna o total das vendas no documento, desconsiderando as selees,
porm no a dimenso.
sum ({$} Sales) Retorna as vendas da seleo atual, ou seja, o mesmo que sum(Sales).
Operadores
Os operadores so usados para incluir, excluir ou cruzar conjuntos de dados inteiros ou em partes.
Todos os operadores usam conjuntos como operandos e retornam um conjunto como resultado.
Essa tabela mostra operadores que podem ser usados nas expresses de conjunto.
Operador Descrio
+ Unio. Essa operao binria retorna um conjunto formado pelos registros que
pertencem a qualquer um dos dois operandos do conjunto.
- Excluso. Essa operao binria retorna um conjunto formado pelos registros que
pertencem apenas ao primeiro operando do conjunto, mas no ao outro. Alm disso,
quando usada como um operador unrio, ela retorna o conjunto complementar.
* Interseo. Essa operao binria retorna um conjunto formado pelos registros que
pertencem aos dois operandos do conjunto.
Modificadores
Os modificadores so usados para fazer adies ou mudanas uma seleo. Essas modificaes
podem ser escritas na expresso de conjunto. Um modificador consiste em um ou em vrios nomes
de campo, cada um seguido de uma ou vrias selees que devem ser feitas no campo.
Modificadores comeam e terminam com chevrons (sinal de maior/menor), <>.
Um modificador de conjunto se aplica seleo do identificador de conjunto anterior. Caso nenhum
identificador de conjunto seja informado como referncia, o estado de seleo atual estar implcito.
Essa tabela mostra alguns exemplos com modificadores.
Exemplo Resultado
sum({$<Region = >} Sales) Retorna as vendas da seleo, mas com a seleo em 'Region'
removida.
sum({<Region = >} Sales) Retorna o mesmo como o exemplo acima. Quando o conjunto
para modificar for omitido, $ adotado.
Consulte: Modificadores de conjunto para uma descrio mais detalhada dos modificadores e
como usa-los em anlises de conjunto mais complexas.
Modificadores de conjunto
Um conjunto pode ser modificado por uma seleo adicional ou alterada. Uma modificao como
essa pode ser escrita na expresso do conjunto.
O modificador composto por um dos diversos nomes de campo, cada um seguido de uma
seleo que deve ser feita no campo e estar entre < e >. Por
exemplo: <Year={2007,+2008},Region={US}>. Os nomes e os valores de campo, normalmente,
podem estar entre aspas, por exemplo<[Sales Region]={West coast, South
America}>.
Um modificador de conjunto se aplica seleo do identificador de conjunto anterior. Caso
nenhum identificador de conjunto seja informado como referncia, o estado de seleo atual
estar implcito.
Existem vrias formas de definir a seleo, conforme descrito a seguir.
Excluso forada
Por fim, para os campos no modo AND, tambm h a possibilidade de uma excluso forada. Se
quiser forar a excluso de valores de campo especficos, voc precisar usar ~ antes do nome
do campo.
Exemplos e resultados:
Exemplos Resultados
sum( {$<Region = >} Retorna as vendas da seleo atual, mas com a seleo em
Sales ) 'Region' removida.
sum( {<Region = >} Retorna o mesmo como o exemplo imediatamente acima. Quando
Sales ) o conjunto para modificar for omitido, $ adotado.
A sintaxe nos dois exemplos anteriores interpretada como
nenhuma seleo em in 'Region', ou seja, todas as regies com
outras selees sero possveis. Isso no equivalente
sintaxe <Region = {}> (nem a qualquer outro texto direita do sinal
de igual implicitamente resultando em um conjunto de elementos
vazio) que interpretada como nenhuma regio.
Exemplos Resultados
sum( {$<Year = {2000}, retorna as vendas da seleo atual, mas com as novas selees
Region = {US, SE, DE, em 'Year' e em 'Region'.
UK, FR}>} Sales )
sum( {$<Year = {2*}>} Retorna as vendas da seleo atual, mas com todos os anos que
Sales ) comeam com o nmero "2", ou seja, do ano 2000 em diante,
selecionados no campo 'Year'.
sum( {$<Year = Conforme a sintaxe acima, mas a dcada de 1980 tambm est
{2*,198*}>} Sales ) includa na seleo.
sum( {$<Year = Retorna as vendas para as selees atuais, mas com uma
{>1978<2004}>} Sales ) pesquisa numrica usada para definir o intervalo de anos dos
quais as vendas sero somadas.
Exemplos Resultados
sum( {$<Year = Year + Retorna as vendas da seleo atual, mas com selees adicionais
({20*,1997} {2000}) >} no campo Year: 1997 e todos os anos que comeam com "20"
Sales ) exceto o ano 2000.
Observe que se 2000 estivesse includo na seleo atual, ele
continuaria includo aps a modificao.
sum( {$<Year = (Year + Retorna quase o mesmo resultado acima, mas aqui o ano 2000
{20*,1997}) {2000} >} ser excludo, mesmo se estivesse inicialmente includo na seleo
Sales ) atual. O exemplo mostra a importncia da utilizao de parnteses
em alguns casos, para definir uma ordem de precedncia.
sum( {$<Year = {*} Retorna as vendas da seleo atual, mas com uma nova seleo
{2000}, Product = em Year: todos os anos exceto o ano 2000; e somente para
{*bearing*} >} Sales ) produtos que contm a palavra suporte.
Modificadores de conjunto usando atribuies com operadores de conjunto implcitos
Essa notao define novas selees, desconsiderando a seleo atual no campo. No entanto, se
desejar basear a sua seleo atual no campo e adicionar valores de campo, voc pode, por
exemplo, definir um modificador <Year = Year + {2007, 2008}>. Uma forma mais curta e
equivalente de escrever isso <Year += {2007, 2008}>, ou seja, o operador de atribuio define
implicitamente uma unio. Alm disso, intersees, excluses e diferenas simtricas implcitas
podem ser definidas com *=, = e /=.
Exemplos e resultados:
Exemplos Resultados
sum( {$<Product += Retorna as vendas da seleo atual, mas usando uma unio
{OurProduct1, implcita para adicionar os produtos 'OurProduct1' e 'OurProduct2'
OurProduct2} >} Sales ) lista de produtos selecionados.
sum( {$<Year += Retorna as vendas da seleo atual, mas usando uma unio
{20*,1997} {2000} >} implcita para adicionar um nmero de anos seleo: 1997 e
Sales ) todos os anos que comeam com "20" exceto o ano 2000.
Observe que se 2000 estivesse includo na seleo atual, ele
continuaria includo aps a modificao. Igual a <Year=Year +
({20*,1997}{2000})>.
sum( {$<Product *= Retorna as vendas da seleo atual, mas somente para a insero
{OurProduct1} >} Sales ) dos produtos atualmente selecionados e do produto OurProduct1.
Exemplos Resultados
sum( {$<Customer = Retorna as vendas da seleo atual, mas com uma nova
{=Sum({1<Year = {2007}>} seleo no campo 'Customer': apenas os clientes que, em
Sales ) > 1000000}>} Sales ) 2007, apresentaram um total de vendas de mais de
1.000.000.
Exemplos Resultados
OPERADORES
Operadores lgicos
Todos os operadores lgicos interpretam os operandos logicamente e retornam True (-1)
ou False (0) como resultado.
not Inverso lgico. Um dos operadores unrios. A operao retorna o inverso lgico do
operando.
Xor Or lgico exclusivo. A operao retorna o or lgico exclusivo dos operandos. Isto ,
semelhante ao or lgico, mas o resultado ser Falsese os dois operandos forem True.
Operadores numricos
Todos os operadores numricos usam os valores numricos dos operandos e retornam um valor
numrico como resultado.
+ Sinal para nmero positivo (operador unrio) ou adio aritmtica. A operao binria retorna
a soma dos dois operandos.
- Sinal para nmero negativo (operador unrio) ou subtrao aritmtica. A operao unria
retorna o operando multiplicado por -1 e, a binria, a diferena entre os dois operandos.
Operadores relacionais
Todos os operadores relacionais comparam os valores dos operandos e retornam True (-1)
ou False (0) como resultado. Todos os operadores relacionais so binrios.
& Concatenao de string. A operao retorna uma string de texto que consiste em duas strings
de operandos, uma aps a outra.
Exemplo:
'abc' & 'xyz' retorna 'abcxyz'
like Comparao da string com caracteres curinga. A operao retornar um booleano True (-
1) se a string que se encontrar antes do operador corresponder string que estiver aps o
operador. A segunda string pode conter os caracteres curinga * (quaisquer nmeros de
caracteres arbitrrios) ou ? (um caractere arbitrrio).
Exemplo:
'abc' like 'a*' retorna True (-1)
'abcd' like 'a?c*' retorna True (-1)
'abc' like 'a??bc' retorna False (0)
Argumento Descrio
Exemplos e resultados:
Astrida AA 4 16
Astrida AA 10 15
Astrida BB 9 9
Betacab BB 5 10
Betacab CC 2 20
Betacab DD - 25
Canutility AA 8 15
Canutility CC - 19
Exemplos Resultados
Sum(TOTAL UnitSales*UnitPrice) 505 para todas as linhas da tabela, alm do total, pois o
qualificador TOTAL significa que a soma ainda 505,
desconsiderando as dimenses do grfico.
Selees
Juntos, esses fatores definem o escopo da agregao. Voc pode se deparar com situaes em
que deseja que o clculo desconsidere a seleo, a dimenso ou ambas. Nas funes de grfico,
voc pode conseguir isso usando o qualificador TOTAL, anlise de conjunto ou uma combinao
dos dois.
Mtodo Descrio
Qualificador TOTAL Usar o qualificador total dentro de sua funo de agregao desconsidera o
dimensional.
A agregao ser realizada em todos os valores de campo possveis.
O qualificador TOTAL pode vir seguido de uma lista de um ou mais nomes d
campos dentro de sinais de maior e menor que. Esses nomes de campos de
ser um subconjunto das variveis de dimenses do grfico. Nesse caso, o c
feito ignorando-se todas as variveis de dimenses do grfico, exceto aquela
Mtodo Descrio
Anlise de conjunto Usar a anlise de conjunto dentro de sua agregao sobrepe a seleo. A
agregao ser realizada em todos os valores divididos atravs das dimens
Qualificador TOTAL e Usar o qualificador TOTAL e a anlise de conjunto dentro de sua agregao
anlise de conjunto sobrepe a seleo e desconsidera as dimenses.
Qualificador ALL Usar o qualificador ALL dentro de sua agregao desconsidera a seleo e
dimenses. O equivalente pode ser obtido com o comando de anlise de
conjunto {1} e com o qualificador TOTAL :
=sum(All Sales)
=sum({1} Total Sales)
2012 T1 0 1100 0%
2012 T3 0 1400 0%
Year Quarter Sum(Amount) Sum({1} Amount) Sum(Amount)/Sum({1} Amount)
2012 T4 0 1800 0%
2013 T1 0 1000 0%
2013 T3 0 1100 0%
2013 T4 0 1400 0%
Normally, there are two different restrictions that together determine which records are relevant: The
Selection, and if the formula is found in a chart the Dimensional value. The aggregation scope is what
remains after both these restrictions have been taken into consideration.
There are ways to define your own aggregation scope: This is needed in advanced calculations where you
want the aggregation to disregard one of the two restrictions. A very common case is when you want to
calculate a ratio between a chosen number and the corresponding total number, i.e. a relative share of
something.
In other words: If you use the total qualifier inside your aggregation function, you have redefined the
aggregation scope. The denominator will disregard the dimensional value and calculate the sum
of all possible values. So, the above formula will sum up to 100% in the chart.
However, there is a second way to calculate percentages. Instead, you may want to disregard the the
selection in order to make a comparison with all data before any selection. Then you should not use the total
qualifier; you should instead use Set analysis:
Using Set analysis, you will redefine the Selection scope. The set definition {1} denotes the set of all
records in the document; hence the calculated percentages will be the ratio between the current selection and
all data in the document, split up for the different dimensional values.
In other words: by using the total qualifier and set analysis inside an aggregation function, you can re-define
the aggregation scope.
To disregard the dimensional grouping Use the Total qualifier
To disregard the selection Use Set Analysis
The above cases are just the basic examples. The total qualifier can be qualified further to define a subset
based on any combination of existing dimensions, and the Set analysis can be extended to specify not just
Current selection and All data, but any possible selection.
And, of course the total qualifier can be combined with Set analysis.
A final comment: If an aggregation is made in a place where there is no dimension (a gauge, text box, show
condition, etc.), only the restriction by selection is made. But if it is made inside a chart or an Aggr()
function, both restrictions are made. So in these places it could be relevant to use the total qualifier.
Set analysis is a way to define an aggregation scope different from current selection. Think of it as a way to
define a conditional aggregation. The condition, however, is in itself like a selection that is
evaluated before the cube (the chart) is expanded. Hence, it is not possible to have a condition that is
evaluated row by row.
The set analysis is used inside an aggregation function, e.g. in an expression like
Sum(Sales)
The first step is to add the markers for the set analysis the curly brackets:
Sum( {} Sales)
These define the record set over which the aggregation should be made. Inside, you can use different
identifiers and operators, e.g. $ for records implied by current selection, 1 for all records, 1-$ for all
excluded records, etc.
A set of records that you can define by a simple selection is called natural set. Not all record sets are natural;
for instance, {1-$} cannot always be defined through a selection.
The next step is often to add a set modifier, which is defined by angle brackets. The set modifier adds or
changes a selection. It can be used on any natural set and consists of a list of fields, where each field can
have a new selection:
The next step is to define the element set for a field; the set of field values that defines the selection. The
element set could be a field reference or a set function, P() or E(). It is more common, though, that it is an
explicit list of field values or a search, and then you need the curly brackets to define the element set:
A search can be defined through double quotes. This way, field values that match the search string will be
selected:
Do not use single quotes to initiate a search here! Single quotes should denote literals, i.e. explicit field
values. (Yes, today single quotes work as a search, but this is a bug that one day will be fixed)
Often a numeric search is made, defined by a leading relational operator. Then, field values will be selected
based on a comparison:
Inside the dollar expansion, you need an expression that starts with an equals sign and contains an
aggregation function, e.g.:
As you can see, there are many levels of a set expression, and many pairs of brackets and delimiters that
need to match. When you write set expressions, you should always write both brackets directly, and then
continue with the expression between them. This way you will avoid simple syntax errors.
In Set Analysis, it is straightforward to make selections; to define the criteria for inclusion. But it is not as
straightforward to define an exclusion. But there are in fact several ways to do this.
This expression is equivalent to saying Sum the Amounts where Field equals X.
But if you want to say the opposite where field does not equal X it becomes more complicated. The
relation not equal to is not a Set operation so it cannot be used.
Note the minus sign in front of the equals sign. This will create an element set based on the existing selected
values, but with the value X removed.
This will return the complement set of X and use this as element set in the set expression.
In many situations the two methods return identical sets. But there are cases when they are different. In the
table below you can see that it makes a difference if there already is a selection in the field.
Note the difference on the row with the C. Since the implicit operator (the 2nd expression) is based on
current selection, also the value C is excluded from the calculation. This is in contrast to the unary operator
(the 3rd expression) that creates a completely new element set, not based on current selection.
We can also see that both of the above expressions exclude records where the field is NULL (the line where
Field has a dash only). The reason is simple: As soon as there is a selection in the field, the logical inference
will exclude NULL in the same field.
The answer is simple: Use another field for your selection. Typically you should use the primary key for the
table where you find the Amount.
Here you need to use the element function E(), that returns excluded values. Hence, the above Set expression
says: Select the IDs that get excluded when selecting X.
The table confirms that we get the records we want: X is excluded but NULL is still included.
With this, I hope that you understand Set Analysis somewhat better.
When making searches in text fields, you can search either by using a normal search or by using a wildcard
search, and when you search in numeric fields you can use a numeric search. But what about dual fields, like
dates, where you have both a textual and a numeric representation?
You should however note that the search string in a numeric search must contain the correct formatted date.
It is in most cases not possible to use the numeric value of the date. E.g. you cannot search for 42005 when
you want Jan 1st 2015, even though this is the value of the date.
The same logic is used in Set Analysis, which means that a correct Set Analysis expression with a date could
look like this:
Often you want the Set Analysis expression to be dynamic, and then you need to put a dollar expansion with
an aggregation function inside it. One case is that you want to compare the selected month with the
preceding month. In principal, the solution is something similar to the following:
The Max(Month) will calculate the last possible month, and the dollar expansion will enter this value into
the expression before the expression is parsed.
How the expression looks after the dollar expansion can be seen in the column header of a QlikView table.
The above formulas have been used in the table below. Note that the dollar expansions with Max(Month)
have been replaced with numbers.
So far, so good.
However, the above formulas will not work. First, if you have created the Month using the Month()
function, the field is cyclic which means that December of one year has a higher numeric value than January
the following year, although it comes before January. Hence, the Max() function will not respect the order of
months belonging to different years.
Secondly, the Month field has a dual value. This means that the Max(Month) will return a numeric
when you need the textual value (Dec) in the Set analysis expression.
One solution is to use a sequential month instead, and format it the same way everywhere:
Script:
Date(MonthStart(Date),'MMM-YY') as Month,
Expressions:
Sum( {$<Month={"$(=Date(Max(Month),'MMM-YY'))"}>} Amount )
Sum( {$<Month={"$(=Date(AddMonths(Max(Month),-1),'MMM-YY'))"}>} Amount )
Here the field Month is a date - the first day of the month - but formatted with just month and year. In other
words: A number that equals roughly 42000 and is formatted as Jan-15. The same formatting is applied
inside the dollar expansion. Note the column headers below.
Often it is practical to put the calculation of the Set analysis condition in variables. This way, the formula is
kept in one place only and the Set analysis expressions become simpler and easier to read:
Script:
Set vLastMonth= "=Date(Max(Month),'MMM-YY')";
Set v2ndLastMonth= "=Date(AddMonths(Max(Month),-1),'MMM-YY')";
Date(MonthStart(Date),'MMM-YY') as Month,
Expressions:
Sum( {$<Month={"$(vLastMonth)"}>} Amount )
Sum( {$<Month={"$(v2ndLastMonth)"}>} Amount )
Note that the variable definitions start with equals signs. This way they will be recalculated at every click.
Summary: Format the dates used inside Set analysis expressions, and use variables to simplify the
expressions.
Exemplos
=CONCAT(Chr(39)&MyColumn&Chr(39),',')
Voc pode passar o comando concat para dentro de uma expresso:
=Sum({<MyColumn={$(=CONCAT(Chr(39)&MyColumn&Chr(39),','))}>} Value)
Na maioria das vezes, essa tcnica seria usada onde as ilhas de dados esto presentes. Ela
deixa que voc passe o valor para uma expresso que no afetar nenhuma parte do modelo de
dados uma vez que a tabela da ilha de dados no foi juntada a ela.
Concat() no Script
Concat tambm pode ser usado no script para converter mltiplas linhas em um valor de coluna
nico, como qualquer outra agregao.
Lembrar dos dados fonte usados anteriormente, os resultados do lado do script CONCAT so os
que seguem:
=CONCAT(IF(aggr(Rank(sum(Value)),MyColumn)<=3,MyColumn),',')
Resultado: ABC,MNO,STU
Operadores de conjunto
possvel usar operadores de conjunto (+, *, -, /) com estados. As expresses a seguir so
vlidas e contaro nmeros de fatura diferentes que esto no estado padro ou no State1.
Exemplos:
count({$ + State1} DISTINCT [Nmero da Fatura])
conta os nmeros de faturas distintas na unio do estado <padro> e State1.
count({1 - State1} DISTINCT [Nmero da Fatura])
conta os nmeros de faturas distintas que no esto no State1.
count({State1 * State2} DISTINCT [Nmero da Fatura])
conta os nmeros de faturas distintas que esto nos estados <padro> e State1.
Tome cuidado ao usar operadores de conjunto dessa maneira. Em alguns casos, o resultado no
ser o esperado. Isso acontece porque as selees em um determinado estado geram um
conjunto de dados que pode no ser totalmente compatvel com os conjuntos com que ele est
sendo combinado. Isso acontece principalmente conforme a complexidade do modelo de dados
aumenta.
Esta tabela baseia-se nos mesmos dados das duas tabelas do primeiro exemplo. Agora
possvel ver como o segmento de coluna atual representa o agrupamento interno no caso
multidimensional. O campo Ms do grupo A posicionado separadamente do campo Ms do
grupo B. A introduo do qualificador total permite obter novamente uma posio geral.
Exemplo 3:
Este exemplo demonstrar o efeito dos diferentes modos na representao numrica da posio.
Examine a tabela abaixo:
A terceira coluna mostra a posio nas representaes de texto, ao passo que as colunas de 4 a
8 mostram a representao numrica da mesma posio em diferentes modos. A expresso em
cada coluna :
num( rank( sum( X ), mode ))
onde modo varia de 0 a 4.
Exemplo 4:
Este exemplo demonstrar o efeito dos diferentes formatos para a representao de texto da
funo de posio. Examine a tabela abaixo:
As colunas de 3 a 5 mostram a representao de texto da mesma funo de posio com
diferentes valores no parmetro de formato.
Formato 0 (padro) As linhas que compartilham a mesma posio so exibidas como 'valor
baixo - valor alto', por exemplo, '2 - 3' e '4 - 5'.
Formato 1 As linhas que compartilham a mesma posio sempre obtm o nmero da menor
posio como representao de texto. Nesse caso, por exemplo, o nmero 2 obtido para as
linhas 2 e 3.
Formato 2 Uma linha de cada grupo que compartilha a mesma posio obtm o nmero de
posio mais baixo como representao de texto, enquanto as outras linhas do grupo obtm um
caractere em branco. A ordem nos grupos que compartilham a mesma posio determinada
pela ordem de classificao das dimenses do grfico.
Exemplos de funes Inter-Registro de Grficos
Na dimenso nica, a funo top sempre far referncia primeira linha de dados da tabela (a
linha de total no includa).
As expresses que utilizam a funo top tambm sero avaliadas corretamente na linha de total,
pois o total tem uma ntida relao com um segmento de coluna especfico que, nesse caso, a
coluna inteira.
Exemplo 2:
Esta uma tabela simples bidimensional classificada principalmente pelo campo Grp:
A funo top, sem o qualificador total, agora retornar a expresso avaliada na linha superior do
grupo de classificao interno (nesse caso, a dimenso Grp). Um valor ser retornado para Grp =
A e outro para Grp = B.
Ao usar o qualificador total no caso de dimenso mltipla, voc novamente poder fazer
referncia linha superior absoluta da tabela com o mesmo valor retornado para todas as linhas.
A expresso certamente ser avaliada para o segmento de coluna que abrange a coluna inteira.
A expresso que utiliza a funo top, sem o qualificador total, ser avaliada como NULL na linha
de total, j que no pode ser associada nitidamente a um segmento de coluna especfico.
Agora, a tabela simples acima ser convertida em tabela dinmica, com todos os totais ativados.
A expresso que utiliza a funo top, sem o qualificador total, ser avaliada como NULL na linha
de total, j que no pode ser associada nitidamente a um segmento de coluna especfico.
Entretanto, todos os subtotais sero avaliados para cada segmento de coluna.
A expresso que utiliza o qualificador total no ter valores nos subtotais, mas retornar um valor
na linha de total geral.
Exemplo 3:
Examine a seguinte tabela simples classificada no campo Grp:
possvel continuar alterando a ordem de classificao entre os campos, de forma que o grfico
seja classificado em primeiro lugar no campo Ms. Agora, a tabela ter esta aparncia:
A terceira coluna mostra a expresso sum(Val) avaliada uma linha acima da atual, o que pode
ser confirmado pela comparao com os valores para sum(val) na segunda coluna. A
funo above retorna NULL na primeira linha, j que no h nenhuma linha acima para avaliar a
expresso. A funo above sempre retorna NULL em todas as linhas de total.
A quarta coluna demonstra o uso mais comum dessa funo, ou seja, calcular a diferena entre
diferentes perodos de tempo, por exemplo.
Exemplo 5:
Examine a tabela dinmica bidimensional abaixo:
A funo above, sem o qualificador total (terceira coluna), funcionar somente em cada grupo de
classificao. Um valor NULL ser retornado na linha superior de cada segmento de coluna.
Quando um qualificador total for includo (quarta coluna), a coluna inteira ser considerada um
segmento de coluna. Somente a linha superior retornar NULL. Todas as linhas de total sero
desconsideradas e retornaro NULL.
Coluna 3 A funo RowNo retornar o nmero de linha em cada segmento de coluna do grupo
de classificao. Nas linhas de subtotal, o nmero de linha 0 ser retornado, pois esses totais
pertencem claramente a uma segmento de coluna especfico. O valor NULL ser retornado na
linha de total geral.
Coluna 4 Com o qualificador total, a funo RowNo retornar o nmero de linha da coluna
inteira. O valor NULL ser retornado nas linhas de subtotal. O valor 0 ser retornado na linha de
total geral.
Coluna 5 A funo NoOfRows retornar o nmero de linhas de dados em cada segmento de
coluna do grupo de classificao. Nas linhas de subtotal, o mesmo nmero ser retornado como
nas linhas de dados. O valor NULL ser retornado na linha de total geral.
Coluna 6 Com o qualificador total, a funo NoOfRows retornar o nmero de linhas de dados
da coluna inteira, o mesmo que ser retornado na linha de total geral. O valor NULL ser
retornado nas linhas de subtotal.
dimensionality ( )
Para uma tabela dinmica com trs colunas de dimenso esquerda, ser retornado o seguinte:
3 para todas as clulas de dados comuns.
2 para somas parciais no primeiro nvel e entradas no expandidas na terceira coluna.
1 para somas parciais no segundo nvel e entradas somente expandidas na primeira coluna.
0 para a clula de total geral.
dimensionality ( )
secondarydimensionality ( )
Estados Alternativos
Descrio
Voc pode usar Estados Alternativos para realizar anlise comparativa entre conjuntos de
dados mltiplos, por exemplo, para a finalidade de anlise da cesta de compras. Um estado
mantm um conjunto de selees;
O desenvolvedor do QlikView pode criar vrios estados dentro de um documento QlikView e
aplic-los a objetos especficos no documento. O usurio final pode criar cpias desses objetos
(objetos do server) e, em seguida, colocar esses objetos em estados diferentes.
A diferena mais importante entre Desvincular e Estados Alternativos o fato de que TODOS
os objetos em um determinado estado respondero s selees do usurio feitas nesse estado.
Os objetos em um estado especfico no so afetados pelas selees do usurio feitas em outros
estados.
Estados Alternativos funcionalidade no est acessvel no script de carga.
A funcionalidade Estados Alternados habilitada por um desenvolvedor do QlikView e deve ser
usada com cautela, uma vez que ela pode causar um grande confuso aos usurios finais, j que
h uma indicao automtica na tela em que esto objetos ou expresses, ou referncias,
estados alternativos. O desenvolvedor do QlikView deve decidir se fornecer essas informaes
para o usurio final usando a funo StateName().
2. Defina o Estado Alternativo para o identificador de estado que voc deseja usar para o
objeto.
Agora, o objeto ser independente do resto do documento em termos de seleo, a menos que
outros objetos sejam definidos com o mesmo estado.
Existem dois estados que esto sempre disponveis: estado padro e herdado. No estado
padro, ocorre a maioria da utilizao do QlikView; esse estado representado por $. O
documento QlikView est sempre no estado padro. Os objetos podem herdar estados de
objetos de nvel superior, como pastas e contineres. Isso significa que so herdados estados
como: Documento - Pasta - Objetos de Pasta. As pastas e os objetos de pasta esto sempre no
estado herdado, a no ser que sejam substitudos pelo desenvolvedor do QlikView.
Operadores de conjunto
possvel usar operadores de conjunto (+, *, -, /) com estados. As expresses a seguir so vlidas e contaro
nmeros de fatura diferentes que esto no estado padro ou no State1.
Exemplos:
count({$ + State1} DISTINCT [Nmero da Fatura])
conta os nmeros de faturas distintas na unio do estado <padro> e State1.
count({1 - State1} DISTINCT [Nmero da Fatura])
conta os nmeros de faturas distintas que no esto no State1.
count({State1 * State2} DISTINCT [Nmero da Fatura])
conta os nmeros de faturas distintas que esto nos estados <padro> e State1.
Tome cuidado ao usar operadores de conjunto dessa maneira. Em alguns casos, o resultado no ser o
esperado. Isso acontece porque as selees em um determinado estado geram um conjunto de dados que
pode no ser totalmente compatvel com os conjuntos com que ele est sendo combinado. Isso acontece
principalmente conforme a complexidade do modelo de dados aumenta.
O estado alternativo uma separao lgica de parte dos dados armazenados no documento Qlikview para
anlise individual de forma que, a seleo realizada sobre um estado alternativo no interfere nos demais estados nem
no restante do documento. Voc pode criar vrios estados dentro de um documento QlikView e aplic-los a objetos
especficos no documento. Estados Alternativos no um recurso disponvel no script de carga e sim na interface
grfica(UI).
1 Passo Criar os estados alternativos: no menu Propriedades do Documento: Aba Geral.na caixa de
dilogo Estados Alternativos a partir do boto Estados Alternativos... Voce pode criar qualquer nmero de estados
no documento QlikView e fornecer um nome para cada estado criado.
Quando o recurso Estados Alternativos est ativado, voc tambm pode criar novos estados a partir dos objetos da
tela.
1. Criar um objeto de texto e aplicar as seguintes configuraes a este objeto:
a. Na guia Geral Alinhamento horizontal centro, alinhamento vertical superior transparncia 100%
2. Criar um objeto listbox para o campo ANO e aplicar as seguintes configuraes a este objeto:
a. Na aba Geral Inserir os campos DIA UTIL e DIA, selecionar o estado alternativo 1
b. Na aba Apresentao marcar a opo Estilo da Grade
Neste ponto teremos uma imagem semelhante a esta, observe que fiz selees diferenciadas para mostrar como
o estado alternativo permite a seleo individual por estado.
5. Agora vamos criar um grfico combinado e aplicar as seguintes configuraes a este objeto:
Expresso 1:
Expresso 2:
Esta expresso realiza a soma do campo vendas para o Estado alternativo EstAlternativo1 onde qualquer valor
selecionado no campo Cliente do estado padro tambm ser selecionado no campo Cliente do estado alternativo;
o mesmo ocorre para os campos Vendedor e Cidade
c. Para o rotulo destas expresses funcionarem de modo dinmico vamos aplicar a seguinte expresso
Expresso 1:
if(Count({EstAlternativo1} DISTINCT ANO) = 1 and Count({EstAlternativo1} DISTINCT MES) = 1, 'Vendas' &' '
& Only({EstAlternativo1} MES) & ' '& 'de' &' '
& Only({EstAlternativo1} ANO), if(count({EstAlternativo1} DISTINCT ANO) = 1 , 'Vendas' &' '
& if(Count({EstAlternativo1} DISTINCT MES) <12, Concat({EstAlternativo1} DISTINCT MES,',',12) )
&' '& 'de' &' ' & Only({EstAlternativo1} ANO), 'Estado Alternativo1'))
Expresso 2:
=if(Count({EstAlternativo1} DISTINCT ANO) = 1 and Count({EstAlternativo1} DISTINCT MES) = 1, '% Part'&' '
& Only({EstAlternativo1} MES) & ' '& 'de' &' '
& Only({EstAlternativo1} ANO), if(count({EstAlternativo1} DISTINCT ANO) = 1 , '% Part' &' '
& if(Count({EstAlternativo1} DISTINCT MES) <12, Concat({EstAlternativo1} DISTINCT MES,',',12) ) &' '& 'de' &' '
& Only({EstAlternativo1} ANO), 'Estado Alternativo1'))
d. A primeira e a terceira expresses devero ser configuradas como barra e com valores sobre dados marcado
e. A segunda e quarta expresses devero ser configuradas como linha e com smbolo pontos.
f. Na aba Eixos configurar a primeira e terceira expresses na posio esquerda e a segunda e quarta na posio
direita.
g. Na aba Nmero configurar a primeira e terceira expresses como inteiro e a segunda e quarta como fixo com um
decimal e mostrar em porcentagem.
Finalmente teremos esta aparncia para a apresentao do estado alternativo.
Identificadores de Estado
Os nomes de estado criados por voc so conhecidos como Identificadores de Estado. Existem dois estados que esto
sempre disponveis: estado padro e herdado. No estado padro, ocorre a maioria da utilizao do QlikView; esse
estado representado por $. O documento QlikView est sempre no estado padro. Os objetos podem herdar estados
de objetos de nvel superior, como pastas e contineres. Isso significa que so herdados estados como: Documento -
Pasta - Objetos de Pasta. As pastas e os objetos de pasta esto sempre no estado herdado, a no ser que sejam
substitudos pelo desenvolvedor do QlikView.
l No h nenhuma indicao automtica na tela para informar que objetos ou expresses esto em estados alternativos
ou fazem referncia a eles. O desenvolvedor do QlikView deve decidir se fornecer essas informaes para o usurio
final usando a funo StateName().
Estados Alternativos pode ser usado com objetos vinculados. O estado se aplica a todas as instncias de um objeto.
A alterao de um estado em um objeto vinculado colocar os outros objetos vinculados no mesmo estado. As
variveis pertencem ao estado padro. As alteraes em outros estados no afetaro os valores de varivel.
Nota:
O recurso Estados Alternativos ativado por um desenvolvedor do QlikView e deve ser usado com cautela, pois pode
gerar uma grande confuso com os usurios finais.