Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa Tarde,
Preciso imensamente da ajuda de vocês.
Estou trabalhando com alguns dados de contratos, e existem duas tabelas que são ligadas pelo número do contrato.
Em cada tabela existe um data do fim do contrato.
DATA_FIM_VIGENCIA e ADITIVO_DATA_FIM_VIGENCIA.
Através dessas datas, criei um STATUS para o contrato, como um contrato pode ter mais de um aditvo, tendo assim, mais de uma data, preciso pegar a última data.
É preciso pegar a DATA_FIM_VIGENCIA caso o campo ADITIVO_DATA_FIM_VIGENCIA. esteja vazio, caso contrário, pego a última data do ADITIVO_DATA_FIM_VIGENCIA..
Seis Meses seria a data daqui a seis meses e três meses a data daqui a três meses.
if(
COUNT([ADITIVO_DATA_FIM_VIGENCIA] > 0),
If(MAX([ADITIVO_DATA_FIM_VIGENCIA]) >= [SeisMeses], 'Acima de 180 dias',
If(
MAX([ADITIVO_DATA_FIM_VIGENCIA]) <= TresMeses and MAX([ADITIVO_DATA_FIM_VIGENCIA]) > Today() , 'Abaixo de 90 dias',
If(MAX([ADITIVO_DATA_FIM_VIGENCIA]) < [SeisMeses] and MAX([ADITIVO_DATA_FIM_VIGENCIA]) > TresMeses , 'De 91 a 180 dias',
If(MAX([ADITIVO_DATA_FIM_VIGENCIA])<= Today(),'Encerrados'
)))),
If(MAX([DATA_FIM_VIGENCIA]) >= [SeisMeses], 'Acima de 180 dias',
If(
MAX([DATA_FIM_VIGENCIA]) <= TresMeses and MAX([DATA_FIM_VIGENCIA])> Today() , 'Abaixo de 90 dias',
If(MAX([DATA_FIM_VIGENCIA]) < [SeisMeses] and MAX([DATA_FIM_VIGENCIA]) > TresMeses , 'De 91 a 180 dias',
If(MAX([DATA_FIM_VIGENCIA])<= Today(),'Encerrados'
))))).
Esse scrip funcionou certinho. O problema é que não consigo filtrar por ele.
Por exemplo, Precisava filtrar somente os contratos Acima de 180 dias, ou Encerrados, Etc.
Como posso realizar isso?
Precisa contar também cada um desses status.
Criei esse script abaixo como dimensão, mas não deu certo:
=pick(match(vStatus,'Acima de 180 dias','Abaixo de 90 dias','De 91 a 180 dias','Encerrados'),'Acima de 180 dias','Abaixo de 90 dias','De 91 a 180 dias','Encerrados').
Onde vStatus Seria esse primeiro scrip que descrevi.
Mas não deu certo.
Alguém, por gentileza, saberia me ajudar?
Obrigada!
Olá Victória,
Poderia disponibilizar um aplicativo com dados de exemplo (fictícios, embaralhados ou uma população pequena) para facilitar os testes para esse caso? É interessante também mostrar quais filtros gostaria de aplicar e uma tabela com as expressões de teste.
Obrigado.
Olá Vinicius,
Abaixo alguns dados fictícios para exemplo:
VENCIMENTO | Nº DO CONTRATO | DATA TÉRMINO DO CONTRATO | DATA_FIM_VIGENCIA | ADITIVO_DATA_FIM_VIGENCIA |
Acima de 180 dias | 1 | 01/04/2023 | 01/04/2023 00:00 | - |
Acima de 180 dias | 2 | 02/09/2022 | 02/09/2022 00:00 | - |
Acima de 180 dias | 3 | 09/10/2021 | 09/10/2021 00:00 | - |
Acima de 180 dias | 4 | 13/09/2021 | 13/09/2021 00:00 | - |
Acima de 180 dias | 5 | 12/11/2019 | 12/11/2018 00:00 | 12/11/2019 00:00 |
Acima de 180 dias | 6 | 30/09/2019 | 30/09/2019 00:00 | - |
Acima de 180 dias | 7 | 24/09/2019 | 24/09/2019 00:00 | - |
Acima de 180 dias | 8 | 16/08/2019 | 16/08/2019 00:00 | - |
Acima de 180 dias | 9 | 22/07/2019 | 22/07/2019 00:00 | 22/07/2019 00:00 |
Acima de 180 dias | 10 | 29/05/2019 | 29/05/2019 00:00 | - |
De 91 a 180 dias | 11 | 17/03/2019 | 17/03/2019 00:00 | - |
De 91 a 180 dias | 12 | 21/02/2019 | 21/02/2019 00:00 | - |
De 91 a 180 dias | 13 | 18/02/2019 | 18/03/2018 00:00 | 18/02/2019 00:00 |
Abaixo de 90 dias | 14 | 28/12/2018 | 29/12/2015 00:00 | 28/12/2018 00:00 |
Abaixo de 90 dias | 15 | 11/12/2018 | 11/12/2018 00:00 | 11/12/2018 00:00 |
Encerrados | 16 | 02/10/2018 | 02/10/2018 00:00 | - |
Encerrados | 17 | 24/09/2018 | 25/09/2015 00:00 | 24/09/2018 00:00 |
Encerrados | 18 | 28/07/2018 | 28/07/2018 00:00 | - |
Encerrados | 19 | 18/03/2018 | 18/03/2018 00:00 | 18/03/2018 00:00 |
Encerrados | 20 | 28/12/2017 | 29/12/2015 00:00 | 28/12/2017 00:00 |
Encerrados | 21 | 12/11/2017 | 12/11/2013 00:00 | 12/11/2017 00:00 |
O que eu queria era conseguir filtrar pela variável que eu criei VENCIMENTO.
Gostaria de ver apenas os contratos encerrados, ou os que estão com vencimento acima de 180 dias, etc.
Como criei o campo vencimento como uma medida, o qlik não me permite fazer esse tipo de filtro.
Olá Victória,
Neste caso, se existir somente um registro por contrato, você pode fazer essa expressão dentro da sua carga, no script de carregamento. Assim conseguirá fazer o filtro normalmente.
Pode substituir as variáveis por cálculos dentro do script.
Exemplo:
Load *,
if(not ISNULL([ADITIVO_DATA_FIM_VIGENCIA]) ,
If([ADITIVO_DATA_FIM_VIGENCIA] >= Today() + 180, 'Acima de 180 dias',
If([ADITIVO_DATA_FIM_VIGENCIA] <= Today() + 180 and [ADITIVO_DATA_FIM_VIGENCIA] > Today() +90 , 'De 91 a 180 dias',
If([ADITIVO_DATA_FIM_VIGENCIA] <= Today() + 90 and [ADITIVO_DATA_FIM_VIGENCIA] > Today() , 'Abaixo de 90 dias',
If([ADITIVO_DATA_FIM_VIGENCIA] <= Today(),'Encerrados')))),
If([DATA_FIM_VIGENCIA] >= Today() + 180, 'Acima de 180 dias',
If([DATA_FIM_VIGENCIA] <= Today() + 180 and [DATA_FIM_VIGENCIA] > Today() +90 , 'De 91 a 180 dias',
If([DATA_FIM_VIGENCIA] <= Today() + 90 and [DATA_FIM_VIGENCIA] > Today() , 'Abaixo de 90 dias',
If([ADITIVO_DATA_FIM_VIGENCIA] <= Today(),'Encerrados'))))) as Vencimento
Resident SuaTabela;
Sugestão: O comando ALT pode melhorar a sua expressão.
Qualquer dúvida estou à disposição.
Att.
Vinícius
Olá Victória,
Conseguiu resolver seu problema?
Se sim, favor marcar a resposta correta e indicar a pergunta como respondida.
Com isso estaremos ajudando a comunidade a gerenciar eficientemente o fórum.
Obrigado.