Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Oi gente,
Estou confuso com um resultado, criei um set analysis para realizar uma soma quando o consumo atual e a media de consumo dos ultimos meses foram maiores que 1 (dentre outras regras), porém essa regra esta sendo ignorada. O que pode ser?
SUM(${<CONSUMO_TOTAL = {"=CONSUMO_TOTAL> 1.5*CONSUMO_MEDIA_TRIMESTRAL"}+
{"=CONSUMO_TOTAL> 0.5*CONSUMO_MEDIA_TRIMESTRAL"}+
{"=CONSUMO_TOTAL>1"}+
{"CONSUMO_MEDIA_TRIMESTRAL>1"}
>} ROUND((CONSUMO_TOTAL- CONSUMO_MEDIA_TRIMESTRAL),0.01))
Imaginei que essa linha deveria vir com resultado vazio, alguem pode me ajudar?
Obrigado
Os dados são diferentes nesses casos.
Quando você avalia algo como:
sum(Sales)
vai ser diferente de:
sum({<CampoA={1},Campo2={B}>}Sales)
Por esse motivo, quando você usa duas expressões diferentes, vão sair "tabelas" diferentes, digamos assim. As agregações vão ser diferentes entre as expressões e por isso ele se perde, pq avaliam coisas diferentes.
Supondo que a expressão (1), retorne 10 linhas e a segunda só 5, se você fizer uma a condição de cor para 1, não necessariamente iria respeitar na outra.
Dúvida 2:
Quanto a esse aspecto, do próprio help da qlik o Set Analysis
tem que ser disposto entre <> para poder fazer operações de conjunto, por exemplo como está na expressão que você usou. Essa que você mencionou acredito que seja para bookmark ou coisa parecida
Expressão extraída de soma de conjuntos do Help: Sum({$<Year={2009}>+1<Country={'Sweden'}>} Sales)
É assim que a Qlik mostra as operações.
hi,
try to attach sample data
Ola Eduardo,
a construção do set analysis precisa de uns ajustes, pois deveria ser a soma de conjuntos, algo como abaixo:
SUM
(
{<
CONSUMO_TOTAL = {'=CONSUMO_TOTAL> 1.5*CONSUMO_MEDIA_TRIMESTRAL'}
>
+
<
CONSUMO_TOTAL = {'=CONSUMO_TOTAL> 0.5*CONSUMO_MEDIA_TRIMESTRAL'}
>
+
<
CONSUMO_TOTAL = {'=CONSUMO_TOTAL>1'}
>
+
<
CONSUMO_TOTAL = {'CONSUMO_MEDIA_TRIMESTRAL>1'}
>}
ROUND
(
CONSUMO_TOTAL- CONSUMO_MEDIA_TRIMESTRAL
,
0.01
)
)
Se eu carregar os seguintes dados:
x:
load * Inline
[
OIDMETER,CONSUMO_TOTAL,CONSUMO_MEDIA_TRIMESTRAL
38584,0.41,0.41
1,1.7,0.3
];
Consigo a imagem abaixo, ou seja o seu set analysis não está contemplando a linha que você demonstrou, devido as condições que você colocou.
Oi Felip, nao deu certo. Ainda aparecem os valores menores que 1
Sure
A parte do set analysis
<CONSUMO_TOTAL = {'=CONSUMO_TOTAL> 0.5*CONSUMO_MEDIA_TRIMESTRAL'}>
está permitindo esses valores, deve ser alguma questão de arredondamento onde apesar de ser 0.01 e 0.01 para ambos os campos, devem ser valores menores, se você excluir essa parte, os valores que você grifou na imagem somem.
Entao, mas eu preciso fazer uma clausula AND pra isso.
A logica é pegar CONSUMO TOTAL > OU < 50% do CONSUMO_TRIMESTRAL E CONSUMO_TOTAL>1 E CONSUMO_TRIMESTRAL>1
Mas nao consigo montar isso no Set Analysis, imaginei que o operador * equivaleria ao AND e o operador + equivaleria ao OU.
Tente modificar o "+" por "*" que seria a intersecção dos conjuntos para esses dois que você necessita.
Cara, acho que agora esta funcionando, mas com uma situação estranha. Meu codigo ficou assim:
Sum({
<CONSUMO_TOTAL = {'=CONSUMO_TOTAL>1'}>*
<CONSUMO_TOTAL = {'=CONSUMO_MEDIA_TRIMESTRAL>1'}>*
<CONSUMO_TOTAL = {'=CONSUMO_TOTAL>1.5*CONSUMO_MEDIA_TRIMESTRAL'}>
+
<CONSUMO_TOTAL = {'=CONSUMO_TOTAL>1'}>*
<CONSUMO_TOTAL = {'=CONSUMO_MEDIA_TRIMESTRAL>1'}>*
<CONSUMO_TOTAL = {'=CONSUMO_TOTAL<0.5*CONSUMO_MEDIA_TRIMESTRAL'}>
} FABS(CONSUMO_TOTAL-CONSUMO_MEDIA_TRIMESTRAL))
Com resultado esperado
Mas se eu coloco uma expressão de cor de fundo:
IF(CONSUMO_TOTAL<0.5*CONSUMO_MEDIA_TRIMESTRAL OR CONSUMO_TOTAL>1.5*CONSUMO_MEDIA_TRIMESTRAL, RED() )
Ele se perde
Jogue a mesma expressão que você usou no gráfico para a cor, por exemplo:
if
(
Sum({
<CONSUMO_TOTAL = {'=CONSUMO_TOTAL>1'}>*
<CONSUMO_TOTAL = {'=CONSUMO_MEDIA_TRIMESTRAL>1'}>*
<CONSUMO_TOTAL = {'=CONSUMO_TOTAL>1.5*CONSUMO_MEDIA_TRIMESTRAL'}>
+
<CONSUMO_TOTAL = {'=CONSUMO_TOTAL>1'}>*
<CONSUMO_TOTAL = {'=CONSUMO_MEDIA_TRIMESTRAL>1'}>*
<CONSUMO_TOTAL = {'=CONSUMO_TOTAL<0.5*CONSUMO_MEDIA_TRIMESTRAL'}>
} FABS(CONSUMO_TOTAL-CONSUMO_MEDIA_TRIMESTRAL))
> 0.5,red(),green())