Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
BINanovetores
Frequent Visitor

Associação entre tabelas

Estou com um problema para associar duas tabelas.

 

Uma tabela possui todos os times do campeonato, chamada dTimes. 

 

Possuo outra tabela com os próximos jogos destes times, chamada ProxJogo. Nesta, tenho a data do jogo, o time mandante e o time visitante.

 

Eu gostaria de associar estas tabelas de forma que, conforme eu filtrasse o relatório pelo time, que mostrasse na tabela ProxJogo, os jogos do time filtrado em que ele é o mandante OU o visitante.

 

Como posso fazer isso?

2 ACCEPTED SOLUTIONS
Greg_Deckler
Super User
Super User

Então, você não pode fazer isso normalmente. Você precisaria do que eu chamo de seletor complexo. O padrão básico é que você começa com tabelas não relacionadas. Não é absolutamente necessário, mas tende a tornar as coisas mais fáceis. Em seguida, você cria uma "medida de seleção" no DAX que essencialmente forma a relação entre as tabelas. Por exemplo, no seu caso, você poderia fazer algo ao longo das linhas de:

 

Measure =
  VAR __Team = MAX('Teams'[Team])
  VAR __HomeTeams = SELECTCOLUMNS('Table',"HomeTeam",[Home Team])
  VAR __VisitorTeams = SELECTCOLUMNS('Table',"VisitorTeam",[Visitor Team])
RETURN
  IF(__Team IN __HomeTeams || __Teams IN __VisitorTemas,1,0)

 

Você pode filtrar em 1


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

View solution in original post

I just posted this @BINanovetores https://community.powerbi.com/t5/Quick-Measures-Gallery/The-Complex-Selector/td-p/1116633

 


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

View solution in original post

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

So you can't do that normally. You would need what I call a complex selector. The basic pattern is that you start with unrelated tables. It's not absolutely necessary, but it tends to make things easier. Next, create a "selection measure" in DAX that essentially forms the relationship between the tables. For example, in your case, you could do something along the lines of:

Measure =
  VAR __Team = MAX('Teams'[Team])
  VAR __HomeTeams = SELECTCOLUMNS('Table',"HomeTeam",[Home Team])
  VAR __VisitorTeams = SELECTCOLUMNS('Table',"VisitorTeam",[Visitor Team])
RETURN
  IF(__Team IN __HomeTeams || __Teams IN __VisitorTemas,1,0)

You can filter on 1

Greg_Deckler
Super User
Super User

Então, você não pode fazer isso normalmente. Você precisaria do que eu chamo de seletor complexo. O padrão básico é que você começa com tabelas não relacionadas. Não é absolutamente necessário, mas tende a tornar as coisas mais fáceis. Em seguida, você cria uma "medida de seleção" no DAX que essencialmente forma a relação entre as tabelas. Por exemplo, no seu caso, você poderia fazer algo ao longo das linhas de:

 

Measure =
  VAR __Team = MAX('Teams'[Team])
  VAR __HomeTeams = SELECTCOLUMNS('Table',"HomeTeam",[Home Team])
  VAR __VisitorTeams = SELECTCOLUMNS('Table',"VisitorTeam",[Visitor Team])
RETURN
  IF(__Team IN __HomeTeams || __Teams IN __VisitorTemas,1,0)

 

Você pode filtrar em 1


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

Obrigado @Greg_Deckler,

 

Nesse quesito de filtrar a tabela ajudou, mas caso eu queira usar essa associação em uma medida, como posso fazer?

 

Exemplo: caso eu queria calcular os jogos onde o time x ganhou, seja como o time da casa ou como visitante.

 

Tenho uma tabela dos jogos e seus resultados com as colunas: time casa, gols time casa, gols time visitante e time visitante.

 

Caso prefira que eu abra uma novo tópico, eu posso fazer.

É difícil visualizar, Veja este post sobre como obter sua pergunta respondida rapidamente: https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490

As partes mais importantes são:
1. Atribua dados como texto, use a ferramenta de tabela na barra de edição
2. Produção esperada a partir de dados amostrais
3. Explicação em palavras de como obter a partir de 1. a 2.


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

Obrigado @Greg_Deckler, ótimas dicas de boas práticas.

 

Tenho duas tabelas:

  • Jogos: nesta tabela tenho todas as informarmações de cada partida
  • Times: nesta tabela, tenho todas as informações dos times desta partida

Como você me ensinou na resposta anterior, não preciso do relacionamento entre elas, já que utilizo o seletor complexo.

 

O que eu gostaria de fazer é: utilizar esse seletor complexo em outras medidas e calcular, por exemplo, quantas partidas cada time jogou, sendo o TimeCasa ou o TimeFora.

 

Exemplo amostral da tabela Jogos:

Exemplo jogos.PNG

 

Nesta situação, o resultado que espero ter é:

  • Time A: 2
  • Time B: 4
  • Time C: 1
  • Time 😧 1

Tentei utilizar o seletor complexo em uma CALCULATE, da seguinte forma:

 

Qtd Jogos =
VAR __Team = MAX(dTimes[Time])
VAR __HomeTeams = SELECTCOLUMNS(Jogos,"HomeTeam",Jogos[Time Casa])
VAR __VisitorTeams = SELECTCOLUMNS(Jogos,"VisitorTeam",Jogos[Time Fora])
RETURN
CALCULATE(
DISTINCTCOUNT(Jogos[idJogo]),
__Team IN __HomeTeams || __Team IN __VisitorTeams)

 

Esta medida retornou o seguinte erro: "A expressão True/False não especifica uma coluna.".

 

Obrigado pela atenção,

 

Rafael Maines.

I just posted this @BINanovetores https://community.powerbi.com/t5/Quick-Measures-Gallery/The-Complex-Selector/td-p/1116633

 


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.