In order to make some generic BOM creation based on products, the enduser shall be able to choose converned untis intuitively.
I created 22 individual tables with filters, where the unser can choose from
To make some BOM calculations, I need the amount of the same products selected from 20 filters
Each choice for each filter is a measure “selected length X” ; e.g. for Filter 10
sel_length10 = SELECTEDVALUE('Zeilengerät 10'[Länge])
I currently have 15 Product types for which I wanted to calculate the sum of their occurrencies due to unser selection
So I have 15 Measures similar to this one for produt type MIAMI 145:
Amount Miami145 =
VAR selection ="Miami 145"
VAR res1 = if([sel_length1]=selection;1;0)
VAR res2 = if([sel_length2]=selection;1;0)
VAR res3 = if([sel_length3]=selection;1;0)
VAR res4 = if([sel_length4]=selection;1;0)
VAR res5 = if([sel_length5]=selection;1;0)
VAR res6 = if([sel_length6]=selection;1;0)
VAR res7 = if([sel_length7]=selection;1;0)
VAR res8 = if([sel_length8]=selection;1;0)
VAR res9 = if([sel_length9]=selection;1;0)
VAR res10 = if([sel_length10]=selection;1;0)
VAR res11 = if([sel_length11]=selection;1;0)
VAR res12 = if([sel_length12]=selection;1;0)
VAR res13 = if([sel_length13]=selection;1;0)
VAR res14 = if([sel_length14]=selection;1;0)
VAR res15 = if([sel_length15]=selection;1;0)
VAR res16 = if([sel_length16]=selection;1;0)
VAR res17 = if([sel_length17]=selection;1;0)
VAR res18 = if([sel_length18]=selection;1;0)
VAR res19 = if([sel_length19]=selection;1;0)
VAR res20 = if([sel_length20]=selection;1;0)
VAR result= res1+res2+res3+res4+res5+res6+res7+res8+res9+res10+res11+res12+res13+res14+res5+res16+res17+res18+res19+res20
return
result
I now have a huge performance issue, because each new product type measure causes the report to take 5 seconds longer to refresh
Is there any other trick, that I can find out the occurrencies for each product type faster?
Use SWITCH instead of IF(), MIN() insteas od SELECTEDVALUE(); or another measure that generates a temporary table as VAR where I can make a CALCULATE(COUNTROWS(temptable);length=“Miami 145” or similar.
I am somehow in a dead end right now it seems.
THANKS a lot for taking the tim to dig into this & br,
Alex