Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
diegocardoso90
Contributor II
Contributor II

Expressão Indicador

Pessoal,

Preciso muito da ajuda de vocês me ajudar a criar uma expressão da seguinte forma:

Possuo uma tabela onde informa os grupos de pneus por veículo, gostaria que informasse o veículo "Frota"

que tivesse uma variação de 2 mm.


Exemplo:

     

PosiçãoNº FogoEixoFrota - 240GrupoMenor mm
ETEE43640073247108,64
ETEI43639973247109,69

Possuo estas informações, porém necessito que a expressão me informe se o "Grupo" deste "Frota" contém uma variação de 2 mm (maior ou menor).

Em anexo segue base e qvw para melhor ajuda-los. !

Labels (1)
1 Solution

Accepted Solutions
Thiago_Justen_

Isso deve bastar:

Base_Temp:

LOAD

    Posição,

    "Nº Fogo",

    Eixo,

    "Frota - 240",

    Grupo,

    "Menor mm"

FROM [lib://Download/Base.xls](biff, embedded labels, table is Sheet1$);

Base:

LOAD

*,

    If(fAbs(Diferenca_MM)>=2,'NOK','OK') as Situacao;

LOAD

*,

    If("Frota - 240"=Previous("Frota - 240") and Grupo=Previous(Grupo),RangeSum("Menor mm",-Previous("Menor mm")),0) as Diferenca_MM

Resident Base_Temp Order By "Frota - 240",Grupo Asc;

Drop Table Base_Temp;

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago

View solution in original post

15 Replies
diegocardoso90
Contributor II
Contributor II
Author

Infelizmente até o momento não consegui.

diegocardoso90
Contributor II
Contributor II
Author

nicolett.yuri‌, rphpacheco‌, vocês conseguem me ajudar por favor?

Anonymous
Not applicable

Ainda não entendi o que você quer...

Quer uma coluna dizendo se o mm está menor que 2? é isso? ou um filtro?

elvis_schwarz
Creator
Creator

Boa tarde Diego

Não consigo abrir seu qvw mas pela planilha eu cheguei no resultado abaixo:

[XR]:

LOAD Posição,

     [Nº Fogo],

     Eixo,

     [Frota - 240],

     Grupo,

     [Menor mm],

     Peek ([Menor mm]) as Teste,

     F7,

     F8,

     F9

FROM

(biff, embedded labels, table is Sheet1$);

NoConcatenate y:

LOAD

Grupo,

Teste -[Menor mm] as diferença,

If(Teste -[Menor mm]>=2,'Menor','Maior') as RP

RESIDENT [XR];

OU

NoConcatenate y:

LOAD

Grupo,

Sum(Teste -[Menor mm]) as diferença,

If(sum(Teste -[Menor mm])>=2,'Menor','Maior') as RP

RESIDENT [XR]

Group by Grupo;

diegocardoso90
Contributor II
Contributor II
Author

Primeiramente obrigado pelo tempo de cada um de vocês.

Só esclarecendo um pouco.

Preciso que alguma expressão ou campo me informe se existe alguma variação dentro do Grupo* que a diferença seja igual ou maior do que 2.

     

Grupo* = Cada veículo possui grupos e dentro de cada grupo contém dois pneus (nº de fogo);
Pneu* = cada pneu possui uma Milimetragem;

Exemplo de ocorrência:

Dentro do frota (veículo) possui o grupo “6” que possui dois pneus, a variação entre eles [Menor MM] precisa ser igual ou maior do que 2 para que me informe (Desparelhamento).

A seguir segue uma ocorrência.

Nº Fogo

Eixo

Frota - 240

Grupo

Menor mm

Posição

Ok?

22909

3

3102

6

14

ETDE3

Nok

30088

3

3102

6

12

ETDI3

Nok

<-

a diferença entre os dois foi igual ou maior que dois

30061

3

3111

3

2,42

ETEI3

Ok

30063

3

3111

3

4,19

ETEE3

Ok

<-

a diferença entre os dois foi menor do que 2

diegocardoso90
Contributor II
Contributor II
Author

Obrigado pela Ajuda elvis.schwarz

Só esclarecendo um pouco.

Preciso que alguma expressão ou campo me informe se existe alguma variação dentro do Grupo* que a diferença seja igual à 2 (positivo ou negativo)        

Grupo* = Cada veículo possue grupos e dentro de cada grupo contém dois pneus (nº de fogo);
Pneu* = cada pneu possui uma Milimetragem;

Exemplo de ocorrência:

Dentro do frota (veículo) possui o grupo “6” que possui dois pneus, a variação entre eles [Menor MM] precisa ser igual ou maior do que 2 para que me informe (Desparelhamento).

A seguir segue uma ocorrência.

Nº Fogo

Eixo

Frota - 240

Grupo

Menor mm

Posição

Ok?

22909

3

3102

6

14

ETDE3

Nok

30088

3

3102

6

12

ETDI3

Nok

<-

a diferença entre os dois foi igual ou maior que dois

30061

3

3111

3

2,42

ETEI3

Ok

30063

3

3111

3

4,19

ETEE3

Ok

<-

a diferença entre os dois foi menor do que 2

Thiago_Justen_

Eis uma forma de fazer:

Base_Temp:

LOAD

    Posição,

    "Nº Fogo",

    Eixo,

    "Frota - 240",

    Grupo,

    "Menor mm"

FROM [lib://Download/Base.xls](biff, embedded labels, table is Sheet1$);

Base:

LOAD

*,

    If(fAbs(Diferenca_MM)>=2,'NOK','OK') as Situacao;

LOAD

*,

    If(Grupo=Previous(Grupo),RangeSum("Menor mm",-Previous("Menor mm")),"Menor mm") as Diferenca_MM

Resident Base_Temp Order By Grupo Asc;

Drop Table Base_Temp;

Resultado:

Capturar.PNG

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
diegocardoso90
Contributor II
Contributor II
Author

Thiago,

Obrigado.

Mas os valores deram divergentes, o veículo terá que ser considerado além do grupo.

Exp:


Veículo: 3103
Grupo: 3

Nº Fogo: 30086

Menor MM: 12

Nº Fogo: 30100
Menor MM: 10

Isso sim é uma inconsistência, pois os pneus do grupo 3 do veículo 3103 estão com uma diferença igual ou maior que dois.

Thiago_Justen_

Isso deve bastar:

Base_Temp:

LOAD

    Posição,

    "Nº Fogo",

    Eixo,

    "Frota - 240",

    Grupo,

    "Menor mm"

FROM [lib://Download/Base.xls](biff, embedded labels, table is Sheet1$);

Base:

LOAD

*,

    If(fAbs(Diferenca_MM)>=2,'NOK','OK') as Situacao;

LOAD

*,

    If("Frota - 240"=Previous("Frota - 240") and Grupo=Previous(Grupo),RangeSum("Menor mm",-Previous("Menor mm")),0) as Diferenca_MM

Resident Base_Temp Order By "Frota - 240",Grupo Asc;

Drop Table Base_Temp;

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago