Forum Discussion
Filter the contents inside MATRIX visual
- 3 years ago
Actually, thinking about it, the average method could potentially not achieve what you are looking for.
If you have a set of values for a year like {30, 29, 30, 31}, the average method will hide both 30 values.
The following method however will work: compare the minimum value in a set to the maximum value. If they are the same, all values are the same...
So...
No duplicate profits = VAR _Min = MINX ( ALL ( 'Warehouse table'[Warehouse] ), [Your measure] ) VAR _MAX = MAXX ( ALL ( 'Warehouse table'[Warehouse] ), [Your measure] ) RETURN IF ( AND ( ISINSCOPE ( 'Warehouse table'[Warehouse] ), ISINSCOPE ( 'Year Table'[Year] ) ), IF ( _Min = _Max, BLANK (), [Your measure] ) )PS. I tried deleting the previous message but the forum won't let me for that particular post for some reason....
Hi Thor
Can you elaborate on the example? So for example if the column values for year #2 are 5,6 and 7, it shows but if it is 3,3, and 3 it is blank?
See example below:
Try this expresion in DAX:
What it is doing:
Calculate(DISTINCTCOUNT(WareHouse[Value]),ALLSELECTED(WareHouse[WareHouse])) --> Gives you the total of distinct values per warehouse
If(....... =1,"",...) ---> tests for the distinct values =1, thie means they are all the same. Returns blank if that is the case, and the sum if they are different.
Thanks,
Pi
- Thor20223 years agoFrequent Visitor
Hi Pi
Thanks a lot, I will try it on Monday.
Until then, I just need to add that the profit value is a measure, not a column .. so I am not sure if this DAX can be applied?
Thanks a gain
Regards
- PaulDBrown3 years agoCommunity Champion
Here is one way. Basically you compare the sum (profit) of each warehouse with the average for all warehouses in a year.
First the model:
The calculation (without totals)
No duplicate profits = VAR _Profit = SUM ( fTable[Profit] ) VAR _Average = CALCULATE ( AVERAGE ( fTable[Profit] ), ALL ( 'Warehouse table'[Warehouse] ) ) RETURN IF ( AND ( ISINSCOPE ( 'Warehouse table'[Warehouse] ), ISINSCOPE ( 'Year Table'[Year] ) ), IF ( _Profit = _Average, BLANK (), _Profit ) )and if you need totals:
No Dups with totals = SUMX(SUMMARIZE(fTable, 'Warehouse table'[Warehouse], 'Year Table'[Year]), [No duplicate profits])Sample PBIX attached
- pi_eye3 years agoResolver IV
Hi Thor2022
This is interesting, because for some reason it's not as simple to aggregate a distinct count on another measure! However it is always possible in DAX 😉
I created a new measure rather than chain it in called "New count" which evaluates to the total number of distinct sums. I am use group by to create an aggregated table which I can pass the summed column through to a distinct count.
New Count = calculate(countx(distinct(SELECTCOLUMNS( GROUPBY(WareHouse,WareHouse[WareHouse],"SumVal",sumx(CURRENTGROUP(),WareHouse[Value])),[SumVal]) ) ,[SumVal] ),ALLSELECTED(WareHouse[WareHouse]))On it's own, it looks like this: (sorry I can't seem to cut and paste images right now)1 2 3 4 5 6 7 8 WH1 4 2 1 2 3 3 3 3 WH2 4 2 1 2 3 3 3 3 WH3 4 2 1 2 3 3 3 3 WH4 4 2 1 2 3 3 3 3 Added into the final expression gives you:
Show diff Values = If([New Count]=1,"", Sum(WareHouse[Value]))Let me know if this works,
Pi
- pi_eye3 years agoResolver IV
Hi @Thor2022
This is interesting, because for some reason it's not as simple to aggregate a distinct count on another measure! However it is always possible in DAX 😉
I created a new measure rather than chain it in called "New count" which evaluates to the total number of distinct sums. I am use group by to create an aggregated table which I can pass the summed column through to a distinct count.
New Count = calculate(countx(distinct(SELECTCOLUMNS( GROUPBY(WareHouse,WareHouse[WareHouse],"SumVal",sumx(CURRENTGROUP(),WareHouse[Value])),[SumVal]) ) ,[SumVal] ),ALLSELECTED(WareHouse[WareHouse]))On it's own, it looks like this: (sorry I can't seem to cut and paste images right now)1 2 3 4 5 6 7 8 WH1 4 2 1 2 3 3 3 3 WH2 4 2 1 2 3 3 3 3 WH3 4 2 1 2 3 3 3 3 WH4 4 2 1 2 3 3 3 3 Added into the final expression gives you:
Show diff Values = If([New Count]=1,"", Sum(WareHouse[Value]))Let me know if this works,
Pi