Ir para conteúdo
  • 0

Cartão Responder ao Gráfico


Rafael Borges
Ir para solução Solucionado por Emerson Alencar ,

Pergunta

  • Alunos

Olá a todos, boa tarde!

Estou precisando de apoio dos incomparáveis para uma medida específica. Confesso que já estou quebrando a cabeça para encontrar uma solução.

Bem, tenho um gráfico personalizado que exibe, no eixo X, os meses e o valor acumulado desses meses. Para realizar isso, criei uma tabela chamada "dCalendarioAux". Tenho duas tabelas de calendário: uma tabela de calendário original para filtrar a tabela "dCalendarioAux" e outra para criar o eixo do gráfico.

Dito isso, a medida funciona corretamente. No entanto, agora preciso que, ao selecionar os meses diretamente na tabela "dCalendarioAux", a medida calcule a média desses meses e a exiba no cartão.

Por exemplo, aqui selecionei apenas os meses de Janeiro e Fevereiro. O cartão deve mostrar a média desses 2 meses selecionados. Neste caso, o valor a ser exibido seria 74,3%.


image.png.802b2db6a2899882b4ad44315b324682.png

Essa medida me retorna o valor desejado, exatamente. No entanto, por outro lado, ela não resolve a minha segunda situação. Quando não seleciono nenhum mês, preciso que ela me retorne o valor acumulado do gráfico, que é de 63,2%.

DF Cartão Adaptada = 
VAR MesSelecionado = SELECTEDVALUE(dCalendarioAux[mes-ano])

VAR vMedia = AVERAGEX(ALL(dCalendario[mes-ano]), [DF])

VAR vIntersecao =
    CALCULATE (
        [DF],
        FILTER (
            ALL(dCalendario[mes-ano]),
            dCalendario[mes-ano] = MesSelecionado
        )
    )

VAR Resultado =
    IF (
        MesSelecionado = "Acumulado",
        vMedia,
        vIntersecao
    )

RETURN
    IF (
        HASONEVALUE(dCalendarioAux[mes-ano]) || MesSelecionado = "Acumulado",
        IF (
            Resultado = 1,
            0,
            Resultado
        ),
        [calculo DF]
    )

Então, apenas para recapitular: se eu selecionar 1 mês, o sistema irá retornar o valor desse mês específico. Se eu selecionar 1, 2, 3 ou mais meses, ele irá calcular a média dos meses selecionados. E, caso eu não selecione nenhum mês, o sistema irá mostrar o valor acumulado do gráfico.

Vou adicionar o link do PBIX para download devido a ser pouco mais de 48mb: https://we.tl/t-hAVqhoNY3Y

Agradeço pelo apoio e assistência de vocês!

Um abraço e que Deus os abençoe!

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

8 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

@Rafael Borges Consegue verificar se te atende esta alteração da medida?

 


 

DF Cartão Adaptada =
VAR MesSelecionado = SELECTEDVALUE(dCalendarioAux[mes-ano])
VAR MesesSelecionados = VALUES(dCalendarioAux[mes-ano])
VAR TotalMeses = COUNTROWS(ALL(dCalendario[mes-ano]))
 
VAR vMediaAcumulada = AVERAGEX(ALL(dCalendario[mes-ano]), [DF])
 
VAR vMediaSelecionados =
    IF (
        COUNTROWS(MesesSelecionados) > 1,
        AVERAGEX(MesesSelecionados, [DF]),
        IF (
            COUNTROWS(MesesSelecionados) = 1,
            SUMX(MesesSelecionados, [DF]),
            vMediaAcumulada
        )
    )
 
RETURN
    IF (
        HASONEVALUE(dCalendarioAux[mes-ano]),
        IF (
            MesSelecionado = "Acumulado",
            vMediaAcumulada,
            vMediaSelecionados
        ),
        vMediaAcumulada
    )
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Boa tarde @Rafael Borges A medida que você forneceu está quase correta, mas parece haver um pequeno erro na lógica que faz com que o resultado seja 0 quando "Resultado" é igual a 1. Aqui está uma versão revisada da sua medida

 

DF Cartão Adaptada = 
VAR MesSelecionado = SELECTEDVALUE(dCalendarioAux[mes-ano])

VAR vMedia = AVERAGEX(ALL(dCalendario[mes-ano]), [DF])

VAR vIntersecao =
    CALCULATE (
        [DF],
        FILTER (
            ALL(dCalendario[mes-ano]),
            dCalendario[mes-ano] = MesSelecionado
        )
    )

VAR Resultado =
    IF (
        MesSelecionado = "Acumulado",
        vMedia,
        vIntersecao
    )

RETURN
    IF (
        HASONEVALUE(dCalendarioAux[mes-ano]) || MesSelecionado = "Acumulado",
        IF (
            Resultado = 1,  -- Aqui estava o erro, você pode alterar para Resultado = 0
            0,
            Resultado
        ),
        [DF]
    )


 

A única alteração que fiz foi no trecho IF (Resultado = 1, 0, Resultado), onde mudei Resultado = 1 para Resultado = 0. Isso deve resolver o problema de retornar 0 quando "Resultado" é igual a 1.

Com essa alteração, a medida deve funcionar, ou seja retornar o valor específico do mês selecionado, a média dos meses selecionados ou o valor acumulado do gráfico, dependendo da seleção na tabela "dCalendarioAux".

Veja se te Atende, coloque esta medida ao cartão no seu relatório e testar se ela se comporta como desejado,  porque não consegui baixar o seu PBIX

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

@Emerson Alencar, boa tarde!  Tudo bem?

Poxa o resultado não foi como esperado, ele está retornando valor diferente ainda do total, quando seleciono outro equipamento e faço o filtro.
Consegui adicionar o PBIX direto.
Mesmo alterando a lógica conforme você orientou. 

Consegui adicionar o PBIX de exemplo

 

Desafio DAX.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Ola @Rafael Borges, acredito que agora está correto,  consegue testar?

 

era aqui

RETURN
    IF (
        HASONEVALUE(dCalendarioAux[mes-ano]) || MesSelecionado = "Acumulado",
        IF (
            Resultado = 0, 
           1,
            Resultado

 

 

Fiz varios testes

 

 

image.png.1fa32056ff0cffd7a87943a2acb029ad.png

 

image.png.0c9e43c54ff537b7c74be3ce8cb484b2.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

@Emerson Alencar, ainda sem sucesso!  Mas é quase isso! 

Repara que aqui, eu selecionei os 2 meses. O resultado esperado é o correto. Mas repara que na próxima imagem. Quando eu não selecionar nenhum mês, ele retorna o valor diferente.


image.png.d77b3e9e7693abd235a04ce3d5104e86.png

Aqui

 

image.png.7ad9db75b9787c80afb821fd78a422c2.png

Repara que ele ao mudar de filtro não traz exatamente o mesmo, valor! 

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

  • 0
  • Alunos

olá @Rafael Borges Pelo que entendi, você deseja que a medida "DF Cartão Adaptada" retorne um valor acumulado se mais de um mês for selecionado e, caso contrário, retorne o valor médio se "Acumulado" for selecionado como mês

 

VOu testar mais e ver o que consigo.

 

Selecionando nenhum:

image.png.52988fecf6c66b554d5bce9f8009a7bb.png

 

 

 

Selecionando 1

image.png.d1a681ef97b88cfbfe0f4de97d5af6a8.png

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