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

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now

Reply
erchs
Frequent Visitor

Generating numbers conditional on another column

My dataset contains a variable (X) with two categories, A and B. 

The data looks like this:

 

X

A

A

A

A

B

B

B

B

 

I would like to generate a new variable, Y, such that there will be a certain percentage of 1s, 2s, etc. within the categories of X. 

 

For the data above, I have 4 As, and 4 Bs. I want to create Y so that when X='A', Y will have 50% 1s and 50% 2s. 

Similarly, when X='B', Y will have 25% 3s and 75% 4s. 

 

For the table above, the final table would look like--

 

X Y

A 1

A 1

A 2 

A 2

B 4

B 3

B 4

B 4

 

Any suggestions or clue to solving this would be much appreciated. Thank you.

1 ACCEPTED SOLUTION
Anonymous
Not applicable

Hi @erchs,

 

You can add a calculated column with RANDBETWEEN and SWITCH function to calculate the result:

 

Y = SWITCH([X],"A",SWITCH(RANDBETWEEN(0,1),0,1,2),"B",SWITCH(RANDBETWEEN(0,3),0,3,4),-1)

 

2.PNG

 

Regards,

Xiaoxin Sheng

View solution in original post

3 REPLIES 3
Anonymous
Not applicable

Hi @erchs,

 

You can add a calculated column with RANDBETWEEN and SWITCH function to calculate the result:

 

Y = SWITCH([X],"A",SWITCH(RANDBETWEEN(0,1),0,1,2),"B",SWITCH(RANDBETWEEN(0,3),0,3,4),-1)

 

2.PNG

 

Regards,

Xiaoxin Sheng

For my general understanding, would you please explain how do the % of As, Bs and Cs are being taken into consideration here? Thank you.

Anonymous
Not applicable

Hi @erchs,

 

>> would you please explain how do the % of As, Bs and Cs are being taken into consideration here? 

For random 0 to 1, each item has 50% chance. it suitable for your request A.

 I want to create Y so that when X='A', Y will have 50% 1s and 50% 2s. 

 

For random between 0 to 3, each items has 25% chance. I setting one item equal to 3(1*25%) and others to 4(3*25%), so it is suitable for you request B.

when X='B', Y will have 25% 3s and 75% 4s. 

 

Regards,

Xiaoxin Sheng

Helpful resources

Announcements
Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

Check out the October 2025 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors