MrExcel Message Board

Go Back   MrExcel Message Board > Question Forums > Excel Questions

Excel Questions All Excel/VBA questions - formulas, macros, pivot tables, general help, etc. Please post to this forum in English only.

Reply
 
Thread Tools Display Modes
Old May 15th, 2002, 03:16 PM   #1
rich987652
New Member
 
Join Date: May 2002
Posts: 25
Default

I am trying to devise a simple spreadsheet to pick some employees who should take a random drugs and alcohol test.

I have been using the RANDBETWEEN function which works fine with one exception. If for instance, I ask for 10 numbers to be generated using the RANDBETWEEN function, then often one number gets selected more than once leaving me with less than the required number of people.

I have used an array formula to identify cells that have been replicated, so that I can leave an error message which tells the user to press F9 to regenerate the numbers.

But this is awkward, is there any way I can prevent one number being generated more than once ??

Hope I have explained myself adequately.

Richard
rich987652 is offline   Reply With Quote
Old May 15th, 2002, 03:42 PM   #2
Paul B
Board Regular
 
Join Date: Feb 2002
Location: Georgia USA
Posts: 544
Default

Have a look at http://www.mrexcel.com/board/viewtop...c=8324&forum=2
Paul B is offline   Reply With Quote
Old May 15th, 2002, 03:51 PM   #3
Nimrod
MrExcel MVP
 
Join Date: Apr 2002
Location: Vancouver BC , Canada
Posts: 6,259
Default

