Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!To celebrate FabCon Vienna, we are offering 50% off select exams. Ends October 3rd. Request your discount now.
Hi Experts,
I am looking for a calculation that would give me the percentage of blank fields based on another value.
here is an example.
This is how my data looks like
Column1 | Column2 |
1 | 23 |
1 | 45 |
2 | |
2 | 67 |
3 | |
3 | |
3 |
so here we have no blanks in column2 for 1, 2 is half empty and for 3 is totally empty
The expected result is a table with one column as above and the calculated column showing the percentage of blanks:
column1 | calc_column |
1 | 0% |
2 | 50% |
3 | 100% |
Thanks ks in advance for your help!
Solved! Go to Solution.
hi @kanebuddy
try to plot a table visual with the column1 and a measure like
Measure =
VAR _countall =
COUNTROWS( TableName)
VAR _countblank =
COUNTROWS(
FILTER(
TableName,
TableName[Column2]=BLANK()
)
)
RETURN
DIVIDE(_countblank, _countall, 0)+0
it worked like:
hi @kanebuddy
try to plot a table visual with the column1 and a measure like
Measure =
VAR _countall =
COUNTROWS( TableName)
VAR _countblank =
COUNTROWS(
FILTER(
TableName,
TableName[Column2]=BLANK()
)
)
RETURN
DIVIDE(_countblank, _countall, 0)+0
it worked like:
Hi Freemanz,
thanks for the reply, however I get only 1 and 0 as result of the measure, that doesnt look like percentage values. Items that should have a 100% gets 0 and empty ones get 1 and an item that has one blank out of 11 gets a 0,26. Cant see whats wrong..
Stop, thanks for that, I was fooling myself. Setting the Measure to display as Percentage on the modeling Tab and then think again about the expected result brings me to the conclusion thats doing exactly what it should.
Thanks again for the very quick help!
hi @kanebuddy
you may also write a calcualted table like:
Table =
ADDCOLUMNS(
VALUES(TableName[Column1]),
"Pct",
CALCULATE(
VAR _countall =COUNTROWS( TableName)
VAR _countblank =
COUNTROWS(
FILTER(
TableName,
TableName[Column2]=BLANK()
)
)
RETURN
DIVIDE(_countblank, _countall, 0)+0
)
)
it worked like:
User | Count |
---|---|
15 | |
9 | |
8 | |
6 | |
5 |
User | Count |
---|---|
31 | |
19 | |
13 | |
7 | |
5 |