Alunos Pâmella Dias Postado Setembro 16 Alunos Compartilhar Postado Setembro 16 Pessoal, Boa Noite Preciso de uma ajuda, tenho dados de 3 anos, 2023,2024 e 2025 preciso que os graficos, deixem os meses em ordem cronologica, mas não estou conseguindo fazer isso. Por exemplo no cenario A eu posso ter inicio de obra que pegue de Janeiro/2023 até o final de Agosto/2024. as barras devem ficar ordenadas em ordem crescente (mês/ano) Link para o comentário Compartilhar em outros sites More sharing options...
0 Admin Solução Tiago Craici - Xperiun Postado Setembro 19 Admin Solução Compartilhar Postado Setembro 19 28 minutos atrás, Pâmella Dias disse: Tiago e amigos Bom dia A quem puder interessar, a solução para realizar a ordem cronologica é a seguinte : OrdemCronologica = VAR AnoBase = 2023 VAR MesBase = 1 VAR DiaBase = 1 VAR DataBase = DATE(AnoBase, MesBase, DiaBase) VAR DiffAno = YEAR(dCalendario[Data]) - AnoBase VAR DiffMes = MONTH(dCalendario[Data]) - MesBase RETURN IF( DiffAno < 0 || (DiffAno = 0 && DiffMes <= 0), 0, DiffAno * 12 + DiffMes + 1 ) Bom dia! Como que ficaria quando virar o ano em seu projeto com a variável VAR AnoBase = 2023? Sugestão alterar para: VAR AnoBase = YEAR (TODAY () ) Sucesso! 🚀 Link para o comentário Compartilhar em outros sites More sharing options...
1 Admin Tiago Craici - Xperiun Postado Setembro 16 Admin Compartilhar Postado Setembro 16 Bom dia @Pâmella Dias! Uma possibilidade para ordenar seria criar uma nova coluna com mês sequencial em sua dimensão dCalendario veja abaixo como que fica: Observe que quando virou o ano em Janeiro a sequencia foi de 12 para 13 e assim sucessivamente... Crie uma nova coluna utilizando o DAX abaixo: Mes sequencia = var anoMin = min(dCalendario[Ano]) var mes = dCalendario[MêsNum] var anoContexto = dCalendario[Ano] var difAno = anoContexto - anoMin var resultado = SWITCH(TRUE(), difAno = 0, mes, difAno * 12 + mes ) return resultado Depois é só selecionar sua coluna mes/ano e classificar pela nova coluna criada "Mes sequencia": Sucesso! 🚀 Link para o comentário Compartilhar em outros sites More sharing options...
1 Admin Tiago Craici - Xperiun Postado Setembro 18 Admin Compartilhar Postado Setembro 18 Passa a função DATE para avaliação de data <= a 31/12/2022: Mês//Ano = SWITCH ( TRUE (), dCalendario[Date] <= DATE ( 2022, 12, 31 ), "<2023", dCalendario[Mes/Ano] ) 1 Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Pâmella Dias Postado Setembro 18 Autor Alunos Compartilhar Postado Setembro 18 Tiago, Você tá me salvando demais essa semana ! kkkkk Quando crescer quero ajudar as pessoas igual a você Agora tenho outra duvida, consigo inserir na coluna de mês/ano a condição : " Se a data for menor ou igual que 31/12/2022, para aparecer <2023 , ao invez do nome do mês ? 1 Link para o comentário Compartilhar em outros sites More sharing options...
0 Admin Tiago Craici - Xperiun Postado Setembro 18 Admin Compartilhar Postado Setembro 18 11 horas atrás, Pâmella Dias disse: Tiago, Você tá me salvando demais essa semana ! kkkkk Quando crescer quero ajudar as pessoas igual a você Agora tenho outra duvida, consigo inserir na coluna de mês/ano a condição : " Se a data for menor ou igual que 31/12/2022, para aparecer <2023 , ao invez do nome do mês ? Bom dia @Pâmella Dias! Seria isso? Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Pâmella Dias Postado Setembro 18 Autor Alunos Compartilhar Postado Setembro 18 Isso mesmo tentei fazer a coluna assim, mas nao foi Mês//Ano = SWITCH(TRUE(), dCalendario[Date] < 31/12/2022, "<2023",dCalendario[Mes/Ano]) Link para o comentário Compartilhar em outros sites More sharing options...
0 Admin Tiago Craici - Xperiun Postado Setembro 18 Admin Compartilhar Postado Setembro 18 2 minutos atrás, Pâmella Dias disse: Isso mesmo tentei fazer a coluna assim, mas nao foi Mês//Ano = SWITCH(TRUE(), dCalendario[Date] < 31/12/2022, "<2023",dCalendario[Mes/Ano]) Fez dentro da sua tabela dCalendario como "nova coluna" ? Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Pâmella Dias Postado Setembro 18 Autor Alunos Compartilhar Postado Setembro 18 isso, mas ele deu erro, vou fazer como está no seu exemplo Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Pâmella Dias Postado Setembro 18 Autor Alunos Compartilhar Postado Setembro 18 Mês//Ano = SWITCH(TRUE(), dCalendario[Date] > DATE(2023,01,01),dCalendario[Mês/Ano], "<2023") Assim tbm deu certo não sabia desse fomati para inserir data 1 Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Pâmella Dias Postado Setembro 18 Autor Alunos Compartilhar Postado Setembro 18 Tiago, Mas no grafico, não deveria somar todos ? <2023 Link para o comentário Compartilhar em outros sites More sharing options...
0 Admin Tiago Craici - Xperiun Postado Setembro 18 Admin Compartilhar Postado Setembro 18 8 minutos atrás, Pâmella Dias disse: Tiago, Mas no grafico, não deveria somar todos ? <2023 Acho que entendi o objetivo rsrsr... Vamos precisar de um dCalendarioAUX. No Power Query crie "dCalendarioAUX" com o código M abaixo: ------------------------------------------------------------------------------------------------------------- let ListaDados = //ANOS PASSADOS: {Date.Year(DateTime.LocalNow())-4, Date.Year(DateTime.LocalNow())-3, Date.Year(DateTime.LocalNow())-2, Date.Year(DateTime.LocalNow())-1, //MESES DO ANO PRESENTE: "jan/"& Number.ToText(Date.Year(DateTime.LocalNow())-2000) , "fev/"& Number.ToText(Date.Year(DateTime.LocalNow())-2000) , "mar/" & Number.ToText(Date.Year(DateTime.LocalNow())-2000) , "abr/" & Number.ToText(Date.Year(DateTime.LocalNow())-2000) , "mai/" & Number.ToText(Date.Year(DateTime.LocalNow())-2000) , "jun/" & Number.ToText(Date.Year(DateTime.LocalNow())-2000) , "jul/" & Number.ToText(Date.Year(DateTime.LocalNow())-2000) , "ago/" & Number.ToText(Date.Year(DateTime.LocalNow())-2000) , "set/" & Number.ToText(Date.Year(DateTime.LocalNow())-2000) , "out/" & Number.ToText(Date.Year(DateTime.LocalNow())-2000) , "nov/" & Number.ToText(Date.Year(DateTime.LocalNow())-2000) , "dez/" & Number.ToText(Date.Year(DateTime.LocalNow())-2000)}, Tabela = Table.FromColumns({ListaDados}, {"Data"}), #"Tipo Alterado" = Table.TransformColumnTypes(Tabela,{{"Data", type text}}), #"Índice Adicionado" = Table.AddIndexColumn(#"Tipo Alterado", "Sequencia", 1, 1, Int64.Type) in #"Índice Adicionado" ------------------------------------------------------------------------------------------------------------- OBS: este código sempre vai criar uma tabela com mes/ano presente e mais 4 anos passados ficando assim o resultado: Depois carregue para o Power BI. Em seguida crie o relacionamento entre a sua dCalendarioAUX com a dCalendario: No seu visual o eixo X coloque a coluna "Data" da tabela dCalendarioAUX: Segue um pbix em anexo para entendimento Eixo_x_Personalizado.pbix Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Pâmella Dias Postado Setembro 18 Autor Alunos Compartilhar Postado Setembro 18 Entendi.... Mas ai tenho uma duvida, a minha dCalendario considera a união de todas as datas que tenho na minha tabela d , então tem datas desde 2013 por exemplo, e pode ser que em cada atualização, entre datas antes . Consigo colocar uma variavel para ele pegar a data minima e maxima da dCalendario ? Hoje ela é assim : dCalendario = VAR vTabelaDatas = UNION( VALUES(Score[FECHA APROBACION]),//Pega todas as datas da sua primeira coluna de data VALUES(Score[FECHA FIRMA]),//Pega todas as datas da sua segunda coluna de data VALUES(Score[FECHA GB]),//Pega todas as datas da sua terceira coluna de data VALUES(Score[Fecha Abertura/Reabertura])//Pega todas as datas da sua quarta coluna de data ) VAR vMenorData = //Pega a menor data da tabela virtual acima MINX( vTabelaDatas, [FECHA APROBACION] ) VAR vMaiorData = //Pega a menor data da tabela virtual acima MAXX( vTabelaDatas, [FECHA APROBACION] ) RETURN ADDCOLUMNS( CALENDAR(vMenorData,vMaiorData), "Ano",YEAR([Date]), "Mês",MONTH([Date]), "Nome do mês",FORMAT([Date],"MMMM"), "Mês/Ano",CONCATENATE(LEFT(FORMAT([Date],"mmmm"),3),"/"&YEAR([Date]))) Link para o comentário Compartilhar em outros sites More sharing options...
0 Admin Tiago Craici - Xperiun Postado Setembro 18 Admin Compartilhar Postado Setembro 18 48 minutos atrás, Pâmella Dias disse: Entendi.... Mas ai tenho uma duvida, a minha dCalendario considera a união de todas as datas que tenho na minha tabela d , então tem datas desde 2013 por exemplo, e pode ser que em cada atualização, entre datas antes . Consigo colocar uma variavel para ele pegar a data minima e maxima da dCalendario ? Hoje ela é assim : dCalendario = VAR vTabelaDatas = UNION( VALUES(Score[FECHA APROBACION]),//Pega todas as datas da sua primeira coluna de data VALUES(Score[FECHA FIRMA]),//Pega todas as datas da sua segunda coluna de data VALUES(Score[FECHA GB]),//Pega todas as datas da sua terceira coluna de data VALUES(Score[Fecha Abertura/Reabertura])//Pega todas as datas da sua quarta coluna de data ) VAR vMenorData = //Pega a menor data da tabela virtual acima MINX( vTabelaDatas, [FECHA APROBACION] ) VAR vMaiorData = //Pega a menor data da tabela virtual acima MAXX( vTabelaDatas, [FECHA APROBACION] ) RETURN ADDCOLUMNS( CALENDAR(vMenorData,vMaiorData), "Ano",YEAR([Date]), "Mês",MONTH([Date]), "Nome do mês",FORMAT([Date],"MMMM"), "Mês/Ano",CONCATENATE(LEFT(FORMAT([Date],"mmmm"),3),"/"&YEAR([Date]))) @Pâmella Dias tem a possibilidade de anexar seu pbix? Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Pâmella Dias Postado Setembro 18 Autor Alunos Compartilhar Postado Setembro 18 Não posso Tiago, mas acho que é possivel na propria dcalendario, naquela formula da sequencia que vc me passou, como eu altero para ser td que for <2023 como 0 e apartir do primeiro mes (janeiro/2023) ser 1 ...2...3 Mes sequencia = var anoMin = min(dCalendario[Ano]) var mes = dCalendario[Mês] var anoContexto = dCalendario[Ano] var difAno = anoContexto - anoMin var resultado = SWITCH(TRUE(), difAno = 0, mes, difAno * 12 + mes ) return resultado Link para o comentário Compartilhar em outros sites More sharing options...
0 Admin Tiago Craici - Xperiun Postado Setembro 18 Admin Compartilhar Postado Setembro 18 Veja se atende: Sequencia = IF ( dCalendario[Ano] = YEAR ( TODAY () ), MONTH ( dCalendario[Data] ), 0 ) Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Pâmella Dias Postado Setembro 18 Autor Alunos Compartilhar Postado Setembro 18 Tiago, eu consigo entender a formula, mas nao aplicar na minha dcalendario , to vendo que tenho mto o que estudar Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Pâmella Dias Postado Setembro 19 Autor Alunos Compartilhar Postado Setembro 19 Tiago e amigos Bom dia A quem puder interessar, a solução para realizar a ordem cronologica é a seguinte : OrdemCronologica = VAR AnoBase = 2023 VAR MesBase = 1 VAR DiaBase = 1 VAR DataBase = DATE(AnoBase, MesBase, DiaBase) VAR DiffAno = YEAR(dCalendario[Data]) - AnoBase VAR DiffMes = MONTH(dCalendario[Data]) - MesBase RETURN IF( DiffAno < 0 || (DiffAno = 0 && DiffMes <= 0), 0, DiffAno * 12 + DiffMes + 1 ) Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Pâmella Dias
Pessoal, Boa Noite
Preciso de uma ajuda, tenho dados de 3 anos, 2023,2024 e 2025
preciso que os graficos, deixem os meses em ordem cronologica, mas não estou conseguindo fazer isso.
Por exemplo no cenario A eu posso ter inicio de obra que pegue de Janeiro/2023 até o final de Agosto/2024.
as barras devem ficar ordenadas em ordem crescente (mês/ano)
Link para o comentário
Compartilhar em outros sites
17 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