Ir para conteúdo
  • 1

Filtro com valores distintos na Calculate


Adriel.Soares
Ir para solução Solucionado por Michele ,

Pergunta

  • Alunos

Boa noite, Pessoal.

Estou criando um relatório utilizando a base de dados do histórico das olímpiadas.

A base traz o total de medalhas por atleta, entretanto para considerar o total de medalhas correto é preciso considerar apenas 1 medalha para esportes coletivos em vez de uma medalha para cada membro, como podem ver na imagem abaixo.

image.png.810f22fbab49f5822203973739802e4e.png

 

Tentei fazer esse filtro com valores distintos utilizando a fórmula 

image.png.3dfa66431520d9bc4571ce720aea2702.png

Entretanto, está o retornando o valor de todas medalhas distribuídas por atleta.

Alguém pode me dizer a maneira correta de fazer esse cálculo?

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Olá @Adriel.Soares, segue solução.

Sobre a modelagem, está muito normalizada, as tabelas Sexo e Pais são características da Dimensão Atleta, assim como Sede é da Fato Medalhas, eu revisaria pois vai facilitar na hora de montar as medidas.

Ponto importante, sempre que precisar de uma categorização, a probabilidade de precisar criar uma coluna na Fato com essa categorização é bem grande, então o que eu fiz foi:

  • Criei uma coluna com o Sport, usando RELATED e puxando o dado da tabela Dimensão:
    Sport = RELATED(dAtleta[Sport])
     
  • Criei uma coluna "Coletivo", usando SWITCH para tratar "Sim" e "Não". Agora você vai precisar tratar cada categoria que é Coletiva no SWITCH, deixei dois exemplos para ficar mais fácil entender o que precisa fazer. Caso você tenha uma tabela com essa informação, seria interessante subir e mesclar com essa Fato.
    • Um ponto importante é que existem modalidades que possuem provas individuais e coletivas, infelizmente você só vai conseguir definir se quer contar coletivamente ou individualmente, o certo mesmo era ter vindo essa informação na base, para essa tabela Fato.

      Coletivo =
      SWITCH(
              TRUE(),
              fMedalhas[Sport] = "Football", "Sim",
              fMedalhas[Sport] = "Volleyball", "Sim",
              "Não"
      )

  • Por fim criei uma medida teste para contar como você precisava, se for "Não", faz um COUNT(fMedalhas[CodMedal]) e caso "Sim" faz um DISTINCTCOUNT(fMedalhas[Year]).
    Obs.: O ano foi a única informação que consegui perceber que teria distinção por olimpíada, pois se contar por CodMedal iria contar apenas 3, por exemplo.

    Total Medalhas (teste) =
    VAR vMedalhasIndividuais =
    CALCULATE(
        COUNT(fMedalhas[CodMedal]),
         fMedalhas[CodMedal] <> 0 &&
         fMedalhas[Coletivo] = ""
    )

    VAR vMedalhasColetivas =
    CALCULATE(
        DISTINCTCOUNT(fMedalhas[Year]),
        fMedalhas[CodMedal] <> 0 &&
        fMedalhas[Coletivo] = "Sim"
    )

    RETURN
        vMedalhasIndividuais + vMedalhasColetivas

image.thumb.png.be32251c7f880f135279eb1eeb8c0414.png

Obs adicional.: pelo que vi o Brasil ganhou 6 medalhas no futebol, mas nesta base aponta uma medalha em 2004, que pelo que vi o Brasil não ganhou, entao é um erro da base, não da contagem ok.

image.png.b53ac1058559bbafe120b375dffc15fc.png

Acredito que seja isso, se ajudar ou resolver sua necessidade e puder marcar a resposta como Solução, por favor. Obrigada!

Atenciosamente,
Michele

 

Olimpiadas.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 02/08/2021 em 21:20, Adriel.Soares disse:

Boa noite, Pessoal.

Estou criando um relatório utilizando a base de dados do histórico das olímpiadas.

A base traz o total de medalhas por atleta, entretanto para considerar o total de medalhas correto é preciso considerar apenas 1 medalha para esportes coletivos em vez de uma medalha para cada membro, como podem ver na imagem abaixo.

image.png.810f22fbab49f5822203973739802e4e.png

 

Tentei fazer esse filtro com valores distintos utilizando a fórmula 

image.png.3dfa66431520d9bc4571ce720aea2702.png

Entretanto, está o retornando o valor de todas medalhas distribuídas por atleta.

Alguém pode me dizer a maneira correta de fazer esse cálculo?

 

Olimpiadas.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
3 horas atrás, Michele disse:

Olá @Adriel.Soares, segue solução.

Sobre a modelagem, está muito normalizada, as tabelas Sexo e Pais são características da Dimensão Atleta, assim como Sede é da Fato Medalhas, eu revisaria pois vai facilitar na hora de montar as medidas.

