Forum Discussion

cocolinho's avatar
cocolinho
Regular Visitor
5 years ago
Solved

Comparison between X & Y using many criteria

Hi everyone,

I'm beginning with PowerBI and I'm currently stuck , I know how to get what I want to see in Excel, but not in PowerBI so I'm requesting some help 

Hope example is clear enough. Thank you in advance

 

table 1  
ModelTypevalue
A15000
A22020
A3589
B4532
B5577
B64890
B715423

 

table 2  
competitorTypeavailabilty
X1yes
X2yes
X3no
Y1yes
Y2no
Y3no
X4no
X5yes
X6no
X7yes
Y4yes
Y5yes
Y6yes
Y7yes

 

what I'm looking for is :

what Y is missing vs X only when X is available

So 100% is what is available from X only ,then I want to see what we miss with Y vs X

  • Hi, cocolinho 

     

    It’s my pleasure to answer for you.

    I’m a little confused about what you want to calculate, but I tried to understand and calculated the percentage of the total when X=YES and Y=NO under the same type.

    Like this:

     

    Measure =
    VAR tab =
        SUMMARIZE (
            ALL ( TableXY ),
            TableXY[type],
            "y=no",
                VAR x =
                    COUNTROWS (
                        FILTER (
                            ALL ( TableXY ),
                            TableXY[type] = EARLIER ( TableXY[type] )
                                && TableXY[availbility] = "YES"
                                && TableXY[competitor] = "X"
                        )
                    )
                VAR y =
                    COUNTROWS (
                        FILTER (
                            ALL ( TableXY ),
                            TableXY[type] = EARLIER ( TableXY[type] )
                                && TableXY[availbility] = "NO"
                                && TableXY[competitor] = "Y"
                        )
                    )
                RETURN
                    IF ( x > 0 && y > 0, 1, 0 ),
            "x=yes",
                VAR x =
                    COUNTROWS (
                        FILTER (
                            ALL ( TableXY ),
                            TableXY[type] = EARLIER ( TableXY[type] )
                                && TableXY[availbility] = "YES"
                                && TableXY[competitor] = "X"
                        )
                    )
                RETURN
                    IF ( x > 0, 1, 0 )
        )
    VAR yno =
        COUNTROWS ( FILTER ( tab, [y=no] = 1 ) )
    VAR xyes =
        COUNTROWS ( FILTER ( tab, [x=yes] = 1 ) )
    RETURN
        DIVIDE ( yno, xyes )

     

    If it doesn’t solve your problems, please feel free to ask me.

     

    Best Regards

    Janey Guo

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

3 Replies

  • cocolinho , based on what I got. You can get table like

     

    except(Summarize(filter(Table, Table[availabilty]="yes" , Table[competitor] ="X"), Table[availabilty]),
    Summarize(filter(Table, Table[availabilty]="yes" , Table[competitor] ="Y"), Table[availabilty]))

     

    You can use it var table in a measure

     

    Please provide your feedback comments and advice for new videos
    Tutorial Series Dax Vs SQL Direct Query PBI Tips
    Appreciate your Kudos.

  • v-janeyg-msft's avatar
    v-janeyg-msft
    Icon for Community Support rankCommunity Support

    Hi, cocolinho 

     

    It’s my pleasure to answer for you.

    I’m a little confused about what you want to calculate, but I tried to understand and calculated the percentage of the total when X=YES and Y=NO under the same type.

    Like this:

     

    Measure =
    VAR tab =
        SUMMARIZE (
            ALL ( TableXY ),
            TableXY[type],
            "y=no",
                VAR x =
                    COUNTROWS (
                        FILTER (
                            ALL ( TableXY ),
                            TableXY[type] = EARLIER ( TableXY[type] )
                                && TableXY[availbility] = "YES"
                                && TableXY[competitor] = "X"
                        )
                    )
                VAR y =
                    COUNTROWS (
                        FILTER (
                            ALL ( TableXY ),
                            TableXY[type] = EARLIER ( TableXY[type] )
                                && TableXY[availbility] = "NO"
                                && TableXY[competitor] = "Y"
                        )
                    )
                RETURN
                    IF ( x > 0 && y > 0, 1, 0 ),
            "x=yes",
                VAR x =
                    COUNTROWS (
                        FILTER (
                            ALL ( TableXY ),
                            TableXY[type] = EARLIER ( TableXY[type] )
                                && TableXY[availbility] = "YES"
                                && TableXY[competitor] = "X"
                        )
                    )
                RETURN
                    IF ( x > 0, 1, 0 )
        )
    VAR yno =
        COUNTROWS ( FILTER ( tab, [y=no] = 1 ) )
    VAR xyes =
        COUNTROWS ( FILTER ( tab, [x=yes] = 1 ) )
    RETURN
        DIVIDE ( yno, xyes )

     

    If it doesn’t solve your problems, please feel free to ask me.

     

    Best Regards

    Janey Guo

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.