Qlik Community

Ask a Question

Brasil

Announcements
QlikWorld Online 2021, May 10-12: Our Free, Virtual, Global Event REGISTER TODAY
cancel
Showing results for 
Search instead for 
Did you mean: 
filipemknh
Contributor III
Contributor III

Utilização de condicional

Boa tarde pessoal. Tenho a seguinte dúvida:

Tenho uma tabela que é alimentada diariamente.  Nesta tabela temos o número de atividades:

Data -                Técnico        Atividade

01/01/2019      João                 2                                            

01/02/2019      José                  1

02/02/2019       Mário               3

05/03/2019      João                  3

O técnico é comissionado da seguinte forma: 

Assim que ele atinge 30 atividades, todas as atividades passam a valer R$ 3,00

Assim que ele atinge 40 atividades todas as atividades passam a valer R$ 4,00

Assim que ele atinge 50 atividades todas as atividades passa a valer R$ 5,00

Assim que ele atinge 60 Atividades, todas passam a valer R$ 7,00

Eu gostaria de criar um KPI que constasse quantas atividades ele já tem, o que é fácil. Mas em baixo, gostaria de apresentar  qual o valor que ele já tem em reais de acordo com as metas. ( Um uso um filtro de mês, pois as metas são mensais)

Tentei com if. mas não encontro a sintaxe correta.

//if (sum({<TECNICO={CRISTIAN}>} ATIVAÇÃO)>=30, (sum({<TECNICO={CRISTIAN}>} ATIVAÇÃO)*3
//if (sum({<TECNICO={CRISTIAN}>} ATIVAÇÃO)>=40, (sum({<TECNICO={CRISTIAN}>} ATIVAÇÃO)*4
//if (sum({<TECNICO={CRISTIAN}>} ATIVAÇÃO)>=50, (sum({<TECNICO={CRISTIAN}>} ATIVAÇÃO)*5
//if (sum({<TECNICO={CRISTIAN}>} ATIVAÇÃO) >=60, (sum({<TECNICO={CRISTIAN}>} ATIVAÇÃO) >60 *7,

3 Replies
RafaMartins
Creator II
Creator II

Boa tarde, 

A logica é esta mesmo só precisa coloca um virgula antes de inserir outro if e fechar todos no final

if (sum({$<TECNICO={CRISTIAN}>} ATIVAÇÃO)>=30, sum({$<TECNICO={CRISTIAN}>} ATIVAÇÃO)*3,
if (sum({$<TECNICO={CRISTIAN}>} ATIVAÇÃO)>=40, sum({$<TECNICO={CRISTIAN}>} ATIVAÇÃO)*4,
if (sum({$<TECNICO={CRISTIAN}>} ATIVAÇÃO)>=50, sum({$<TECNICO={CRISTIAN}>} ATIVAÇÃO)*5,
if (sum({$<TECNICO={CRISTIAN}>} ATIVAÇÃO) >=60, sum({$<TECNICO={CRISTIAN}>} ATIVAÇÃO)*7))))

Business Intelligence Analyst
SkyGroup - Maringá - Paraná
viniciusmariano
Contributor II
Contributor II

Bom dia,

Uma pequena correção, a ordem do if:

-No caso acima, todos os acima de 30 cairiam no R$ 3.

if (sum(Ativação)>=60, sum(Ativação)*7,
if (sum(Ativação)>=50, sum(Ativação)*5,
if (sum(Ativação)>=40, sum(Ativação)*4,
if (sum(Ativação)>=30, sum(Ativação)*3))))

Att.

thiago_justen
Specialist III
Specialist III

Olá amigo,

Receio que ainda não conseguiu resolver seu problema já que as soluções apresentadas até o momento não levaram em consideração o range determinado por você. Sendo assim, tente com:

VIA SCRIPT

Atividades:
Load * Inline [
Data,Técnico,Atividades
         01/01/2019,João,20
         01/02/2019,José,10
        02/02/2019,Mário,30
        05/03/2019,João,30
];

Left Join(Atividades)
Load
        *,
        Multiplicador * Atividades                                                             AS ValorAtividade;
Load
       *,
       If(Atividades>=30 And Atividades<40,3,
             If(Atividades>=40 And Atividades<50,4,
                   If(Atividades>=50 And Atividades<60,5,
                         If(Atividades>=60,7,0
                        )
                   )
             )
        )                                                                                                                  AS Multiplicador
Resident Atividades;

 

VIA TELA (UI):

Basta usar o if do "Multiplicador" e acrescentar * Sum(Atividades) pro cálculo de Valor.

 

RESULTADO:Capturar.PNG

 

Abs e Sucesso!!

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