top of page

Visual Power BI seguindo a ordem crescente de mês

  • Foto do escritor: Amanda Nascimento
    Amanda Nascimento
  • há 21 horas
  • 2 min de leitura

Sabe quando você cria uma dimensão de calendário e na hora de fazer os visuais eles ficam fora de ordem, respeitando a ordem decrescente da primeira letra inicial de cada mês?


Veja a imagem abaixo:



Abra a dimensão calendário no modo de exibição de tabela


  • Clique na coluna Nome_Mes (coluna que quero classificar)

  • Vá em Ferramentas de coluna

  • Clique em Classificar por coluna

  • Selecione Mes (coluna numérica)


Resultado:

os meses ficaram na ordem correta e não mais em ordem alfabética




Obs: Não se esqueça depois de ir em exibição do modelo e criar o relacionamento da tabela calendário com sua tabela fato.




Script da tabela calendário


Em página inicial no Power BI, clique em Transformar dados para acessar o Power Query


Clique em Nova Fonte, Consulta Nula, Editor Avançado




Apague tudo que esta no editor e cole o script abaixo:

    let

// =============================
// CONFIGURAÇÃO
// =============================
AnoInicial = 2025,
AnoFinal = 2027,

DataInicial = Date.StartOfYear(#date(AnoInicial, 1, 1)),
DataFinal   = Date.EndOfYear(#date(AnoFinal, 12, 31)),

QtdeDias = Duration.Days(DataFinal - DataInicial) + 1,

// =============================
// CRIA LISTA DE DATAS
// =============================
Datalist = List.Dates(DataInicial, QtdeDias, #duration(1,0,0,0)),

Tabela = Table.FromList(Datalist, Splitter.SplitByNothing(), null, null, ExtraValues.Error),

Tipo = Table.TransformColumnTypes(Tabela,{{"Column1", type date}}),

Renomear = Table.RenameColumns(Tipo,{"Column1", "Data"}),

// =============================
// COLUNAS PRINCIPAIS
// =============================
Ano = Table.AddColumn(Renomear, "Ano", each Date.Year([Data]), Int64.Type),
Mes = Table.AddColumn(Ano, "Mes", each Date.Month([Data]), Int64.Type),
NomeMes = Table.AddColumn(Mes, "Nome_Mes", each Date.MonthName([Data]), type text),

Dia = Table.AddColumn(NomeMes, "Dia", each Date.Day([Data]), Int64.Type),
DiaAno = Table.AddColumn(Dia, "Dia_Ano", each Date.DayOfYear([Data]), Int64.Type),

DiaSemana = Table.AddColumn(DiaAno, "Dia_Semana", each Date.DayOfWeek([Data]), Int64.Type),
NomeDiaSemana = Table.AddColumn(DiaSemana, "Nome_Dia_Semana", each Date.DayOfWeekName([Data]), type text),

Trimestre = Table.AddColumn(NomeDiaSemana, "Trimestre", each Date.QuarterOfYear([Data]), Int64.Type),

SemanaAno = Table.AddColumn(Trimestre, "Semana_Ano", each Date.WeekOfYear([Data]), Int64.Type),
SemanaMes = Table.AddColumn(SemanaAno, "Semana_Mes", each Date.WeekOfMonth([Data]), Int64.Type),

// =============================
// COLUNAS FORMATADAS
// =============================
MesAbrev = Table.AddColumn(SemanaMes, "Mes_Abrev", each Text.Start(Text.Proper([Nome_Mes]),3), type text),

AnoMes = Table.AddColumn(MesAbrev, "Ano_Mes", each Text.From([Ano]) & "-" & Text.PadStart(Text.From([Mes]),2,"0"), type text),

TrimestreExt = Table.AddColumn(AnoMes, "Trimestre_Desc", each 
    if [Trimestre]=1 then "1º Tri" 
    else if [Trimestre]=2 then "2º Tri" 
    else if [Trimestre]=3 then "3º Tri" 
    else "4º Tri", type text),

// =============================
//  COLUNA PRINCIPAL (ID_DATA)
// =============================
IdData = Table.AddColumn(TrimestreExt, "id_data", each 
    Number.FromText(Date.ToText([Data], "yyyyMMdd")), Int64.Type),

// =============================
// ORDENAÇÃO
// =============================
Ordenado = Table.Sort(IdData,{{"id_data", Order.Ascending}})

in
    Ordenado


Fechar e Aplicar



© 2017-2026  Criado e desenvolvido por Amanda Nascimento

  • Discord
  • GitHub
  • youtube
  • LinkedIn Amanda
bottom of page