Forum Discussion
DAX to flag sample based on ID
Hi,
How do I flag 3 Sales Ids randomly from a table that looks like this:
| Sales ID | Date | Item | Price |
| 111 | 3/29/2026 | 390 | 27 |
| 111 | 3/29/2026 | 613 | 33 |
| 111 | 3/29/2026 | 211 | 41 |
| 112 | 4/1/2026 | 184 | 26 |
| 113 | 4/4/2026 | 239 | 34 |
| 113 | 4/4/2026 | 276 | 23 |
| 114 | 4/15/2026 | 741 | 33 |
| 114 | 4/15/2026 | 514 | 40 |
| 114 | 4/15/2026 | 585 | 14 |
| 114 | 4/15/2026 | 668 | 26 |
| 115 | 4/28/2026 | 738 | 23 |
| 116 | 5/1/2026 | 134 | 48 |
Ideally a DAX column that says "Sample" for 3 Sales Ids?
Really !? 🤔
Now, try this :
Sample Flag =
VAR CurrentID = 'Sales'[Sales ID]
VAR AllSalesIDs =
DISTINCT( 'Sales'[Sales ID] )
VAR RankedIDs =
ADDCOLUMNS(
AllSalesIDs,
"@Rand", MOD( 'Sales'[Sales ID] * 1140671485 + 128201163, 134456 )
)
VAR Top3IDs =
TOPN( 3, RankedIDs, [@Rand], ASC )
VAR IsSelected =
COUNTROWS(
FILTER( Top3IDs, 'Sales'[Sales ID] = CurrentID )
) > 0
RETURN
IF( IsSelected, "Sample", "" )
Hope this helps! Don't forget to mark as solution and 👍 in order to keep helping others 🙂
9 Replies
- oussamahaimoud
Memorable Member
Hi buttercream,
Hope you're doing well!
Try this code :
Sample Flag =
VAR AllSalesIDs =
DISTINCT( 'Sales'[Sales ID] )VAR TotalIDs =
COUNTROWS( AllSalesIDs )-- Assign a random rank to each unique Sales ID
VAR RankedIDs =
ADDCOLUMNS(
AllSalesIDs,
"@Rank", RANDBETWEEN( 1, TotalIDs * 100 )
)-- Pick the 3 Sales IDs with the lowest random rank
VAR Top3IDs =
TOPN( 3, RankedIDs, [@Rank], ASC )VAR SelectedIDs =
SELECTCOLUMNS( Top3IDs, "SelID", 'Sales'[Sales ID] )RETURN
IF(
CONTAINS( SelectedIDs, [SelID], 'Sales'[Sales ID] ),
"Sample",
""
)Hope this helps! Don't forget to mark as solution and thumbs up in order to keep helping others.
- buttercream
Helper II
Hey man. Thanks for this but my Power BI just hangs when using it.
- oussamahaimoud
Memorable Member
Try this instead:
Sample Flag =
VAR AllSalesIDs =
ADDCOLUMNS(
DISTINCT( 'Sales'[Sales ID] ),
"@Hash", MOD( 'Sales'[Sales ID] * 2654435761, 100000 )
)
VAR Top3IDs =
TOPN( 3, AllSalesIDs, [@Hash], ASC )
VAR SelectedIDs =
SELECTCOLUMNS( Top3IDs, "SelID", 'Sales'[Sales ID] )
RETURN
IF(
CONTAINS( SelectedIDs, [SelID], 'Sales'[Sales ID] ),
"Sample",
""
)
- ryan_mayu
Super User
what's the expected output? could you pls explain the calculation logic as well?