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! Learn more

Reply
Anonymous
Not applicable

DAX- Percentage calculation at different granularity

Hi all,

 

I have a table that looks like below. And the screenshot also shows what I am trying to do. I am trying to get a percentage of a column based on the slicer selected.
The one in green is the incorrect operation.

The one in orange is what I need.
My numerator needs to be the row context, and denominator slicer (filter) context. I know using a ALL will select the whole column, but I don't want that. I want my denominator to be only the values that are selected in the slicer.

 

DaxQues.png

 

Thanks,

Atul

1 ACCEPTED SOLUTION
OwenAuger
Super User
Super User

Hi Atul,

 

You can use ALLSELECTED instead of ALL to do this.

To make your measure as general as possible (based on your current model), you could write

 

P Mix = 
DIVIDE (
    SUM ( Sheet1[Prior Volume] ),
    CALCULATE ( 
        SUM ( Sheet1[Prior Volume] ),
        ALLSELECTED ( Sheet1[Product Hier], Sheet1[Product Hier lvl 1], Sheet1[Product Hier lvl 2] )
    )
)

Using this measure, the denominator would be determined by any slicers filtering the table.

 

For convenience, it might be better to have a Product table related to your existing table, which would simplify the above measure since you could write ALLSELECTED ( 'Product' ).

 

Regards,

Owen


Owen Auger
Did I answer your question? Mark my post as a solution!
Blog
LinkedIn

View solution in original post

3 REPLIES 3
Anonymous
Not applicable

@Anonymous 

ratioColumn =

 DIVIDE(
CALCULATE(SUM(Products[Prior volume]), FILTER(ALL(Products),
Products[Prod lvl 1] = EARLIER(Products[Prod lvl 1]) &&
Products[Prod lvl 2] = EARLIER(Products[Prod lvl 2]))),
CALCULATE(SUM(Products[Prior volume]), FILTER(ALL(Products), Products[Prod lvl 1] = EARLIER(Products[Prod lvl 1]))),
0)
OwenAuger
Super User
Super User

Hi Atul,

 

You can use ALLSELECTED instead of ALL to do this.

To make your measure as general as possible (based on your current model), you could write

 

P Mix = 
DIVIDE (
    SUM ( Sheet1[Prior Volume] ),
    CALCULATE ( 
        SUM ( Sheet1[Prior Volume] ),
        ALLSELECTED ( Sheet1[Product Hier], Sheet1[Product Hier lvl 1], Sheet1[Product Hier lvl 2] )
    )
)

Using this measure, the denominator would be determined by any slicers filtering the table.

 

For convenience, it might be better to have a Product table related to your existing table, which would simplify the above measure since you could write ALLSELECTED ( 'Product' ).

 

Regards,

Owen


Owen Auger
Did I answer your question? Mark my post as a solution!
Blog
LinkedIn
Anonymous
Not applicable

Owen,

 

Thank you.

 

I tried using ALLSELECTED too, but only with Prod Heir Level 1, which gave me 100% every time. this makes sense now. Thanks again.

 

Regards,

Atul

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