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!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
Hi,
I need to create the logic of the Funnel Chart on the table,
to show category, value an %, in a way that the first row is 100% and others are the percentage of the row above like on the picture I attached. is there is a way to make it happen dynamically?
Link to Pbix sample fiile
Solved! Go to Solution.
Hi @Ritaf ,
I updated your sample pbix file(see attachment), please check whether that is what you want.
1. Create a calculated column as below to get the rank base on the sum of values group by category
Rank =
RANKX (
ALLSELECTED ( 'Sheet1'[Category] ),
CALCULATE ( [test], ALLEXCEPT ( 'Sheet1', 'Sheet1'[Category] ) )
)
2. Create a measure as below to get the percentage
% =
VAR _selcat =
SELECTEDVALUE ( 'Sheet1'[Category] )
VAR _selindex =
SELECTEDVALUE ( 'Sheet1'[Rank] )
VAR _prerank =
CALCULATE (
MAX ( 'Sheet1'[Rank] ),
FILTER ( ALLSELECTED ( 'Sheet1' ), 'Sheet1'[Rank] < _selindex )
)
VAR _pretest =
SUMX ( FILTER ( ALLSELECTED ( 'Sheet1' ), 'Sheet1'[Rank] = _prerank ), [test] )
RETURN
IF ( _selindex = 1, 1, DIVIDE ( [test], _pretest ) )
Best Regards
Power BI has no concept of "Row Above" - you need to help it by providing indexes, or by hard coding the logic (for example "Sales as percentage of Calls".
If you paste the sample data into a table in your post or use one of the file services it will be easier to work with.
Hi,
Thank you for your response I know that Power BI has no concept of "Row Above", not in visualization at less, and have no doubt that this isn't standard logic.
There is a link for the sample file:https://drive.google.com/file/d/15dHsxNWd7Fh1Q-dhIaG9uh28r89cmFwr/view
I hope somebody has an idea how to solve it dynamically without measure for each category and "Switch" games.
Hi @Ritaf ,
I updated your sample pbix file(see attachment), please check whether that is what you want.
1. Create a calculated column as below to get the rank base on the sum of values group by category
Rank =
RANKX (
ALLSELECTED ( 'Sheet1'[Category] ),
CALCULATE ( [test], ALLEXCEPT ( 'Sheet1', 'Sheet1'[Category] ) )
)
2. Create a measure as below to get the percentage
% =
VAR _selcat =
SELECTEDVALUE ( 'Sheet1'[Category] )
VAR _selindex =
SELECTEDVALUE ( 'Sheet1'[Rank] )
VAR _prerank =
CALCULATE (
MAX ( 'Sheet1'[Rank] ),
FILTER ( ALLSELECTED ( 'Sheet1' ), 'Sheet1'[Rank] < _selindex )
)
VAR _pretest =
SUMX ( FILTER ( ALLSELECTED ( 'Sheet1' ), 'Sheet1'[Rank] = _prerank ), [test] )
RETURN
IF ( _selindex = 1, 1, DIVIDE ( [test], _pretest ) )
Best Regards
Check out the November 2025 Power BI update to learn about new features.
Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!
| User | Count |
|---|---|
| 57 | |
| 44 | |
| 41 | |
| 21 | |
| 18 |
| User | Count |
|---|---|
| 183 | |
| 114 | |
| 93 | |
| 61 | |
| 45 |