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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Anonymous
Not applicable

Counting NonBlank Cells across multiple columns

Hello House,

I have a dataset where I used "SplitColumn by Delimeter" to split a particular column into several columns. Now, I will like to have a calculated column that will count the number of cells with non-blank for each row.

 

Ayowumi_0-1601213822084.png

 

Thank you.

 

@amitchandak 

6 REPLIES 6
Greg_Deckler
Super User
Super User

@Anonymous I would recommend unpivoting those columns in Power Query. However, if for some reason you need them in multiple columns, you could use MC Aggregations:

https://community.powerbi.com/t5/Quick-Measures-Gallery/Multi-Column-Aggregations-MC-Aggregations/m-p/391698#M129

MC Count Blank = 
VAR tmpCol1 = SELECTCOLUMNS(Data,"Column",[Column1])
VAR tmpCol2 = SELECTCOLUMNS(Data,"Column",[Column2])
VAR tmpCol3 = SELECTCOLUMNS(Data,"Column",[Column3])
VAR tmpCol4 = SELECTCOLUMNS(Data,"Column",[Column4])
VAR tmpTable = UNION(UNION(UNION(tmpCol1,tmpCol2),tmpCol3),tmpCol4)
VAR tmpValue = COUNTROWS(FILTER(tmpTable,ISBLANK([Column]))
RETURN tmpValue

@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...
Anonymous
Not applicable

Thank you very much for your quick response. This is appreciated. 

I actually do need the splitting in the multiple columns hence this request.

When I copied and edited the syntax you suggested, it gave me some error. Please see the screenshot below

 

Ayowumi_0-1601216823698.png

 

I think the error is from second to last step of the formula (ISBLANK([Column]))):

MC Count Blank =
VAR tmpCol1 = SELECTCOLUMNS(MAD,"Column",[Please mention all the food your child ate between yesterday and now, Day&Nigh.1])
VAR tmpCol2 = SELECTCOLUMNS(MAD,"Column",[Please mention all the food your child ate between yesterday and now, Day&Nigh.2])
VAR tmpCol3 = SELECTCOLUMNS(MAD,"Column",[Please mention all the food your child ate between yesterday and now, Day&Nigh.3])
VAR tmpCol4 = SELECTCOLUMNS(MAD,"Column",[Please mention all the food your child ate between yesterday and now, Day&Night.])
VAR tmpTable = UNION(UNION(UNION(tmpCol1,tmpCol2),tmpCol3),tmpCol4)
VAR tmpValue = COUNTROWS(FILTER(tmpTable,ISBLANK([Column]))
RETURN tmpValue

 

@Greg_Deckler 

@Anonymous There is just a missing ) in the line before RETURN:

MC Count Blank = 
VAR tmpCol1 = SELECTCOLUMNS(Data,"Column",[Column1])
VAR tmpCol2 = SELECTCOLUMNS(Data,"Column",[Column2])
VAR tmpCol3 = SELECTCOLUMNS(Data,"Column",[Column3])
VAR tmpCol4 = SELECTCOLUMNS(Data,"Column",[Column4])
VAR tmpTable = UNION(UNION(UNION(tmpCol1,tmpCol2),tmpCol3),tmpCol4)
VAR tmpValue = COUNTROWS(FILTER(tmpTable,ISBLANK([Column])))
RETURN tmpValue

@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...
Anonymous
Not applicable

Thank you @Greg_Deckler . The syntax returned aggregate value for all rows. This is not what I want. Please see screenshot below:

 

Ayowumi_0-1601284112313.png

 

For this screenshot, you would notice that only the first column has values while the rest has are blanks. The figures here should 1. Please can you help out.

@Anonymous Maybe:

MC Count Blank = 
VAR __Table = SUMMARIZE('Table',[Column],"__Column1",MAX([Column1]),"__Column2",MAX(Column2]),"__Column3",MAX([Column3]),"__Column4",MAX([Column4]))
VAR tmpCol1 = SELECTCOLUMNS(Data,"Column",[__Column1])
VAR tmpCol2 = SELECTCOLUMNS(Data,"Column",[__Column2])
VAR tmpCol3 = SELECTCOLUMNS(Data,"Column",[__Column3])
VAR tmpCol4 = SELECTCOLUMNS(Data,"Column",[__Column4])
VAR tmpTable = UNION(UNION(UNION(tmpCol1,tmpCol2),tmpCol3),tmpCol4)
VAR tmpValue = COUNTROWS(FILTER(tmpTable,ISBLANK([Column])))
RETURN tmpValue

@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

@Anonymous I'm on my phone so hard to see error message. But may try

COUNTROWS(FILTER(tmpTable,[Column]=BLANK()))


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors