Power BI is turning 10, and we’re marking the occasion with a special community challenge. Use your creativity to tell a story, uncover trends, or highlight something unexpected.
Get startedJoin us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.
Hello everyone,
I'm having trouble with this measure. I would like to calculate the number of clients with a reception rate above 75%. Here's a simplified version of my dataset :
Client | Month of package | reception Status |
BFA | 01/22 | Received |
COL | 01/22 | Not received |
BFA | 02/22 | Received |
COL | 02/22 | Received |
So basically, I would like to show with a measure how many clients have a received more than 75% of all packages (one package a month). In this simple example, the measure would have "1" as a result, as only one client is above the 75% reception mark.
It would be even better if the result would be in % of all clients. So the final result would be 50%, as in 50% of clients have a received more than 75% of all their packages.
Thank you very much in advance for your help. I hope this is clear 🙂
Antonio Trigo da Roza
Solved! Go to Solution.
try to write a measure like this:
75PlusClientRate =
VAR _table =
ADDCOLUMNS(
VALUES(TableName[Client]),
"Rate",
VAR _received =
CALCULATE(
COUNT(TableName[reception status]),
TableName[reception status]="Received"
)
VAR _allstatus =
CALCULATE(
COUNT(TableName[reception status])
)
RETURN
DIVIDE(_received, _allstatus)
)
VAR _ClientCount = COUNTROWS(VALUES(TableName[Client]))
VAR _75PlusClientCount =
COUNTROWS(FILTER(_table, [Rate]>=0.75))
RETURN
DIVIDE(_75PlusClientCount, _ClientCount)
With your data sample, it worked like this:
the intermediate count measure is like:
75PlusClientCount =
VAR _table =
ADDCOLUMNS(
VALUES(TableName[Client]),
"Rate",
VAR _received =
CALCULATE(
COUNT(TableName[reception status]),
TableName[reception status]="Received"
)
VAR _allstatus =
CALCULATE(
COUNT(TableName[reception status])
)
RETURN
DIVIDE(_received, _allstatus)
)
VAR _ClientCount = COUNTROWS(VALUES(TableName[Client]))
VAR _75PlusClientCount =
COUNTROWS(FILTER(_table, [Rate]>=0.75))
RETURN
_75PlusClientCount
try to write a measure like this:
75PlusClientRate =
VAR _table =
ADDCOLUMNS(
VALUES(TableName[Client]),
"Rate",
VAR _received =
CALCULATE(
COUNT(TableName[reception status]),
TableName[reception status]="Received"
)
VAR _allstatus =
CALCULATE(
COUNT(TableName[reception status])
)
RETURN
DIVIDE(_received, _allstatus)
)
VAR _ClientCount = COUNTROWS(VALUES(TableName[Client]))
VAR _75PlusClientCount =
COUNTROWS(FILTER(_table, [Rate]>=0.75))
RETURN
DIVIDE(_75PlusClientCount, _ClientCount)
With your data sample, it worked like this:
Wow! Thank you so much, this worked perfectly.
Only added a "+0" at the end so the result is never null.
Thanks again @FreemanZ !
Antonio
the intermediate count measure is like:
75PlusClientCount =
VAR _table =
ADDCOLUMNS(
VALUES(TableName[Client]),
"Rate",
VAR _received =
CALCULATE(
COUNT(TableName[reception status]),
TableName[reception status]="Received"
)
VAR _allstatus =
CALCULATE(
COUNT(TableName[reception status])
)
RETURN
DIVIDE(_received, _allstatus)
)
VAR _ClientCount = COUNTROWS(VALUES(TableName[Client]))
VAR _75PlusClientCount =
COUNTROWS(FILTER(_table, [Rate]>=0.75))
RETURN
_75PlusClientCount
@atrigodaroza , If you displaying at the client level
Divide( Countrows(filter(Table, Table[reception Status] = "Received")), Countrows(Table) )
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.
User | Count |
---|---|
11 | |
9 | |
8 | |
8 | |
7 |
User | Count |
---|---|
14 | |
12 | |
11 | |
10 | |
9 |