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: 
nicolett_yuri

Variáveis - Expansão do sinal de dólar (Dollar Sign Expansion)

Fala pessoal, tudo bom?

Hoje vamos falar um pouco sobre a expansão do sinal de dólar das variáveis. Vamos lá!

O que é?

A expansão do sinal de dólar basicamente é a utilização do sinal de dólar na declaração de uma variável em algum objeto, por exemplo:

$(vExpressaoVendas)

Para que serve?

Simplesmente avaliar o conteúdo de uma variável, ou seja, calcular o resultado da variável e, em seguida,
devolver o valor de saída.

É sempre necessário?

Não, vejo muitas pessoas sempre utilizando a expansão do dólar na utilização das variáveis, mas nem sempre é necessário, por exemplo, quando temos um número simples não é necessário sua utilização, pois não há nada a ser avaliado/calculado nesta variável.

Vejamos um exemplo na prática:

Gráfico de Vendas por Vendedor em que a quantidade de Vendedores é muito grande para que todos sejam exibidos no mesmo gráfico sem a barra de rolagem, desta forma criamos uma variável (depois irei fazer um outro post demonstrando as formas de se criar uma variável) para que o usuário possa controlar o número de vendedores a serem exibidos.

Gráfico antes da delimitação

Ex01_01

Gráfico com a delimitação da quantidade de vendedores através da variável vQuantidadeVendedores. Por se tratar de um número simples, sua utilização não necessita da expansão do sinal de dólar. Veja exemplo:

Ex01_02

Veja a utilização da variável

Ex01_03

Utilizar sem necessidade pode atrapalhar o desempenho da minha aplicação?

Sinceramente eu acredito que não vá interferir no desempenho da sua aplicação, mas não deixa de ser mais um cálculo a ser realizado pelo QlikView. Façamos a nossa parte se sabemos que esse cálculo pode ser evitado

Observação: Alguns autores recomendam a utilização da expansão do sinal de dólar mesmo para os casos em que realmente não há necessidade. O argumento é para caso essa variável venha ser alterada e necessidade do sinal de dólar você não terá que realizar nenhuma alteração na forma de utilização dela.

E as variáveis com o conteúdo de texto?

Quando o conteúdo é somente um texto você, realmente, deve evitar o uso da expansão do sinal do dólar, pois este retornará um resultado nulo, pois não há o que avaliar em um texto.

Erro utilizando a expansão do sinal do dólar:

Ex02_01

Forma correta de utilização:

Ex02_02

Utilizando a expansão do sinal de dólar e a variável entre aspas o resultado também será satisfatório, porém não há necessidade da utilização da expansão.

Ex02_03

Expansão do sinal de dólar com parâmetros

Junto a variável, é possível a utilização de parâmetros. Os parâmetros são passados junto com a expansão do sinal de dólar.

Criando a variável com parâmetros

Vamos criar uma nova variável para somar as vendas e criar um parâmetro para dividir esse valor.

A variável que iremos criar é chamada de vVendasComDivisor e o seu conteúdo deve ser: SUM(Valor) / $1

O $1 é o parâmetro de número um

Ex03_01

IMPORTANTE: Sempre que criar uma variável e seu conteúdo for o de uma expressão, não se deve usar o sinal de igual na frente, pois queremos que essa variável seja interpretada dentro do gráfico que a utilizarmos, caso contrário essa variável será recalculada para todos os filtros que o usuário fizer, mesmo que ela não esteja sendo utilizada naquele momento. Depois criarei um post para falar disso

Voltando para o tópico rsrs!

Passando um parâmetro para a variável

Para passar um valor de parâmetro para a variável vVendasComDivisor devemos utilizar a expansão do sinal de dólar da seguinte forma:

Ex03_02

Repare que a coluna a esquerda é o valor original de vendas e a outra é o resultado das vendas dividido por 1000.

Ex03_03

Criando uma variável com mais de um parâmetro

Uma variável pode ter qualquer número de parâmetros definidos, tudo especificado com um dólar e um número que indica o número do parâmetro: $1, $2, $3, e assim por diante. No momento de passar o valor ao parâmetro, a ordem respeitará a numeração dos parâmetros.

Vamos criar um exemplo que adicione ao valor de vendas uma comissão geral.

O nome da variável será: vVendasComComissaoDivisor

O primeiro parâmetro é o percentual de comissão geral e o segundo parâmetro é o divisor

Ex03_04

Neste exemplo a comissão geral é de 20% (valor a ser utilizado 0.20) e este valor não sofrerá nenhuma redução na divisão:

Ex03_05_1

IMPORTANTE: Note que os parâmetros devem ser passados na ordem correta, sendo o primeiro parâmetro (0.20) para o $1 e o segundo (1) para o $2.

Resultado:

Ex03_05

OBSERVAÇÃO: Quando criamos uma variável com parâmetros, a utilização desse parâmetro passa a ser obrigatória.

Parâmetro de texto

Também é possível passar um texto no parâmetro.

Texto? Para que?

Podemos ter uma expressão que possua uma condicional (if ou set analysis) com o valor de texto, por exemplo:

Ex04_01

Estamos utilizando um texto como parâmetro, então devemos passar esse parâmetro entre aspas simples. Você também pode optar por declarar a variável com a aspas simples e na hora de passar o parâmetro não utilizar a aspas, fica ao seu critério.

Ex04_02

Resultado:

Ex04_03

O parâmetro pode ser um campo ou uma outra expressão?

Sim, você pode deixar um parâmetro para ser utilizado para definir um nome de campo ou até para definir uma segunda expressão.

Por exemplo, parâmetro para definir o tipo de agregação

Ex05_01 Ex05_02 Ex05_03

Aplicação de exemplo para download

Clique aqui para fazer download da aplicação de exemplo.

Conclusão

É muito bom entendermos como realmente devemos utilizar uma função e também o seu funcionamento. A expansão do sinal de dólar pode facilitar, e muito, na manutenção de uma aplicação grande.

Já pensou em criar um documento de excel e concentrar todas as suas expressões? Fica bem legal

É isso pessoal!

Dúvidas, críticas e elogias nos comentários ou então através do facebook: facebook.com/blogdonicolett

Obrigado e até a próxima semana!!

Labels (2)
5 Replies
Anonymous
Not applicable

Excelente Post.

Este recurso de parâmetros é pouco conhecido e faz uma grande diferença na minha vida..kkkk

Parabéns.

lucianosv
Specialist
Specialist

Muito bom mesmo.

Seria legal fazer uma continuação tipo: utilizando funções no Set Analysis, e você é o cara para fazer isso.

valeu.

nicolett_yuri
Author

Opa, com certeza rsrs

nicolett_yuri
Author

Obrigado Egnalds!!

EduardoAlexandredeFrancisco

Mais um excelente documento

Eu mesmo não conhecia variável com parâmetro, vou começar a usa-la.