Forum Discussion

Saxon10's avatar
Saxon10
Icon for Post Prodigy rankPost Prodigy
5 years ago
Solved

Calculate distinct based on the two columns

In data table I have 3 columns are Team, Id and result.

In result column contain win, loss and no result.

If same team and id contain win, loss and no result then return "Multiple".

If same team and id contain win then return "win".

If same team and id contain loss then return "loss".

If same team and id contain win and no result then return "win".

If same team and id contain loss and no result then return "loss".

 

TeamIDResultDesired Report
TR1SWinMultiple
TR1SWinMultiple
TR1SNo ResultMultiple
TR1SNo ResultMultiple
TR1SLossMultiple
TR1SLossMultiple
TR2SWinMultiple
TR2SWinMultiple
TR2SLossMultiple
TR2SLossMultiple
TR3SLossLoss
TR3SLossLoss
TR4SWinWin
TR4SWinWin
TR5SNo ResultWin
TR5SwinWin
TR6SLossLoss
TR6SNo ResultLoss

 

 

  • Hi,

    NewColumn =
    VAR MyTeam = 'Table'[Team]
    VAR MyID = 'Table'[ID]
    VAR MyTeamIDWins =
        CALCULATE (
            COUNTROWS ( FILTER ( 'Table', 'Table'[Team] = MyTeam && 'Table'[ID] = MyID ) ),
            'Table'[Result] = "Win"
        )
    VAR MyTeamIDLosses =
        CALCULATE (
            COUNTROWS ( FILTER ( 'Table', 'Table'[Team] = MyTeam && 'Table'[ID] = MyID ) ),
            'Table'[Result] = "Loss"
        )
    RETURN
        SWITCH (
            1 * ( MyTeamIDWins > 0 ) + 2 * ( MyTeamIDLosses > 0 ),
            1, "Win",
            2, "Loss",
            3, "Multiple"
        )

    Regards

  • How about this?

    Desired Report =
    VAR Results =
        CALCULATETABLE (
            VALUES ( Table1[Result] ),
            ALLEXCEPT ( Table1, Table1[Team], Table1[ID] ),
            Table1[Result] <> "No Result"
        )
    RETURN
        SWITCH (
            TRUE (),
            COUNTROWS ( Results ) = 0, "No Result",
            COUNTROWS ( Results ) = 1, Results,
            COUNTROWS ( Results ) > 1, "Multiple"
        )
  • Thanks for your reply and solution for Jos_Woolley  and @AlexisOlson and sorry for the late reply. 

    Both solutions are working well. 

3 Replies

  • Hi,

    NewColumn =
    VAR MyTeam = 'Table'[Team]
    VAR MyID = 'Table'[ID]
    VAR MyTeamIDWins =
        CALCULATE (
            COUNTROWS ( FILTER ( 'Table', 'Table'[Team] = MyTeam && 'Table'[ID] = MyID ) ),
            'Table'[Result] = "Win"
        )
    VAR MyTeamIDLosses =
        CALCULATE (
            COUNTROWS ( FILTER ( 'Table', 'Table'[Team] = MyTeam && 'Table'[ID] = MyID ) ),
            'Table'[Result] = "Loss"
        )
    RETURN
        SWITCH (
            1 * ( MyTeamIDWins > 0 ) + 2 * ( MyTeamIDLosses > 0 ),
            1, "Win",
            2, "Loss",
            3, "Multiple"
        )

    Regards

  • How about this?

    Desired Report =
    VAR Results =
        CALCULATETABLE (
            VALUES ( Table1[Result] ),
            ALLEXCEPT ( Table1, Table1[Team], Table1[ID] ),
            Table1[Result] <> "No Result"
        )
    RETURN
        SWITCH (
            TRUE (),
            COUNTROWS ( Results ) = 0, "No Result",
            COUNTROWS ( Results ) = 1, Results,
            COUNTROWS ( Results ) > 1, "Multiple"
        )
  • Saxon10's avatar
    Saxon10
    Icon for Post Prodigy rankPost Prodigy

    Thanks for your reply and solution for Jos_Woolley  and @AlexisOlson and sorry for the late reply. 

    Both solutions are working well.