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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
Newbie_1
Frequent Visitor

Dynamically calculating an index with a fixed value based on selection criteria

Hi there, 

I am doing a pricing analysis in EUR/L, and I would like to calculate to do an indexation of all products within a certain category where the base value for all products should always be the EUR/L price for the product with the highest % market share or top volume rank. 

Please refer to the below table:
- EUR/L comes from the data table

- % Market share is from the data table

- For volume rank I use the following measure : RANKX(ALLSELECTED('EUR/L Overview'),CALCULATE(SUM('RSP Overview'[Volumes])))

- The intention for "EUR/L for product with highest market share" in this case, is supposed to generate 55.64 across all rows in the table, so that I am eventually able to do the indexation. I have been trying various DAX calculations with 'FILTER', 'MAX', 'CALCULATE' but it's either going against the system logic with true/false expressions, or generates the below output (the EUR/L for the respective product). Any suggestions how I can achieve the desired result?

Newbie_1_1-1729650043443.png

 

Much appreciate any help

1 REPLY 1
bhanu_gautam
Super User
Super User

@Newbie_1 , Try usinge below DAX

 

Calculate the EUR/L for the product with the highest market share:

HighestMarketShareEUR_L =
CALCULATE(
MAX('EUR/L Overview'[EUR/L]),
FILTER(
'EUR/L Overview',
'EUR/L Overview'[% Market Share] = MAXX(ALL('EUR/L Overview'), 'EUR/L Overview'[% Market Share])
)
)


Calculate the EUR/L for the product with the top volume rank:
TopVolumeRankEUR_L =
CALCULATE(
MAX('EUR/L Overview'[EUR/L]),
FILTER(
'EUR/L Overview',
RANKX(ALLSELECTED('EUR/L Overview'), CALCULATE(SUM('RSP Overview'[Volumes]))) = 1
)
)


Choose the appropriate EUR/L value based on your criteria (highest market share or top volume rank):
BaseEUR_L =
IF(
[Use Market Share],
[HighestMarketShareEUR_L],
[TopVolumeRankEUR_L]
)


Create the indexation measure:
IndexedEUR_L =
DIVIDE(
'EUR/L Overview'[EUR/L],
[BaseEUR_L]
)

[Use Market Share] is a boolean measure or parameter that you can set to determine whether to use the highest market share or the top volume rank for the base EUR/L value.




Did I answer your question? Mark my post as a solution! And Kudos are appreciated

Proud to be a Super User!




LinkedIn






Helpful resources

Announcements
July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.

Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 community update carousel

Fabric Community Update - June 2025

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