Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!Calling all Data Engineers! Fabric Data Engineer (Exam DP-700) live sessions are back! Starting October 16th. Sign up.
Hi,
Curetnly I have ID (duplicated) column only (Group column does not matter) . Starting from this column I want to create a table as below
ID | Group | Rand_Num | Max_Rand_ID |
1 | A | 0.12 | 0.66 |
1 | B | 0.66 | 0.66 |
2 | A | 0.52 | 0.98 |
2 | A | 0.98 | 0.98 |
3 | B | 0.21 | 0.45 |
3 | A | 0.45 | 0.45 |
3 | A | 0.16 | 0.45 |
The process I tried is,
1. Generate a 'Rand_Num' column not adding a Colculated column but as DAX variable because I don’t want to increase the file size
2. Create 'Max_Rand by ID' (which is highest Rand_Num within each ID)
3. Iterate the table and filter only Rand_Num = Max_Rand_ID
I've tried it in many ways but I couldn't achieve the desired reault.
For example,
1 EVALUATE
2 VAR Table_rand =
3 ADDCOLUMNS ( Table1, "Rand_Num", RAND () )
4 VAR Table_rand_filtered =
5 FILTER (
6 Table_rand,
7 VAR Ran_Number = [Rand_Num]
8 RETURN
9 Ran_Number
10 = CALCULATE (
11 MAXX(Table_rand,[Rand_Num]),
12 ALLEXCEPT ( Table1, Table1[ID] )
13 )
14 )
15 RETURN
16 Table_rand_filtered
most of error happends above 10~12 rows.
It gives either only 1 row-table with highest 'Rand_num' or it give message that can't access [Rand_Num]
It seems it can't access [Rand_Num] whenever I use Calculate() function while I need it to calculate the highest [Rand_Num] for each ID
For me, it is too complecated using a virtual table which is always confusing. I will appretiate it if you let me know how to solve this problem. (also any articles I can study handling virtual tables)
Thanks.
Table_rand is a variance, when it was calculated, it is fixed, any function can change its value. so CALCULATE in your formula is invalid. it did not deploy any filter on Table_rand. MAXX alway works on the all rows of Table_rand.
Hi @colacan ,
So the way the Rand() works, I was not able to use it in a measure and select that value as highest. I tried it in Power Query as well, but that did not work either. So I created a table similiar to yours then added a Calculated Column using DAX, finally creating two measures, one that fills in every row with the highest value for each ID, and the second which fills in only if it is the highest value for that ID.
Max Rand =
VAR _curID =
MAX ( 'rand'[ID] )
VAR _calc =
CALCULATE (
MAX ( 'rand'[RANDOM] ),
FILTER ( ALLEXCEPT ( 'rand', 'rand'[ID] ), MAX ( 'rand'[ID] ) = _curID )
)
RETURN
_calc
=============================
Max Rand with highest value only =
VAR _curID =
MAX ( 'rand'[ID] )
VAR _curRand =
MAX ( 'rand'[RANDOM] )
VAR _calc =
CALCULATE (
MAX ( 'rand'[RANDOM] ),
FILTER ( ALLEXCEPT ( 'rand', 'rand'[ID] ), MAX ( 'rand'[ID] ) = _curID )
)
RETURN
IF ( _calc = _curRand, _curRand )
Let me know if you have any questions.
If this solves your issues, please mark it as the solution, so that others can find it easily. Kudos 👍are nice too.
Nathaniel
Proud to be a Super User!
Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes!
Check out the October 2025 Power BI update to learn about new features.
User | Count |
---|---|
13 | |
11 | |
9 | |
8 | |
8 |