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: 
paulinhok14
Creator
Creator

Média ponderada no script

Caros bom dia!

Estou necessitando fazer uma média ponderada no script, para que esse valor de média esteja vinculado com outros campos (localidade, cliente, etc.),  seguindo o modelo:

sum ( Core * Count ( Notification) ) / sum ( Notification).

Porém os problemas que tenho enfrentado:

1 - Não dá pra simplesmente fazer essa expressão no script por conta de ser a agregação aninhada.

2 - Tentei fazer em outra tabela a contagem de notificações, apenas pra eliminar o nested aggregation.

Contagem:

LOAD

Core,

Count(Notification) as [Contagem Eventos]

resident main

group by Core;

3 - Mas quando vou fazer a expressão em uma outra tabela distinta, não consigo usar a cláusula total no sum()

Eu fiz essa média ponderada em uma tabela dinâmica, usando a expressão:

=sum(total  [Core*Eventos]) / sum( total [Contagem Eventos])

E gerou uma média, na última coluna, como mostra a imagem:

1.png

Porém ao fazer essa mesma expressão pra uma tabela com outros atributos, os quais eu queria ter uma média individual e geral, o valor fica único, por ex:

2.png

Já tentei várias formas de fazer isso via script, criando outras tabelas pra evitar a agregação aninhada e não deu certo:

script.pngerrad.png

Alguém tem alguma sugestão?

Labels (2)
12 Replies
nicolett_yuri

1.png

paulinhok14
Creator
Creator
Author

Estranho, aqui aparecem todos nulos ao usar a expressão

sum(total <[Customer Name]> [Core*Eventos]) / sum(total  [Contagem Eventos])


A fórmula só apresenta valores se retirar o <[Customer Name]>


EDIT: Acho que identifiquei o porque, a dimensão do meu gráfico não é apenas [Customer Name].

A dimensão é calculada...

=if ( not isNull(Core) and Core > 0, [Customer Name])

Pois preciso desconsiderar os valores de Core <= 0. Mesmo usando o rótulo da expressão como [Customer Name] não dá certo...

Sabes como posso resolver isto?

nicolett_yuri

Não era para dar problema por conta da dimensão calculada, mas tem outra maneira de fazer: criar essa tratativa na expressão, por exemplo:

No script, crie uma coluna com essa validação:

if ( not isNull(Core) and Core > 0, 1, 0) as ValidacaoCore


Na expressão do gráfico:

sum(total <[Customer Name]> {<ValidacaoCore = {1}>} [Core*Eventos]) / sum(total  {<ValidacaoCore = {1}>} [Contagem Eventos])