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: 
joao_sp_campina
Creator II
Creator II

duplicar registros por mês com base no ultimo lançamento do mês

Boa tarde Pessoal,

Preciso de uma ajuda, se alguem puder ajudar, agradeço muito.

Tenho período de lançamento de metas: Abril/2017 à Novembro/2017. Os valores são lançados por mês. Porem, acontece que nem todos os meses, eu tenho lançamento.

Por exemplo:

Data Meta
Indicadorvalor
01/04/20171100
01/05/20171200
01/06/2017não lançado indicador 1duplicar ultimo valor 200
01/07/2017não lançado indicador 1duplicar ultimo valor 200
01/08/2017não lançado indicador 1duplicar ultimo valor 200
01/09/2017não lançado indicador 1duplicar ultimo valor 200
01/10/2017não lançado indicador 1duplicar ultimo valor 200
01/11/2017não lançado indicador 1duplicar ultimo valor 200

Voces podem ver acima que o ultino lançamento foi em Mai/2017. Preciso duplicar este lançamento para todos os outros meses ate nov/2017.

Como fazer isto de uma maneira mais fácil. Sempre quando não tiver meta até o final do período replicar o ultimo lançamento ate o final.

Se alguem puder ajudar, agradeço.

João Carlos Ferreira

1 Solution

Accepted Solutions
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, segue exemplo completo com a resolução para te facilitar;

Tab_Dados:

Load *

  Inline [

  Data_Meta|Indicador|valor

  01/04/2017|1|100

  01/05/2017|1|200

  ](delimiter is '|');

Concatenate(Tab_Dados)

Load *

  Inline [

  Data_Meta

  01/04/2017

  01/05/2017

  01/06/2017

  01/07/2017

  01/08/2017

  01/09/2017

  01/10/2017

  01/11/2017

  ];

Tab_Meta:

Load

  Data_Meta,

  If(IsNull(Indicador),Peek(KPI),Indicador) As 'KPI',

  If(IsNull(valor),Peek(META),valor) As 'META'

  Resident Tab_Dados;

Drop Table Tab_Dados;

Lembrando que os atributos gerados KPI e META podem ser alterados para os requisitos reais, e alterando, será necessário modificar os nomes internos das funções Peek().

Abraço.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti

View solution in original post

9 Replies
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, segue;

Dim_Meta:

Load

  Data_Meta,

    If(IsNum(Indicador),Indicador,Peek(KPI)) As 'KPI',

    If(IsNum(valor),valor,Peek(META)) As 'META'

From <SUA_TABELA>;

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
joao_sp_campina
Creator II
Creator II
Author

Boa tarde Mario,

Não seria isnull no lugar de Isnum?

De onde vc tirou o KPI e META?

Poderia definir melhor?

Obrigado

João Carlos

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo,

IsNum() testa se é número, pois na sua tabela aparece string quando não tem o resultado;

Se o seu caso for célula vazio quando não tem resultado, IsNum() também iria esperar por um resultado numérico para retornar -1(true), mas pode usar IsNull() para testar vazio se for este o caso.

KPI e META pode ser alterados a gosto, são Alias, observe que tem a função As;

Versão Inline

Tab1:

Load

  Data_Meta,

    If(IsNum(Indicador),Indicador,Peek(KPI)) As 'KPI',

    If(IsNum(valor),valor,Peek(META)) As 'META'

Inline [

Data_Meta|Indicador|valor

01/04/2017|1|100

01/05/2017|1|200

01/06/2017|não lançado indicador 1|duplicar ultimo valor 200

01/07/2017|não lançado indicador 1|duplicar ultimo valor 200

01/08/2017|não lançado indicador 1|duplicar ultimo valor 200

01/09/2017|não lançado indicador 1|duplicar ultimo valor 200

01/10/2017|não lançado indicador 1|duplicar ultimo valor 200

01/11/2017|não lançado indicador 1|duplicar ultimo valor 200

](delimiter is '|');

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Not applicable

João, caso a resposta do tópico acima tenha te ajudado, marque a resposta como correta para fechar o tópico.


Att.,

Luana Ribeiro

joao_sp_campina
Creator II
Creator II
Author

Mario,

No exemplo que vc fez, vc testou o campo Indicador a String e no campo Valor. Porém, no meu caso não funciona, pois não vem nenhum dado no campo, quando não tem Meta.

Por isso não atendeu. Teria que gerar os registros, inclusive as Datas para o Indicador.

João Carlos

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, tente:

Dim_Meta:   

Load   

  Data_Meta,   

    If(IsNull(Indicador),Peek(KPI),Indicador) As 'KPI',   

    If(IsNull(valor),Peek(META),valor) As 'META'   

From <SUA_TABELA>

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Se a data não existe no modelo de dados, terá que criar;

Pode ser em um Inline e depois concatenar com a tabela das metas;

Concatenate(<SUA_TABELA>)

Tab_Data;

Inline[

Data_Meta

01/04/2017

01/05/2017

01/06/2017

01/07/2017

01/08/2017

01/09/2017

01/10/2017

01/11/2017

];

O nome do campo Data_Meta tem que ser o mesmo da <SUA_TABELA>;

E depois poderá fazer um Resident com as duas tabelas juntas para executar as funções IF() acima.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, segue exemplo completo com a resolução para te facilitar;

Tab_Dados:

Load *

  Inline [

  Data_Meta|Indicador|valor

  01/04/2017|1|100

  01/05/2017|1|200

  ](delimiter is '|');

Concatenate(Tab_Dados)

Load *

  Inline [

  Data_Meta

  01/04/2017

  01/05/2017

  01/06/2017

  01/07/2017

  01/08/2017

  01/09/2017

  01/10/2017

  01/11/2017

  ];

Tab_Meta:

Load

  Data_Meta,

  If(IsNull(Indicador),Peek(KPI),Indicador) As 'KPI',

  If(IsNull(valor),Peek(META),valor) As 'META'

  Resident Tab_Dados;

Drop Table Tab_Dados;

Lembrando que os atributos gerados KPI e META podem ser alterados para os requisitos reais, e alterando, será necessário modificar os nomes internos das funções Peek().

Abraço.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
joao_sp_campina
Creator II
Creator II
Author

Obrigado Mario,

Me ajudou bastante na minha necessidade.

João Carlos Ferreira