How to create random numbers, text strings, dates and time values
The RAND() function In Excel returns a number greater than or equal to 0 (zero) and less than 1. Combining the RAND() function with a few other functions makes it possible to create random numbers, text, dates and time values.
I will in this article demonstrate what they do and how these formulas work. Update! The RANDBETWEEN function is in many cases a better and easier function, I have added formulas for this option as well.
1. Random numbers
This example demonstrates the RAND function returning a number greater than or equal to 0 (zero) and less than 1 each time a worksheet is recalculated.
Formula in cell A1:
Press F9 to recalculate all sheets in all open workbooks, this will also create a new random number in cell A1, see animated image above.
1.1 How can we use this function to return numbers between or equal to 0 and 100?
Formula in cell A3:
ROUNDUP(number, num_digits) rounds a number up, away from zero.
The RANDBETWEEN function is a better choice in this case.
1.2 How to return numbers between or equal to -50 and 50?
Formula in cell A5:
ROUNDUP(number, num_digits) rounds a number up, away from zero.
If you use the RANDBETWEEN function the formula becomes:
2. Random text strings
A character in Excel is represented by a number based on the character set, in windows ANSI. A to Z are 65 to 90 and a to z are 97 to 122.
=CHAR(number) returns the character specified by the code number from the character set of your computer.
You can use the CHAR, RAND and ROUNDUP function to return random characters, now let me show you how.
2.1 A random uppercase letter
The following formula returns a single random uppercase letter from A to Z.
Formula in B2:
or use the RANDBETWEEN function which makes the formula smaller and easier to understand.
2.2 A random lowercase letter
The following formula returns a single random lowercase letter from a to z.
Formula in C2:
or a better formula:
2.3 A random lowercase or uppercase letter
This formula returns a random lowercase or uppercase letter.
Formula in D2:
A formula based on the RANDBETWEEN function:
2.4 Three random uppercase letters
This formula concatenates three random uppercase letter A to Z.
Formula in B3:
A formula based on the RANDBETWEEN function:
2.5 Three random lowercase letters
This formula concatenates three random lowercase letter a to z.
Formula in C3
A formula based on the RANDBETWEEN function:
2.6 Three random lowercase and uppercase letters
The forllowing formula returns three random letters that may be lowercase or uppercase.
Formula in D3:
A formula based on the RANDBETWEEN function:
Explaining RANDBETWEEN formula in cell D3
Step 1 - Create arandom number between 0 and 1
The RAND function has no arguments, it simply returns a number between 0 and 1.
RAND()
returns 0.377261423327488 (random number)
Step 2 - If random number is smaller than 0.5
The IF function checks if the logical expression RAND()<0.5 is TRUE or FALSE, if TRUE one thing happens in the second argument and if FALSE another thing happens in the third argument.
IF(RAND()<0.5, CHAR(RANDBETWEEN(65, 90)), CHAR(RANDBETWEEN(97, 122)))
becomes
IF(0.377261423327488<0.5 , CHAR(RANDBETWEEN(65, 90)), CHAR(RANDBETWEEN(97, 122)))
becomes
IF(TRUE , CHAR(RANDBETWEEN(65, 90)), CHAR(RANDBETWEEN(97, 122)))
becomes
CHAR(RANDBETWEEN(65, 90))
and returns a random uppercase letter.
Step 3 - Concatenate characters
The ampersand character concatenates the upper and lower case letter
IF(RAND()<0.5, CHAR(RANDBETWEEN(65, 90)), CHAR(RANDBETWEEN(97, 122)))&IF(RAND()<0.5, CHAR(RANDBETWEEN(65, 90)), CHAR(RANDBETWEEN(97, 122)))&IF(RAND()<0.5, CHAR(RANDBETWEEN(65, 90)), CHAR(RANDBETWEEN(97, 122)))
may become "X"&"h"&"A"
3. Random dates
Excel uses numbers as dates, called the 1900-system. The earliest date you can use is 1900-01-01 and it is represented by number 1. 2012-01-01 is 40909 and is also 40909 days later from the date 1900-01-01.
Now we know how dates in Excel work, let's say you want to create a random number between 2012-01-01 and 2012-12-31. 2012-01-01 is 40909 and 2012-12-31 is 41274. 41274 - 40909 = 365 days.
Now it is time to construct the formula.
Formula in cell A7:
A formula based on the RANDBETWEEN function:
4. Random time values

4.1 Random hours, minutes and seconds
Formula in cell B3:
Cell B3 is formatted as time.
4.2 Random hours
Formula in cell B4:
A formula based on the RANDBETWEEN function:
4.3 Random minutes
Formula in cell B5:
A formula based on the RANDBETWEEN function:
4.4 Random hours and minutes
Formula in cell B6:
A formula based on the RANDBETWEEN function:
4.5 Random minutes and seconds
Formula in cell B7:
Random category
Question: How do I create a random list of unique numbers from say 1 to 10, without using VBA and […]
This article describes how to create a random playlist based on a given number of teams using an array formula. […]
Mark G asks: 1 - I see you could change the formula to have the experssion COUNTIF($C$1:C1, $E$2:$E$5)<5 changed so […]
Excel categories
2 Responses to “How to create random numbers, text strings, dates and time values”
Leave a Reply
How to comment
How to add a formula to your comment
<code>Insert your formula here.</code>
Convert less than and larger than signs
Use html character entities instead of less than and larger than signs.
< becomes < and > becomes >
How to add VBA code to your comment
[vb 1="vbnet" language=","]
Put your VBA code here.
[/vb]
How to add a picture to your comment:
Upload picture to postimage.org or imgur
Paste image link to your comment.
You can simplify your random upper or lower case letter formula like this...
=CHAR((ROUNDUP(RAND()*26,0)+64+32*(RAND()<0.5)))
and, of course, you can simplify your 3 upper or lower case letters formula using this as well.
Rick Rothstein (MVP - Excel),
Thanks!!