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

  • Membros

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
  • Membros

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()

 )

  • Obrigado(a) 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros
  • 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
  • Membros

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
  • Membros

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
  • Membros
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
  • Membros
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
  • Membros
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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...