Search code examples
logicpowerbi-desktop

Conditional Column in PowerBI based on Priority and Count


This is a simple request. I have to create a column in query editor, or in table view. Whichever is easy.

Column looks like this -->

A,B,C,D,D,E,D

B,C,D,B,D,A

C,C,D,F,E,G

D,D,E,E,E,F,B

Result should be based on count of characters present, with 'A' character always taking the priority. For instance result of the above column next to it will be

A ( A will take priority even if D has most count)

A (Even though B has most count, A will take Priority)

C ( as C has most count)

E ( as E has most count)


Solution

  • Result = 
    VAR String = COALESCE ( 'Table'[Column], "XX" )
    VAR Items = SUBSTITUTE ( String, ",", "|" )
    VAR Length = PATHLENGTH ( Items )
    VAR T1 = GENERATESERIES ( 1, Length, 1 )
    VAR T2 = ADDCOLUMNS ( T1, "@Item", PATHITEM ( Items, [Value] ) )
    VAR T3 = GROUPBY ( T2, [@Item], "@Count", COUNTX ( CURRENTGROUP(), 1 ) )
    VAR T4 = TOPN ( 1, T3, [@Count] )
    VAR Result = MAXX ( T4, [@Item] )
    RETURN
        IF ( PATHCONTAINS ( Items, "A" ), "A", Result )
    

    Blockquote