Ir para conteúdo
  • 0

Destacar os 3 maiores valores em gráfico


Cristiane galdino da silva
Ir para solução Solucionado por Vasata ,

Pergunta

  • Alunos

Gente, fiz uma dax para destacar as cores de dos 3 maiores valores em um gráfico, só que ele só funciona quando o gráfico está com eixo de dias. Ver imagem abaixo:

image.png.12849acd0d14a8197fb01226af832509.png

Quando coloco o eixo de meses ele fica tudo da cor mais escura e o ranking fica tudo como 1. 

image.png.edbb41994e6058d791ce2dd9d046ea68.png

 

Quero dar a opção para o usuário fazer o drill down, por isso preciso que a dax funcione tanto para mês quanto para dia.

Fiz essa dax: maiorTelefonia = RANKX(ALLSELECTED(dCalendario),[Total ligacoes])

Coloquei ela no campo das cores dos dados .

image.png.846c981a7c8e16419f2b0ddb5853c77b.png

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 1
  • Alunos

Boa tarde, seu problema é a medida "Total ligacoes = countrows(fBaseTelefonia)", ela só vai funcionar para o rankx do dia, para o rankx de ano e mês, vc precisa criar duas novas medidas, uma para o calculo do ano e outra para mês. Com essas medidas você cria + 2 rankx, um para mês e outra para ano. Posteriormente voce cria outra medida para que a cada nivel da hierarquia de data ele use o rankx correspondente.

***********************************************************

Medida do calculo de Mês: 

QtdeVendasMes = 
var MesNumero = MAX(dim_Calendario[Date].[MonthNo])
var AnoNumero = MAX(dim_Calendario[Date].[Ano])
var QtdeVendasMes = 
CALCULATE(
    COUNTROWS(Fato2), 
    FILTER(
        ALL(dim_Calendario), 
        MONTH(dim_Calendario[Date]) = MesNumero &&
        YEAR(dim_Calendario[Date]) = AnoNumero
    )
)
return
QtdeVendasMes

*************************************************************

Medida do Rankx Mês: 

Rank_Mes = 
RANKX(
    ALLSELECTED(dim_Calendario),
    [QtdeVendasMes],,,
    Dense
)

***************************************************************

Medida de Rankx para Hirarquia de Datas:

Rank_Hierarquia = 
SWITCH(TRUE(),
            ISINSCOPE(dim_Calendario[Date].[Dia]),[Rank_Dia],
            ISINSCOPE(dim_Calendario[Date].[Mês]),[Rank_Mes],
            ISINSCOPE(dim_Calendario[Date].[Ano]),[Rank_Ano],
            BLANK()

 )

  • Thanks 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
  • Solução

O seu problema está neste relacionamento abaixo, não é indicado usar relacionamento bidirecional, isso gera esse seu problema de não conseguir usar o .[MonthNo]. 

image.png.13cf9e319b595a96c1827925c861a008.png

O ideal é alterar para o formato abaixo:

image.thumb.png.e1f5ddab1ced2673e170172d034beebe.png

Com essa alteração você consegue alterar seu modelo para o que eu instrui acima, o qual colocarei abaixo novamente.

****************************************************************************************************************************************************

A medida "Total ligacoes = countrows(fBaseTelefonia)", ela só vai funcionar para o rankx do dia, para o rankx de ano e mês, vc precisa criar duas novas medidas, uma para o calculo do ano e outra para mês. Com essas medidas você cria + 2 rankx, um para mês e outra para ano. Posteriormente voce cria outra medida para que a cada nivel da hierarquia de data ele use o rankx correspondente.

***********************************************************

QtdeVendasMes = 
var MesNumero = MAX(dCalendario[Data].[MonthNo])
var AnoNumero = MAX(dCalendario[Data].[Ano])
var QtdeVendasMes = 
CALCULATE(
    [totalCRM] + [totalLigacoes], 
    FILTER(
        ALLSELECTED(dCalendario), 
        MONTH(dCalendario[Data]) = MesNumero &&
        YEAR(dCalendario[Data]) = AnoNumero
    )
)
return
QtdeVendasMes

********************************************************

Rank_Mes = 
RANKX(
    ALLSELECTED(dCalendario),
    [QtdeVendasMes],,,Dense
)

********************************************************

