Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago
Solved

Measure with a variable

Hi,

 

I am trying to upgrade a company report such that it is future proof. I am currently facing a seemingly simple problem which has been bugging me for the past 2 days. I can't share the data but I'll try to sketch the scenario as well as possible.

 

My data consists of many rows and columns, which are divided according to the following example:

 

table 1

 ClassValueSlicer columns
1A1Fullfills requirements
2A2Fullfills requirements
3A3Bad solution
4B4Fullfills requirements
5B5Bad solution
6C6Fullfills requirements
7C7Bad solution

 

Users give input in the various columns, which results in a solution meeting the requirements or not (here sumarized in a column, in the real report, this is done through slicers in the project). I want to find the maximum of the valid solutions per class, but at the same time I want to find the minimum of all the maximums (which is my most conservative solution to the problem). e.g. The maximum acceptable values are (2, 4 and 6), so my measure should output 2, which is the minimum of the 3 maximums.

 

My measure which does this, is as follows (I left the good/bad solution filter out for simplicity):

measure =

VAR maxA = CALCULATE(MAX(table1[Value]); table1[Class] = "A")

VAR maxB = CALCULATE(MAX(table1[Value]); table1[Class] = "B")

VAR maxC = CALCULATE(MAX(table1[Value]); table1[Class] = "C")

RETURN MIN(MIN(maxA;maxB) ; maxC)

 

This measure does exactly as expected. However, the amount of classes in my data can change in the future. Hence, I would like to include a loop over a variable amount of classes instead of hard coding them.

 

The slicer criteria are set inside the report. Therefore, I cannot use the query editor, as that does all the calculations while loading the data, therefore ignoring future slicers (at least to my understanding, correct me if I am wrong). I think I am limited to using a measure, but those don't work well with variables/functions.

 

I hope someone can help me out.

 

Cheers,

 

Jeffrey

2 Replies