Ir para conteúdo
  • 0

nova coluna baseada no trimestre


Caio Veiga
Ir para solução Solucionado por Alex Pereira ,

Pergunta

  • Alunos

pessoal,boa noite.To tentando rodar esse codigo pra criar uma coluna que tenha 4 valores possiveis:"Trimestre Atual","Trimestre passado","Mesmo Trimestre no ano passado" e "Outros"

o codigo:if [Ano] = List.Max(dCalendario[Ano]) and [Trimestre] = List.Max(dCalendario[Trimestre]) then "Trimestre Atual" else if [Ano] = List.Max(dCalendario[Ano]) and [Trimestre] = List.Max(dCalendario[Trimestre])-1 then "Trimestre Anterior" else if [Ano] = List.Max(dCalendario[Ano])-1 and [Trimestre] = List.Max(dCalendario[Trimestre]) then "T. Ano Passado" else "Outros" O que eu to fazendo de errado pra dar o seguinte erro:Expression.Error: Uma referência cíclica foi encontrada durante a avaliação

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos

Experimente fazer dessa forma comparando com a data de hoje.

 

let
    DataAtual = DateTime.LocalNow(),
    AnoAtual = Date.Year(DataAtual),
    MesAtual = Date.Month(DataAtual),
    TrimestreAtual = Number.RoundUp(MesAtual / 3),
    
    AdicionarColuna = Table.AddColumn(dCalendario, "Período", each 
        if [Ano] = AnoAtual and [Trimestre] = TrimestreAtual then "Trimestre Atual"
        else if [Ano] = AnoAtual and [Trimestre] = TrimestreAtual - 1 then "Trimestre Anterior"
        else if [Ano] = AnoAtual - 1 and [Trimestre] = TrimestreAtual then "T. Ano Passado"
        else "Outros"
    )
in
    AdicionarColuna



 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
  • Solução
7 horas atrás, Caio Veiga disse:

pessoal,boa noite.To tentando rodar esse codigo pra criar uma coluna que tenha 4 valores possiveis:"Trimestre Atual","Trimestre passado","Mesmo Trimestre no ano passado" e "Outros"

o codigo:if [Ano] = List.Max(dCalendario[Ano]) and [Trimestre] = List.Max(dCalendario[Trimestre]) then "Trimestre Atual" else if [Ano] = List.Max(dCalendario[Ano]) and [Trimestre] = List.Max(dCalendario[Trimestre])-1 then "Trimestre Anterior" else if [Ano] = List.Max(dCalendario[Ano])-1 and [Trimestre] = List.Max(dCalendario[Trimestre]) then "T. Ano Passado" else "Outros" O que eu to fazendo de errado pra dar o seguinte erro:Expression.Error: Uma referência cíclica foi encontrada durante a avaliação

Esse erro de referência cíclica acontece porque você está tentando calcular o valor máximo de dCalendario[Ano] e dCalendario[Trimestre] dentro de uma fórmula que está, ao mesmo tempo, sendo aplicada à própria tabela dCalendario. Você pode tentar colocando em uma variável separada:

 

let
    AnoMax = List.Max(dCalendario[Ano]),
    TrimestreMax = List.Max(dCalendario[Trimestre]),
    AdicionarColuna = Table.AddColumn(dCalendario, "Período", each 
        if [Ano] = AnoMax and [Trimestre] = TrimestreMax then "Trimestre Atual"
        else if [Ano] = AnoMax and [Trimestre] = TrimestreMax - 1 then "Trimestre Anterior"
        else if [Ano] = AnoMax - 1 and [Trimestre] = TrimestreMax then "T. Ano Passado"
        else "Outros"
    )
in
    AdicionarColuna



Obs.: A ooutra solução que dei é mais recomendada! 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

@Caio Veiga,  deixa eu dar uma ajudinha aqui:

Tem de trocar a "dCalendario" aqui, para o nome da última etapa power query do calendario que vc está usando.
Por exemplo, no meu caso "Tabela", então fica assim:
(é um calendário disponibilizado num dos workshops da Xperiun)

Depois que fizer funcionar, marca a resposta do @Alex Pereira como correta !

image.png.224ce072576d086ba3b372f95e091e72.png

image.png.9eec158f6c493d9c410660fa9ccb63fe.png

image.png.9822bd13bec2835caad3a00b30d270ac.png

 

 

 





 

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...