Rank_Hierarquia = 
IF(
    [QtdeVendasDia]<>BLANK(),
        SWITCH(TRUE(),
            ISINSCOPE(dCalendario[Data].[Dia]),[Rank_Dia],
            ISINSCOPE(dCalendario[Data].[Mês]),[Rank_Mes],
            ISINSCOPE(dCalendario[Data].[Ano]),[Rank_Ano],
            BLANK()
        ),
    BLANK()
)

 

 

Também vou lhe enviar o seu arquivo ajustado para você analisar.

Caso essa solução lhe atenda, por gentileza marcar essa questão como solucionada.teste5.pbix

Editado por Vasata
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Oi, já agradeço a sua ajuda.

Preciso entender essa linha: " MAX(dim_Calendario[Date].[MonthNo])"

Não entendi o ".[MonthNo]"

Pode me dizer o que seria?

Em 03/05/2021 em 17:06, Vasata disse:

Boa tarde, seu problema é a medida "Total ligacoes = countrows(fBaseTelefonia)", ela só vai funcionar para o rankx do dia, para o rankx de ano e mês, vc precisa criar duas novas medidas, uma para o calculo do ano e outra para mês. Com essas medidas você cria + 2 rankx, um para mês e outra para ano. Posteriormente voce cria outra medida para que a cada nivel da hierarquia de data ele use o rankx correspondente.

***********************************************************

Medida do calculo de Mês: 

QtdeVendasMes = 
var MesNumero = MAX(dim_Calendario[Date].[MonthNo])
var AnoNumero = MAX(dim_Calendario[Date].[Ano])
var QtdeVendasMes = 
CALCULATE(
    COUNTROWS(Fato2), 
    FILTER(
        ALL(dim_Calendario), 
        MONTH(dim_Calendario[Date]) = MesNumero &&
        YEAR(dim_Calendario[Date]) = AnoNumero
    )
)
return
QtdeVendasMes

*************************************************************

Medida do Rankx Mês: 

Rank_Mes = 
RANKX(
    ALLSELECTED(dim_Calendario),
    [QtdeVendasMes],,,
    Dense
)

***************************************************************

Medida de Rankx para Hirarquia de Datas:

Rank_Hierarquia = 
SWITCH(TRUE(),
            ISINSCOPE(dim_Calendario[Date].[Dia]),[Rank_Dia],
            ISINSCOPE(dim_Calendario[Date].[Mês]),[Rank_Mes],
            ISINSCOPE(dim_Calendario[Date].[Ano]),[Rank_Ano],
            BLANK()

 )

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Oi, MAX(dim_Calendario[Date].[MonthNo]), é uma forma de pegar o maior mês, quando vc quer trabalhar com dados de data, mas somente no nivel de mês, vc acrescenta .[MonthNo] que significa mesnumero, que o power bi entende que vc está no nivel de mes, da mesma forma se vc quer o nivel de ano é com .[Ano]

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
2 horas atrás, Vasata disse:

Oi, MAX(dim_Calendario[Date].[MonthNo]), é uma forma de pegar o maior mês, quando vc quer trabalhar com dados de data, mas somente no nivel de mês, vc acrescenta .[MonthNo] que significa mesnumero, que o power bi entende que vc está no nivel de mes, da mesma forma se vc quer o nivel de ano é com .[Ano]

Oi, já agradeço a sua ajuda.

Preciso entender essa linha: " MAX(dim_Calendario[Date].[MonthNo])"

Não entendi o ".[MonthNo]"

Pode me dizer o que seria?

Em 03/05/2021 em 17:06, Vasata disse:

Boa tarde, seu problema é a medida "Total ligacoes = countrows(fBaseTelefonia)", ela só vai funcionar para o rankx do dia, para o rankx de ano e mês, vc precisa criar duas novas medidas, uma para o calculo do ano e outra para mês. Com essas medidas você cria + 2 rankx, um para mês e outra para ano. Posteriormente voce cria outra medida para que a cada nivel da hierarquia de data ele use o rankx correspondente.

***********************************************************

Medida do calculo de Mês: 

