Exemplos de como usar uma variável em uma expressão
No Qlik Sense, uma variável é uma entidade nomeada, contendo um valor de dados.
Maneiras de usar variáveis em uma expressão
Uma variável pode ser usada de duas maneiras diferentes: em uma referência direta ou em uma expansão de sinal de dólar. Se você usar uma referência direta, o valor da variável será usado no cálculo. Se você usar uma expansão de sinal de dólar, toda a expansão de sinal de dólar será substituída pelo valor da variável antes que a expressão seja analisada. Portanto, os dois métodos diferentes podem retornar resultados diferentes.
Exemplo: Usando uma variável com expansão de sinal de dólar
A variável x contém a string de texto Sum(Sales).
Em um gráfico, você define a expressão $(x)/12. O efeito é exatamente o mesmo de ter uma expressão de gráfico Sum(Sales)/12.
No entanto, se você alterar o valor da variável x para, por exemplo, Sum(Budget), os dados do gráfico são recalculados imediatamente com a expressão interpretada como Sum(Budget)/12.
Exemplo: Variável com expansão de sinal de dólar em tabela dinâmica
Suponha que você tenha uma Tabela dinâmica ou um objeto Dinâmico que contenha o seguinte:
-
As dimensões são Product Type e Product Name.
-
As medidas são Sum(Sales) e Count (distinct InvoiceNumber).
-
Os itens em Colunas são Valores (padrão) e o campo Quarter.
Você pode usar Variáveis para incentivar a análise interativa. Suponha que você também crie uma variável vUserInteraction com uma definição em branco. Em seguida, crie dois gráficos Botão em sua planilha, configurados com a ação Definir valor variável:
-
Mostrar mais detalhes: Clique em esse botão para definir vUserInteraction como o valor de ='Yes'.
-
Mostrar menos detalhes: Clique em esse botão para definir vUserInteraction como o valor de ='No'.
Em sua tabela dinâmica, você poderia adicionar várias medidas adicionais ao gráfico, como Count(Quantity) e Sum(Cost). Em seguida, configure cada coluna de medida para ter o seguinte valor para Mostrar coluna se:
'$(Reference)'='Yes'
Isso permite que o gráfico se adapte ao fato de o usuário querer ou não informações adicionais. Se o usuário clicar no botão Mostrar mais detalhes, medidas adicionais serão adicionadas à tabela. Caso contrário, ou se clicarem em Mostrar menos detalhes, as medidas adicionais serão excluídas.
Mais exemplos: Usando variáveis em expansões de sinal de dólar
As expansões de sinal de dólar são uma ferramenta versátil e poderosa no Qlik Sense, com muitas possibilidades de uso. Para ver mais exemplos, consulte Expansões de sinal de dólar.
Exemplo: Referenciando diretamente uma variável em uma expressão
Usar uma variável como referência direta é menos comum, mas ainda é útil. Por exemplo:
Suponha que você tenha um campo TransactionSummary em seu modelo de dados que contém resumos de transações em texto livre. Esse campo pode conter informações complementares sobre transações. Por exemplo, uma transação pode ter um resumo para documentar que o cliente comprou um item com um crédito na loja, ou para documentar quaisquer problemas que surgiram durante a venda.
No seu aplicativo, você pode querer usar TransactionSummary, mas quer colocar os dados em contexto sem afetar o modelo de dados ou o script de carregamento, e sem armazená-los em outro lugar no gráfico.
Você poderia fazer o seguinte:
Criar uma variável chamada vIntroStatement no diálogo de variáveis com a seguinte definição:
='The following summary was provided by the vendor: '
Adicionar a seguinte medida a um gráfico Texto e imagem:
vIntroStatement & TransactionSummary
Armazenar a declaração introdutória como uma variável permite que você controle centralmente o uso de um valor. Por exemplo, a variável vIntroStatement pode ser usada em vários gráficos e dentro de várias medidas diferentes (por exemplo, pode haver um gráfico separado que às vezes contém texto descrevendo quantas unidades foram vendidas durante a transação). Ao usar uma variável, você pode simplificar o processo de atualização de expressões no aplicativo. Para fazer uma alteração no texto, basta atualizar a variável e as alterações serão refletidas no aplicativo.
Como os nomes são interpretados
No Qlik Sense, não é recomendado dar a uma variável o nome de um campo ou função. Mas se fizer, você deverá saber como usá-los em uma expressão.
Exemplo:
A string XXX representa um campo, uma variável, uma função ou uma medida. XXX será interpretado como um deles, dependendo de como a expressão for criada.
Expressão | XXX interpretado como |
---|---|
XXX | medida, variável ou campo |
$(XXX) | variável |
Count(XXX) | campo ou variável |
XXX() | função |
Ao nomear uma entidade, evite atribuir o mesmo nome a mais de um campo, variável ou medida. Existe uma ordem estrita de precedência para resolver conflitos entre entidades com nomes idênticos. Essa ordem é refletida em quaisquer objetos ou contextos nos quais essas entidades são usadas. Esta ordem de precedência é a seguinte:
Dentro de uma agregação, um campo tem precedência sobre uma variável. Rótulos de medida não são relevantes em agregações e não são priorizados.
Fora de uma agregação, um rótulo de medida tem precedência sobre uma variável que, por sua vez, tem precedência sobre um nome de campo.
Além disso, fora de uma agregação, uma medida pode ser reutilizada ao se fazer referência ao seu rótulo, a menos que esse rótulo seja de fato um rótulo calculado. Nessa situação, a medida perde significado para reduzir o risco de autorreferência e, nesse caso, o nome sempre será interpretado primeiro como um rótulo de medida, segundo como um nome de campo e terceiro como um nome de variável.
Como prática recomendada, considere o uso de uma convenção de nomenclatura padronizada para as variáveis criadas em um aplicativo. Por exemplo, você pode se certificar de que todos os nomes de suas variáveis comecem com v. Por exemplo: vUserText. Isso ajuda a garantir que as variáveis sejam reconhecidas rapidamente como variáveis e diferenciadas de medidas, campos e funções.
Cálculo da variável
Existem várias maneiras de usar variáveis com valores calculados no Qlik Sense, e o resultado depende de como você as define e as chama em uma expressão.
Esse exemplo requer os seguintes dados carregados no editor da carregamento de dados:
Vamos definir duas variáveis no diálogo de variáveis:
- Nome vSales Definição'Sum(Sales)'
- Nome vSales2 Definição'=Sum(Sales)'
Na segunda variável, adicionamos um sinal de igual antes da expressão. Assim, a variável será calculada antes de ser expandida e a expressão será avaliada.
Se você usar a variável vSales como está, por exemplo, em uma medida, o resultado será a string Sum(Sales), ou seja, nenhum cálculo será realizado.
Se você adicionar uma expansão de sinal de dólar e chamar $(vSales) na expressão, a variável será expandida e a soma de Sales, exibida.
Por fim, se você chamar $(vSales2), a variável será calculada antes de ser expandida. Isso significa que o resultado exibido é a soma total de Sales. A diferença entre usar =$(vSales) e =$(vSales2) como expressões de medida é observado neste gráfico que mostra os resultados:
Dim | $(vSales) | $(vSales2) |
---|---|---|
A | 350 | 1560 |
B | 470 | 1560 |
C | 740 | 1560 |
Como você pode ver, $(vSales) resulta na soma parcial para um valor de dimensão e $(vSales2) resulta na soma total.