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.
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?
Much appreciate any help
@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.
Proud to be a Super User! |
|
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 |
---|---|
10 | |
9 | |
7 | |
6 | |
5 |
User | Count |
---|---|
20 | |
11 | |
10 | |
9 | |
6 |