Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

We've captured the moments from FabCon & SQLCon that everyone is talking about, and we are bringing them to the community, live and on-demand. Starts on April 14th. Register now

Reply
k_mathana
Helper II
Helper II

Random Sample per Category

Hi

Could you please help me to figure out this, I need to select randomly 2 order number from each category. How I can do this in power BI?

CategoryOrder Number
Category A1131292
Category A1131240
Category A1131285
Category A1131278
Category A1131287
Category B1131256
Category B1131262
Category B1131259
Category B1131238
Category C1131260
Category C1131245
Category C1131244
Category C1131281
Category C1131240
Category C1131294
Category C1131273
1 ACCEPTED SOLUTION
Anonymous
Not applicable

I don't really know why those 2 specific orders are shown... I just used the standard function SAMPLE(). Please go through the following link and you can further parametrize the function.

https://docs.microsoft.com/en-us/dax/sample-function-dax

 

If this solution does not meet your requirements, then you will have to consider ranking the orders using RANKX() and then use RANDBETWEEN() to generate a random number between the lowest and highest rank of each category and then pick any two randomly for each category, then do a cross join or use GENERATE in that context.

View solution in original post

3 REPLIES 3
Anonymous
Not applicable

Assume that you have the following table named "Orders"

sreenathv_0-1614849032504.png

The following calculated table expression gives you the sample table.

sreenathv_1-1614849078059.png

 

Anonymous
Not applicable

I don't really know why those 2 specific orders are shown... I just used the standard function SAMPLE(). Please go through the following link and you can further parametrize the function.

https://docs.microsoft.com/en-us/dax/sample-function-dax

 

If this solution does not meet your requirements, then you will have to consider ranking the orders using RANKX() and then use RANDBETWEEN() to generate a random number between the lowest and highest rank of each category and then pick any two randomly for each category, then do a cross join or use GENERATE in that context.

Thank you so much for your time @Anonymous, Yes that becomes deterministic value. I did the same as you suggested added RAND() column and created a table as follows

 

Sampler = GENERATE(
ALLNOBLANKROW( Orders[Category] ),
CALCULATETABLE(
TOPN(
2,
SELECTCOLUMNS(Orders, "Order Number", [Order Number], "RanNum", [RanNum]),
[RanNum],ASC
)
)
)

Helpful resources

Announcements
New to Fabric survey Carousel

New to Fabric Survey

If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.

Join our Fabric User Panel

Join our Fabric User Panel

Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.

March Power BI Update Carousel

Power BI Community Update - March 2026

Check out the March 2026 Power BI update to learn about new features.