Please Note: This article is written for users of the following Microsoft Excel versions: 2007, 2010, 2013, and 2016. If you are using an earlier version (Excel 2003 or earlier), this tip may not work for you. For a version of this tip written specifically for earlier versions of Excel, click here: Generating Unique, Sequential Names.

# Generating Unique, Sequential Names

by Allen Wyatt
(last updated September 24, 2016)

Steven is testing some software and he needs to feed into the program a bunch of "fake" names. He would like these names to be patterned such as Nameaaa, Nameaab, Nameaac, and so on through Namezzz. This would require creating 17,576 names (26 x 26 x 26). He wonders if there is an easy way to generate all these names in Excel.

This sort of repetitive task just cries out for a macro. (They are great for doing boring, dull, repetitive tasks that you don't want to do manually.) Listing 1 shows a simple macro that can do the required grunt work.

Listing 1. CreateNames macro.
```Sub CreateNames()
Dim i As Integer
Dim x As Integer
Dim y As Integer
Dim z As Integer

i = 1
For x = 97 To 122
For y = 97 To 122
For z = 97 To 122
Cells(i, 1) = "Name" & Chr(x) _
& Chr(y) & Chr(z)
i = i + 1
Next
Next
Next
End Sub
```

The macro uses three variables (x, y, and z) to serve as "counters" that control which letter of the alphabet is appended to the "name" stuffed into a cell. Notice that the For ... Next loops range from 97 to 122, which are the ASCII codes for lowercase a through z.

If you don't want to use a macro for some reason, type the following formula into cell A1 of a blank worksheet:

```="Name" & CHAR((ROW()-1)/676+97)&CHAR(MOD(
(ROW()-1)/26,26)+97)&CHAR(MOD(ROW()-1,26)+97)
```

This is a single formula, and it results in "Nameaaa" being displayed. Copy the formula down through row 17,576 and you'll have your fake names.

Note:

If you would like to know how to use the macros described on this page (or on any other page on the ExcelTips sites), I've prepared a special page that includes helpful information. Click here to open that special page in a new browser tab.

ExcelTips is your source for cost-effective Microsoft Excel training. This tip (12129) applies to Microsoft Excel 2007, 2010, 2013, and 2016. You can find a version of this tip for the older menu interface of Excel here: Generating Unique, Sequential Names.

##### Author Bio

Allen Wyatt

With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He is president of Sharon Parq Associates, a computer and publishing services company. ...

##### MORE FROM ALLEN

Getting Rid of the Ctrl+Click Message

When you add a hyperlink to a document, you can later click that link to display whatever is linked to. Beginning in Word ...

Discover More

Random OLE Bookmarks

Word has an irritating habit of placing unwanted bookmarks in a document that you've been editing for a while. These ...

Discover More

Selecting a Group of Words

Want to select a chunk of text in a document? Perhaps the easiest way to do this involves using the mouse in conjunction ...

Discover More

Professional Development Guidance! Four world-class developers offer start-to-finish guidance for building powerful, robust, and secure applications with Excel. The authors show how to consistently make the right design decisions and make the most of Excel's powerful features. Check out Professional Excel Development today!

##### More ExcelTips (ribbon)

Enforcing Moving Cells Up

When you design your worksheets, you probably want users to interact with those worksheets in specific ways. What ...

Discover More

Controlling Window Size when Opening Additional Workbooks

When you open multiple workbooks, the way in which Excel sizes them is not the best for your needs. This tip looks at a ...

Discover More

Import a bunch of ZIP Codes into Excel, and you may be surprised that any leading zeroes disappear. Here's a handy little ...

Discover More
##### Subscribe

FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."

If you would like to add an image to your comment (not an avatar, but an image to help in making the point of your comment), include the characters [{fig}] in your comment text. Youâ€™ll be prompted to upload your image when you submit the comment. Maximum image size is 6Mpixels. Images larger than 600px wide or 1000px tall will be reduced. Up to three images may be included in a comment. All images are subject to review. Commenting privileges may be curtailed if inappropriate images are posted.

What is 9 - 8?

2018-10-20 11:33:47

Rick Rothstein

Actually, since we are working with fixed ranges, we can use the square bracket shorthand notation for the Evaluate function and shorten up that code line slightly...

'========START CODE========
Sub CreateNames()

Range("A1:A17576") = [IF({1},"Name"&CHAR((ROW(A1:A17576)-1)/676+97)&CHAR(MOD((ROW(A1:A17576)-1)/26,26)+97)&CHAR(MOD(ROW(A1:A17576)-1,26)+97))]

End Sub
'========END CODE========

2018-10-20 11:32:09

Rick Rothstein

Since you know of a formula that will work, why not use it in the macro and eliminate all of that looping? The following one-liner (albeit a rather long one) macro will produce the same output as your macro does...

'========START CODE========
Sub CreateNames()

Range("A1:A17576") = Evaluate("IF({1},""Name""&CHAR((ROW(A1:A17576)-1)/676+97)&CHAR(MOD((ROW(A1:A17576)-1)/26,26)+97)&CHAR(MOD(ROW(A1:A17576)-1,26)+97))")

End Sub
'========END CODE========

Note: If you only want to create a partial list, say 5000 names instead of the entire list of 17576 total names, simply change the range you are assigning to from Range(*A1:A17576") to Range("A1:A5000")... nothing else has to change.

2016-09-24 05:36:28

This is OK for a batch run but not for something you use and close and use again the next day. e.g. an invoice.

I did a work around macro on this on a job order printed form. It is like hiding in plain sight.
I have a serial number in cell k4 in white text on a white background so you cannot see it or print it, and the row is hidden to avoid mistaken erasing.
Then in K5 I have =K4+1 in black.
I put in the detail and print the form and then make K4 value = K5 value and start again.
This way the serial number stays there when the sheet is saved and closed and starts up again from the same place.
It's not very fancy or robust but it works well. There is probably a better way though.

##### This Site

Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.