Bom dia, possuo uma tabela dCalendario criada em linguagem M. Nessa tabela tenho uma coluna que me retorna o AnoAtual e outra com o MesAtual. Estou trabalhando em um projeto onde o cliente analisa o MesAno por "Safra". Sempre inicia-se em abril de um ano e vai até março do ano seguinte. Criei essa coluna safra na minha dCalendario, porém preciso da mesma forma que tenho AnoAtual e MesAtual, ter a SafraAtual. Incomparáveis, poderiam me ajudar?
Pergunta
Danilo Laercio Alves
Bom dia, possuo uma tabela dCalendario criada em linguagem M. Nessa tabela tenho uma coluna que me retorna o AnoAtual e outra com o MesAtual. Estou trabalhando em um projeto onde o cliente analisa o MesAno por "Safra". Sempre inicia-se em abril de um ano e vai até março do ano seguinte. Criei essa coluna safra na minha dCalendario, porém preciso da mesma forma que tenho AnoAtual e MesAtual, ter a SafraAtual. Incomparáveis, poderiam me ajudar?
let
MenorData = #date(2018,1,1),
MaiorData = #date(2024,12,31),
DataInicio = Date.StartOfYear(MenorData),
DataFim = Date.EndOfYear(MaiorData),
Dias = Duration.Days(DataFim- DataInicio) +1,
ListarDatas = List.Dates(DataInicio, Dias, #duration(1,0,0,0)),
Tabela = #table(
type table[
Data = date,
Ano = Int64.Type,
NomeMes = text,
MesAbre = text,
MesAno = text,
MesNum = number,
AnoMesINT = number,
InicioMes = date,
Trimestre = Int64.Type,
TrimestreAbreviado = text,
Bimestre = text,
Semestre = text,
Semana = Int64.Type,
DiaSemana = Int64.Type,
NomeDia = text,
Passado = logical,
AnoAtual = text,
MesAtual = text
],
List.Transform(
ListarDatas,
each {
_,
Date.Year(_),
Text.Proper( Date.MonthName(_)),
Text.Proper(Text.Start(Date.MonthName(_), 3)),
Text.Proper(Text.Start(Date.MonthName(_), 3)) & "-" & Text.End(Text.From(Date.Year(_)), 2),
Date.Month(_),
Date.Year(_) * 100 + Date.Month(_),
Date.StartOfMonth(_),
Date.QuarterOfYear(_),
Text.From(Date.QuarterOfYear(_)) & "º Trim ",
Text.From( Number.RoundUp( Date.Month(_)/2,0)) & "º Bim",
Text.From( Number.RoundUp( Date.Month(_)/6,0)) & "º Sem",
Date.WeekOfMonth(_),
Date.DayOfWeek(_),
Date.DayOfWeekName(_),
if _ <= MaiorData then true else false,
if Date.Year(MaiorData) = Date.Year(_) then "Ano Atual" else Text.From(Date.Year(_)),
if Date.Year(MaiorData) = Date.Year(_) and Date.Month(MaiorData) = Date.Month(_) then "Mês Atual" else Text.Proper( Date.MonthName(_))
}
)
),
#"Personalização Adicionada" = Table.AddColumn(Tabela, "Safra", each let
mes = Date.Month([Data]),
ano = Date.Year([Data]),
inicio_safra = #date(if mes >= 4 then ano else ano - 1, 4, 1),
fim_safra = #date(if mes >= 4 then ano + 1 else ano, 3, 31),
safra_texto = Text.From(Date.Year(inicio_safra)) & "/" & Text.From(Date.Year(fim_safra))
in
safra_texto),
#"Coluna Personalizada Adicionada" = Table.AddColumn(#"Personalização Adicionada", "Personalizar", each Text.Combine({"Safra ", Text.Middle([Safra], 2, 3), Text.Middle([Safra], 7)}), type text),
#"Colunas Removidas" = Table.RemoveColumns(#"Coluna Personalizada Adicionada",{"Safra"}),
#"Colunas Renomeadas" = Table.RenameColumns(#"Colunas Removidas",{{"Personalizar", "Safra"}})
in
#"Colunas Renomeadas"
dCalendario.pbix
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Faça login para comentar
Você vai ser capaz de deixar um comentário após fazer o login
Entrar Agora