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

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now

Reply
DJKarma
Frequent Visitor

Create a conditional column based on contents of data

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)

 

1 ACCEPTED SOLUTION
tamerj1
Super User
Super User

hI @DJKarma 
Please refer to attached file with the solution 

1.png

Result = 
VAR Items = SUBSTITUTE ( 'Table'[Column], ",", "|" )
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 )

View solution in original post

7 REPLIES 7
tamerj1
Super User
Super User

hI @DJKarma 
Please refer to attached file with the solution 

1.png

Result = 
VAR Items = SUBSTITUTE ( 'Table'[Column], ",", "|" )
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 )

Thanks, I am not able to check this, as there are also blanks in my column which I cant remove.
Can you edit your code to handle blanks as well?
If blank then output "XX"

Hi @DJKarma 
See attached

1.png

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 )

It was a polite request , to know as in how this is working.
Can you please tell me how every line works in short?

Hi @DJKarma 
I'm returning the variables one by one for better understanding

1.png2.png3.png4.png5.png6.png

amitchandak
Super User
Super User

@DJKarma , Can you please share expected output

Share with Power BI Enthusiasts: Full Power BI Video (20 Hours) YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

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)

 

 

Just the characters from the column, i have written reasons in the bracket which you can exclude

Helpful resources

Announcements
Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

Check out the October 2025 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors