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

The ultimate Microsoft Fabric, Power BI, Azure AI & SQL learning event! Join us in Las Vegas from March 26-28, 2024. Use code MSCUST for a $100 discount. Register Now

Reply
mlee
Frequent Visitor

Displaying winning pct% against each opponent

Hello. I'm new to Power BI and am not sure how to tackle the following problem.

 

I have a csv file which contains the following columns (name1, name2, winner, fieldcondition).

 

Example rows are: John, Susan, John, Dry and Phil, Greg, Greg, Wet. 

 

What I'd like to show are a couple of things:

 

1. I'd like to show the winning pct% for each player against each opponent. For example, I'd like to display John's winnng pct% against Susan and then his winning pct% against Phil, and so on. 

2. After I get the above working I'd like to add in another factor where I'd like to see for example Phil's winning pct% against each opponent but in this case flip between dry and wet field conditions. For example, Phil's winning pct% against Susan is 75% when dry but drops to 50% when wet.

 

Is this sort of thing doable in Power BI? 

 

Thanks,

 

Mike

1 ACCEPTED SOLUTION
v-sihou-msft
Employee
Employee

@mlee

 

In this scenario, your source table is for match level. Since you want to analysis player data, I suggest you duplicate your dataset, swap name1 and name2 columns in duplicated dataset, then combine two datasets together. So for each match, it will have two entries, one for player 1, the other for player 2. You dataset can be like:

 

Player Opponent winner field condition

John, Susan, John, Dry

Susan, John, John, Dry

 

Add a win tag column like:

 

isWin = IF(Table[Player]=Table[winner],1,0)

To calculate the win rate versus some player, you can use ALLEXCEPT() to have your calculation group on both play and opponent.

 

 

Win Rate =
CALCULATE (
    COUNTROWS ( Table ),
    ALLEXCEPT ( Table, Table[Player], Table[Opponent] )
)
    / CALCULATE (
        COUNTROWS ( Table ),
        ALLEXCEPT ( Table, Table[Player], Table[Opponent] ),
        FILTER ( Table, Table[isWin] = 1 )
    )

 

If you also want analysis based on fieldcondition, just add that column into ALLEXCEPT() function.

 

Win Rate =
CALCULATE (
    COUNTROWS ( Table ),
    ALLEXCEPT ( Table, Table[Player], Table[Opponent], Table[fieldcondition] )
)
    / CALCULATE (
        COUNTROWS ( Table ),
        ALLEXCEPT ( Table, Table[Player], Table[Opponent], Table[fieldcondition] ),
        FILTER ( Table, Table[isWin] = 1 )
    )

Regards,

 

View solution in original post

1 REPLY 1
v-sihou-msft
Employee
Employee

@mlee

 

In this scenario, your source table is for match level. Since you want to analysis player data, I suggest you duplicate your dataset, swap name1 and name2 columns in duplicated dataset, then combine two datasets together. So for each match, it will have two entries, one for player 1, the other for player 2. You dataset can be like:

 

Player Opponent winner field condition

John, Susan, John, Dry

Susan, John, John, Dry

 

Add a win tag column like:

 

isWin = IF(Table[Player]=Table[winner],1,0)

To calculate the win rate versus some player, you can use ALLEXCEPT() to have your calculation group on both play and opponent.

 

 

Win Rate =
CALCULATE (
    COUNTROWS ( Table ),
    ALLEXCEPT ( Table, Table[Player], Table[Opponent] )
)
    / CALCULATE (
        COUNTROWS ( Table ),
        ALLEXCEPT ( Table, Table[Player], Table[Opponent] ),
        FILTER ( Table, Table[isWin] = 1 )
    )

 

If you also want analysis based on fieldcondition, just add that column into ALLEXCEPT() function.

 

Win Rate =
CALCULATE (
    COUNTROWS ( Table ),
    ALLEXCEPT ( Table, Table[Player], Table[Opponent], Table[fieldcondition] )
)
    / CALCULATE (
        COUNTROWS ( Table ),
        ALLEXCEPT ( Table, Table[Player], Table[Opponent], Table[fieldcondition] ),
        FILTER ( Table, Table[isWin] = 1 )
    )

Regards,

 

Helpful resources

Announcements
Fabric Community Conference

Microsoft Fabric Community Conference

Join us at our first-ever Microsoft Fabric Community Conference, March 26-28, 2024 in Las Vegas with 100+ sessions by community experts and Microsoft engineering.

February 2024 Update Carousel

Power BI Monthly Update - February 2024

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

Fabric Career Hub

Microsoft Fabric Career Hub

Explore career paths and learn resources in Fabric.

Fabric Partner Community

Microsoft Fabric Partner Community

Engage with the Fabric engineering team, hear of product updates, business opportunities, and resources in the Fabric Partner Community.

Top Solution Authors