Forum Discussion
DAX to flag sample based on ID
- 3 months ago
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 🙂
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",
""
)
Only the blanks are getting flagged
A measure or a calculated table is fine too.
- oussamahaimoud3 months agoMemorable Member
Sample Flag =
VAR AllSalesIDs =
DISTINCT( 'Sales'[Sales ID] )
VAR TotalIDs =
COUNTROWS( AllSalesIDs )
VAR RankedIDs =
ADDCOLUMNS(
AllSalesIDs,
"@Rank", RANDBETWEEN( 1, TotalIDs * 100 )
)
VAR Top3IDs =
TOPN( 3, RankedIDs, [@Rank], ASC )
-- Store the 3 selected IDs as a simple list
VAR SelectedIDs =
SELECTCOLUMNS( Top3IDs, "@SelID", 'Sales'[Sales ID] )
-- Use COUNTROWS + FILTER instead of CONTAINS
VAR CurrentID = 'Sales'[Sales ID]
VAR IsSelected =
COUNTROWS(
FILTER( SelectedIDs, [@SelID] = CurrentID )
) > 0
RETURN
IF( IsSelected, "Sample", "" )
- buttercream3 months agoHelper II
This also hangs.
- oussamahaimoud3 months agoMemorable Member
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 🙂