Forum Discussion
Mode mesaure for Virtual Table
- 4 years ago
Sure, just saw your update 🙂
I would then lump the two conditions (nonblank [VrtValue] and [Frequency] > 1 ) into a FILTER around GROUPBY:
VAR VrtTable = UNION ( ROW ( "VrtValue",[Product Count]), ROW ( "VrtValue", [-1M] ), ROW ( "VrtValue", [-2M] ), ROW ( "VrtValue", [-3M] ), ROW ( "VrtValue", [-4M] ), ROW ( "VrtValue", [-5M] ) ) VAR ValueFrequency = FILTER ( GROUPBY ( VrtTable, [VrtValue], "Frequency", SUMX ( CURRENTGROUP (), 1 ) ), NOT ISBLANK ( [VrtValue] ) && [Frequency] > 1 ) VAR Mode = -- MINX returns the smallest value in case of ties MINX ( TOPN ( 1, ValueFrequency, [Frequency] ), [VrtValue] ) RETURN ModeRegards,
Owen
Dear Owen,
The solution you've provided works almost perfectly. Just one criteria is needed:
Somehow we need to generate the MODE result only if FREQUENCY is MORE than ONE.
As you can see - The mode result is right when the frequency is more than one. So, Where should I put thia criteria, please advise.
Thanks in advance,
..And one more thing - The grouping should ignore BLANK values. As given below:
The mode of that highlighted group should give 2400 as the Mode result. Now it's blank.
- OwenAuger4 years ago
Super User
Sure, just saw your update 🙂
I would then lump the two conditions (nonblank [VrtValue] and [Frequency] > 1 ) into a FILTER around GROUPBY:
VAR VrtTable = UNION ( ROW ( "VrtValue",[Product Count]), ROW ( "VrtValue", [-1M] ), ROW ( "VrtValue", [-2M] ), ROW ( "VrtValue", [-3M] ), ROW ( "VrtValue", [-4M] ), ROW ( "VrtValue", [-5M] ) ) VAR ValueFrequency = FILTER ( GROUPBY ( VrtTable, [VrtValue], "Frequency", SUMX ( CURRENTGROUP (), 1 ) ), NOT ISBLANK ( [VrtValue] ) && [Frequency] > 1 ) VAR Mode = -- MINX returns the smallest value in case of ties MINX ( TOPN ( 1, ValueFrequency, [Frequency] ), [VrtValue] ) RETURN ModeRegards,
Owen
- George19734 years ago
Helper V
This is it! You made it! :))))))
Thank you very much!
Works perferctly