This will generate a set of 5 random numbers ... to make a longer set just specify a different column letter in the Range setting i.e. change ("B1:F" to ("B1:H" for a set of 10 numbers.
Code:
Public Sub RandNum7()
    Randomize
    Cells.Clear
    For Each c In Range("B1:F" & (InputBox("how many sets?")))
TryAgain:
            c.Value = (Int((99 * Rnd) + 1))
            If Not Range(Cells(c.Row, 1), Cells(c.Row, (c.Column - 1))).Find(c.Value, LookIn:=xlValues) Is Nothing Then GoTo TryAgain
        Next c
End Sub

[ This Message was edited by: Nimrod on 2002-05-15 14:51 ]
Nimrod is offline   Reply With Quote
Old May 15th, 2002, 04:03 PM   #4
Nimrod
MrExcel MVP
 
Join Date: Apr 2002
Location: Vancouver BC , Canada
Posts: 6,259
Default

This one will prompt you for how many random numbers to generate and then generate (n)uniuque numbers ... cheers
Code:
Public Sub RandNum9()
    'the row of random numbers are unique within the row
    Randomize
    Cells.Clear
    For Each c In Range(Cells(1, 2), Cells(1, 1 + (Val(InputBox("how many numbers?")))))
TryAgain:
            c.Value = (Int((99 * Rnd) + 1))
            If Not Range(Cells(c.Row, 1), Cells(c.Row, (c.Column - 1))).Find(c.Value, LookIn:=xlValues) Is Nothing Then GoTo TryAgain
        Next c
End Sub
To change the number range modify((99 * Rnd) + 1)) this range is from 1 to 99

Just cut and paste this into your workbook module and your ready to rock-n-roll

OR modify program so it asks for your range:
Code:
Public Sub RandNum10()
' Generate one row of variable length
    Randomize
    Cells.Clear
    
    LowNum = (Val(InputBox("Lowest # ?")))
    HighNum = (Val(InputBox("Highest # ?")))
    
    For Each c In Range(Cells(1, 2), Cells(1, 1 + (Val(InputBox("how many numbers?")))))
TryAgain:
            c.Value = (Int((HighNum * Rnd) + LowNum))
            If Not Range(Cells(c.Row, 1), Cells(c.Row, (c.Column - 1))).Find(c.Value, LookIn:=xlValues) Is Nothing Then GoTo TryAgain
        Next c
End Sub


[ This Message was edited by: nimrod on 2002-05-15 16:04 ]
Nimrod is offline   Reply With Quote
Old May 15th, 2002, 04:30 PM   #5
Mark O'Brien
MrExcel MVP
 
Mark O'Brien's Avatar
 
Join Date: Feb 2002
Location: Columbus, OH, USA
Posts: 3,519
Default

..or you could just make sure that any suspected junkies or alcoholics are assigned that number.
__________________
Mark O'Brien

Columbus Ohio Celtic Supporters Club
Mark O'Brien is offline   Reply With Quote
Old May 15th, 2002, 04:50 PM   #6
Nimrod
MrExcel MVP
 
Join Date: Apr 2002
Location: Vancouver BC , Canada
Posts: 6,259
Default

Yea but Mark what company can survive without an IT dept?
__________________

<MARQUEE>...........Never be afraid to try something new. Remember, amateurs built the ark, professionals built the Titanic...............The easiest thing to find is fault, don't be easy !.. --Anonymous--...</marquee>
Nimrod is offline   Reply With Quote
Old May 15th, 2002, 05:29 PM   #7
Chris Davison
MrExcel MVP
 
Join Date: Feb 2002
Location: Millbank, London, UK
Posts: 1,790
Default

Chris Davison is offline   Reply With Quote
Old May 15th, 2002, 05:36 PM   #8
Mark W.
MrExcel MVP
 
Join Date: Feb 2002
Location: Austin, Texas USA
Posts: 11,654
Default

See my posting at http://www.mrexcel.com/board/viewtop...c=8146&forum=2...

Or...

If you'd like to choose a random sample from a list of names apply an Advanced AutoFilter with a computed criteria using the formula...

=RAND()<=0.025

...to pull a random, percentage-based sample of your list (in the case above -- 2.5% of the names listed).

For more on this approach see the Excel Help topic for "Examples of advanced filter criteria" and take note of the paragraph titled, "Conditions created as the result of a formula".

[ This Message was edited by: Mark W. on 2002-05-15 16:39 ]
Mark W. is offline   Reply With Quote
Old May 15th, 2002, 05:45 PM   #9
Nimrod
MrExcel MVP
 
Join Date: Apr 2002
Location: Vancouver BC , Canada
Posts: 6,259
Default

-Studies show the people that consume large quantities of drugs and alcohol are less ambitious , low self-esteem and more likely to be divorced.

-Other studies show that copious corporate expenditures occur from : ambitious employees leaving the company for promotions, employees unwilling to work late due to home-life, and employees thinking their above corporate directives (i.e. high self-esteem !

Question: Shouldn’t corporations be encouraging consumption of drugs and alcohol ?


[ This Message was edited by: Nimrod on 2002-05-15 16:46 ]
Nimrod is offline   Reply With Quote
Old May 19th, 2002, 02:06 PM   #10
verluc
Board Regular
 
Join Date: Mar 2002
Posts: 1,288
Default

Quote:
On 2002-05-15 14:51, Nimrod wrote:
This will generate a set of 5 random numbers ... to make a longer set just specify a different column letter in the Range setting i.e. change ("B1:F" to ("B1:H" for a set of 10 numbers.
Code:
Public Sub RandNum7()
    Randomize
    Cells.Clear
    For Each c In Range("B1:F" & (InputBox("how many sets?")))
TryAgain:
            c.Value = (Int((99 * Rnd) + 1))
            If Not Range(Cells(c.Row, 1), Cells(c.Row, (c.Column - 1))).Find(c.Value, LookIn:=xlValues) Is Nothing Then GoTo TryAgain
        Next c
End Sub

[ This Message was edited by: Nimrod on 2002-05-15 14:51 ]
Hi, your macro is very useful for me.Is it possible to change your macro in the way that the difference between the numbers in a row is not more then 15
Many thanks for help
verluc is offline   Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On

Forum Jump


All times are GMT -4. The time now is 04:26 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
All contents Copyright 1998-2012 by MrExcel Consulting.
diabetic desserts recipes recipes Diabetic Soups Holiday Pizza Recipes Popcorn Recipes Recipes For Microwave Pasta Recipes Casserole Recipes Chili Recipes Curry Recipes Crockpot Recipes Apples Recipes Bread Recipes Vegetarian Recipes Vegetable recipes Desserts Recipes Appetizers Ethnic Recipes Meat Dishes Barbecue Recipes Sauces Recipes Marinade Recipes Low Fat Recipes Frugal Gourmet Kitchen Classics Recipes On The Grill Cook Books Seafood Recipes Cajun Recipes Breads Low Fat Low Fat Breads Bread Machine Recipes Yeast Breads Quick Breads Fat Free Vegetarian Salad Recipes Eggplant Recipes Radish Recipes Tomato Recipes Jalapeno Recipes Potato Recipes Lettuce Recipes Cabbage Recipes Beans Ambrosia Recipes Biscotti Recipes Desserts Low Fat Cookie Recipes Cheesecake Recipes Cake Recipes Pie Recipes Muffin Recipes Custard Recipes Best Appetizers Appetizers Low Fat Salsa Recipes Dip Recipes International Recipes Afghan Recipes Alaska Recipes French Recipes German Recipes Greek Recipes Italian Recipes Spanish Recipes Thai Recipes Korean Recipes Chinese Recipes Mexican Recipes Indian Recipes Beef Recipes Pork Pork & Ham Pork Butts Pork Chop Recipes Pork Ribs Rulled Pork Poultry Recipes Stews Recipes Ground Beef Barbecue Grill Barbecue Smoker All Purpose Sauce BBQ Sauce Barbecue Sauce Carolina BBQ Sauce Pickle Recipes Marinades Smoking Low Fat Appetizers & Dips Low Fat Breakfast Low Fat Cakes Low Fat Cheesecakes Low Fat Cookies Low Fat Desserts Low Fat Fish & Seafood Low Fat Meats Low Fat Pasta Low Fat Pies Low Fat Salads Low Fat Sandwiches Low Fat Sauces & Condiments Low Fat Sides Low Fat Soups Low Fat Vegetarian Baker's Dozen Taste of Home Recipe Book Bon Appetit Cookbook Blacktie Cookbook Buster Cook Book Cookbook USA Cook Book Cook Book Sara's Cookbook Sara's Cookbook Appetizers and Dips Poultry recipes Diabetic recipes Holiday recipes Miscellaneous recipes 110 recipes 1986 Usenet cookbook 2900 recipes Cyberrealm recipes Great sysops of world Specialty recipes Ceideburg recipes Cheese recipes Chili recipes Fruits recipes Garlic recipes Great chefs of NY Londontowne recipes Raisins recipes Recipes for kids US Food Vegetarian recipes Bread recipes Drinks Meat Dishes Brisket recipes Caribou recipes Chicken recipes Filet mignons recipes Pork recipes Swordfish recipes Turkey recipes Pasta recipes Uncategorized recipes Ethnic recipes Canada recipes English recipes Ethiopia recipes Germany recipes Greece recipes Mexican recipes Philippines recipes Welsh recipes Microwave recipes Soups recipes Vegetable recipes Asparagus recipes Barley recipes Brown rice recipes Lentil recipes Mushrooms recipes Salads recipes Wild rice Desserts recipes Cakes recipes Chocolate recipes Cookies recipes Ice cream recipes