QtdeVendasMes = 
var MesNumero = MAX(dim_Calendario[Date].[MonthNo])
var AnoNumero = MAX(dim_Calendario[Date].[Ano])
var QtdeVendasMes = 
CALCULATE(
    COUNTROWS(Fato2), 
    FILTER(
        ALL(dim_Calendario), 
        MONTH(dim_Calendario[Date]) = MesNumero &&
        YEAR(dim_Calendario[Date]) = AnoNumero
    )
)
return
QtdeVendasMes

*************************************************************

Medida do Rankx Mês: 

Rank_Mes = 
RANKX(
    ALLSELECTED(dim_Calendario),
    [QtdeVendasMes],,,
    Dense
)

***************************************************************

Medida de Rankx para Hirarquia de Datas:

Rank_Hierarquia = 
SWITCH(TRUE(),
            ISINSCOPE(dim_Calendario[Date].[Dia]),[Rank_Dia],
            ISINSCOPE(dim_Calendario[Date].[Mês]),[Rank_Mes],
            ISINSCOPE(dim_Calendario[Date].[Ano]),[Rank_Ano],
            BLANK()

 )

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 05/05/2021 em 16:58, Vasata disse:

Oi, MAX(dim_Calendario[Date].[MonthNo]), é uma forma de pegar o maior mês, quando vc quer trabalhar com dados de data, mas somente no nivel de mês, vc acrescenta .[MonthNo] que significa mesnumero, que o power bi entende que vc está no nivel de mes, da mesma forma se vc quer o nivel de ano é com .[Ano]

Vasata, não consegui fazer. Quando eu coloco [MonthNo] o power query não reconhece. Fiz um modelinho para vc dar uma olhada se puder.

teste5.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 09/05/2021 em 22:11, Vasata disse:

O seu problema está neste relacionamento abaixo, não é indicado usar relacionamento bidirecional, isso gera esse seu problema de não conseguir usar o .[MonthNo]. 

image.png.13cf9e319b595a96c1827925c861a008.png

O ideal é alterar para o formato abaixo:

image.thumb.png.e1f5ddab1ced2673e170172d034beebe.png

Com essa alteração você consegue alterar seu modelo para o que eu instrui acima, o qual colocarei abaixo novamente.

****************************************************************************************************************************************************

A medida "Total ligacoes = countrows(fBaseTelefonia)", ela só vai funcionar para o rankx do dia, para o rankx de ano e mês, vc precisa criar duas novas medidas, uma para o calculo do ano e outra para mês. Com essas medidas você cria + 2 rankx, um para mês e outra para ano. Posteriormente voce cria outra medida para que a cada nivel da hierarquia de data ele use o rankx correspondente.

***********************************************************

QtdeVendasMes = 
var MesNumero = MAX(dCalendario[Data].[MonthNo])
var AnoNumero = MAX(dCalendario[Data].[Ano])
var QtdeVendasMes = 
CALCULATE(
    [totalCRM] + [totalLigacoes], 
    FILTER(
        ALLSELECTED(dCalendario), 
        MONTH(dCalendario[Data]) = MesNumero &&
        YEAR(dCalendario[Data]) = AnoNumero
    )
)
return
QtdeVendasMes

********************************************************

Rank_Mes = 
RANKX(
    ALLSELECTED(dCalendario),
    [QtdeVendasMes],,,Dense
)

********************************************************

Rank_Hierarquia = 
IF(
    [QtdeVendasDia]<>BLANK(),
        SWITCH(TRUE(),
            ISINSCOPE(dCalendario[Data].[Dia]),[Rank_Dia],
            ISINSCOPE(dCalendario[Data].[Mês]),[Rank_Mes],
            ISINSCOPE(dCalendario[Data].[Ano]),[Rank_Ano],
            BLANK()
        ),
    BLANK()
)

 

 

Também vou lhe enviar o seu arquivo ajustado para você analisar.

Caso essa solução lhe atenda, por gentileza marcar essa questão como solucionada.teste5.pbix

image.png.ad2581c14d28604b4390dd8c3f2285fd.png

 

Vasata, no arquivo original já está assim 1 - * .

Será que tem algo a ver com a versão? Ainda estou com a versão de fevereiro de 2021, não tenho como atualizar para a versão nova no momento segundo a TI da minha empresa.

image.png.46896d11e605e6a8d0faff1f80f44d19.png

Olha ai o erro que dá.

 

image.png.14b9fe7f0235780254f01348116618b1.png

Meses e ano estão como número inteiro.

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...