Ponto importante, sempre que precisar de uma categorização, a probabilidade de precisar criar uma coluna na Fato com essa categorização é bem grande, então o que eu fiz foi:

  • Criei uma coluna com o Sport, usando RELATED e puxando o dado da tabela Dimensão:
    Sport = RELATED(dAtleta[Sport])
     
  • Criei uma coluna "Coletivo", usando SWITCH para tratar "Sim" e "Não". Agora você vai precisar tratar cada categoria que é Coletiva no SWITCH, deixei dois exemplos para ficar mais fácil entender o que precisa fazer. Caso você tenha uma tabela com essa informação, seria interessante subir e mesclar com essa Fato.
    • Um ponto importante é que existem modalidades que possuem provas individuais e coletivas, infelizmente você só vai conseguir definir se quer contar coletivamente ou individualmente, o certo mesmo era ter vindo essa informação na base, para essa tabela Fato.

      Coletivo =
      SWITCH(
              TRUE(),
              fMedalhas[Sport] = "Football", "Sim",
              fMedalhas[Sport] = "Volleyball", "Sim",
              "Não"
      )

  • Por fim criei uma medida teste para contar como você precisava, se for "Não", faz um COUNT(fMedalhas[CodMedal]) e caso "Sim" faz um DISTINCTCOUNT(fMedalhas[Year]).
    Obs.: O ano foi a única informação que consegui perceber que teria distinção por olimpíada, pois se contar por CodMedal iria contar apenas 3, por exemplo.

    Total Medalhas (teste) =
    VAR vMedalhasIndividuais =
    CALCULATE(
        COUNT(fMedalhas[CodMedal]),
         fMedalhas[CodMedal] <> 0 &&
         fMedalhas[Coletivo] = ""
    )

    VAR vMedalhasColetivas =
    CALCULATE(
        DISTINCTCOUNT(fMedalhas[Year]),
        fMedalhas[CodMedal] <> 0 &&
        fMedalhas[Coletivo] = "Sim"
    )

    RETURN
        vMedalhasIndividuais + vMedalhasColetivas

image.thumb.png.be32251c7f880f135279eb1eeb8c0414.png

Obs adicional.: pelo que vi o Brasil ganhou 6 medalhas no futebol, mas nesta base aponta uma medalha em 2004, que pelo que vi o Brasil não ganhou, entao é um erro da base, não da contagem ok.

image.png.b53ac1058559bbafe120b375dffc15fc.png

Acredito que seja isso, se ajudar ou resolver sua necessidade e puder marcar a resposta como Solução, por favor. Obrigada!

Atenciosamente,
Michele

 

Olimpiadas.pbix 5 MB · 0 downloads

Boa noite, Michele.

Muito obrigado por toda a ajuda. 

Quanto aos esportes que tem tanto coletivo quanto individual, vi que posso utilizar o evento para diferenciar. Vai dar trabalho mas é possível.

Mais uma vez, muito obrigado.

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

  • 0
  • Alunos
20 horas atrás, Adriel.Soares disse:

Boa noite, Michele.

Muito obrigado por toda a ajuda. 

Quanto aos esportes que tem tanto coletivo quanto individual, vi que posso utilizar o evento para diferenciar. Vai dar trabalho mas é possível.

Mais uma vez, muito obrigado.

Olá @Adriel.Soares que ótimo! Depois se quiseres compartilhar a solução, fiquei curiosa para ver como vai conseguir contornar essa parte, pode ser no privado se preferir 🙂

Ah, sobre a parte ali que falei que tinha uma medalha a mais, na verdade não me dei conta que poderiam ser medalhas da modalidade feminina e masculina, então no seu total de medalhas você vai precisar ter um total por mulheres e um por homens (incluir filtro de sexo na tua medida) e se quiser um total geral somar essas duas medidas ou duas variáveis, eu acho que não tem como fazer apenas com uma medida, pois acho que apenas o Ano mesmo consegue distinguir para a contagem de modalidade coletiva.

Daí provavelmente vai somar 2 para mulheres e 6 para homens, é que no ano de 2004 foi a seleção feminina que ganhou a prata 🙂

Link para o comentário
Compartilhar em outros sites

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

Olá @Adriel.Soares que ótimo! Depois se quiseres compartilhar a solução, fiquei curiosa para ver como vai conseguir contornar essa parte, pode ser no privado se preferir 🙂

Ah, sobre a parte ali que falei que tinha uma medalha a mais, na verdade não me dei conta que poderiam ser medalhas da modalidade feminina e masculina, então no seu total de medalhas você vai precisar ter um total por mulheres e um por homens (incluir filtro de sexo na tua medida) e se quiser um total geral somar essas duas medidas ou duas variáveis, eu acho que não tem como fazer apenas com uma medida, pois acho que apenas o Ano mesmo consegue distinguir para a contagem de modalidade coletiva.

Daí provavelmente vai somar 2 para mulheres e 6 para homens, é que no ano de 2004 foi a seleção feminina que ganhou a prata 🙂

Boa noite, Michele.

Compartilho sim, pode deixar.

Quanto ao sexo, dá pra distinguir pelo evento também, pois o evento informa quando é masculino e quando é feminino.

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