Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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 | 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 |
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
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.
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>;
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
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 '|');
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
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
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>
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.
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.
Obrigado Mario,
Me ajudou bastante na minha necessidade.
João Carlos Ferreira