The tutorial explains what an Excel name is and shows how to define a name for a cell, range, constant or formula. You will also learn how to edit, filter and delete defined names in Excel.
Names in Excel are a paradoxical thing: being one of the most useful features, they are often considered pointless or nerdy. The reason is that very few users understand the essence of Excel names. This tutorial will not only teach you how to create a named range in Excel, but will also show how to leverage this feature to make your formulas much easier to write, read, and re-use.
What does name mean in Excel?
In everyday life names are widely used to refer to people, objects and geographical locations. For example, instead of saying "the city lying at latitude 40.7128° N and longitude 74.0059° W, you simply say "New York City".
Similarly, in Microsoft Excel, you can give a human-readable name to a single cell or a range of cells, and refer to those cells by name rather than by reference.
For instance, to find the total of sales (B2:B10) for a specific item (E1), you can use the following formula:
=SUMIF($A$2:$A$10, $E$1, $B$2:$B$10)
Or, you can give meaningful names to the ranges and individual cells and supply those names to the formula:
=SUMIF(items_list, item, sales)
Looking at the screenshot below, which of the two formulas are easier for you to understand?
Excel name types
In Microsoft Excel, you can create and use two types of names:
Defined name - a name that refers to a single cell, range of cells, constant value, or formula. For example, when you define a name for a range of cells, it's called a named range, or defined range. These names are subject of today's tutorial.
Table name - a name of an Excel table that is created automatically when you insert a table in a worksheet (Ctrl + T). For more information about Excel tables, please see How to make and use a table in Excel.
How to create an Excel named range
Overall, there are 3 ways to define a name in Excel: Name Box, Define Name button, and Excel Name Manager.
Type a name in the Name Box
The Name Box in Excel is fastest way to create a named range:
- Select a cell or a range of cells that you want to name.
- Type a name into the Name Box.
- Press the Enter key.
Voila, a new Excel named range is created!
Create a name by using the Define Name option
Another way to make a named range in Excel is this:
- Select the cell(s).
- On the Formulas tab, in the Define Names group, click the Define Name button.
- In the New Name dialog box, specify three things:
- In the Name box, type the range name.
- In the Scope dropdown, set the name scope (Workbook by default).
- In the Refers to box, check the reference and correct it if needed.
- Click OK to save the changes and close the dialog box.
Note. By default, Excel creates a name with absolute references. If you'd rather have a relative named range, remove the $ sign from the reference (before you do this, make sure you fully understand how relative names behave in worksheets).
Compared to the previous method, using Define Name in Excel takes a few extra clicks, but it also provides a couple more options such as setting the name's scope and adding a comment that explains something about the name. Additionally, Excel's Define Name feature allows you to create a name for a constant or formula.
Make a named range by using Excel Name Manager
Usually, the Name Manager in Excel is used to work with existing names. However, it can help you build a new name too. Here's how:
- Go to the Formulas tab > Defined Names group, click Name Manager. Or, just press Ctrl + F3 (my preferred way).
- In the top left hand corner of the Name Manager dialog window, click the New… button:
- This will open the New Name dialog box where you configure a name as demonstrated in the previous section.
Tip. To quickly test the newly created name, select it in the Name Box dropdown list. As soon as you release the mouse, the range on the worksheet will be selected.
How to create an Excel name for a constant
In addition to named ranges, Microsoft Excel allows you to define a name without cell reference that will work as a named constant. To create such a name, use either the Excel Define Name feature or Name Manager as explained above.
For instance, you can make a name like USD_EUR (USD - EUR conversion rate) and assign a fixed value to it. For this, type the value preceded by an equal sign (=) in the Refers to field, e.g. =0.93:
And now, you can use this name anywhere in your formulas to convert USD to EUR:
As soon as the exchange rate changes, you update the value only in one central location, and all of your formulas will get recalculated in a single step!
How to define a name for a formula
In a similar manner, you can give a name to an Excel formula, for example, the one that returns the count of non-empty cells in column A, excluding the header row (-1):
=COUNTA(Sheet5!$A:$A)-1
Note. If your formula refers to any cells on the current sheet, you do not need to include the sheet name in the references, Excel will do it for you automatically. If you are referencing a cell or range on another worksheet, add the sheet's name followed by the exclamation point before the cell/range reference (like in the formula example above).
Now, whenever you want to know how many items there are in column A on Sheet5, not including the column header, just type the equality sign followed by the name of your formula in any cell, like this: =Items_count
How to name columns in Excel (names from selection)
If your data is arranged in a tabular form, you can quickly create names for each column and/or row based on their labels:
- Select the entire table including the column and row headers.
- Go to the Formulas tab > Define Names group, and click the Create from Selection button. Or, press the keyboard shortcut Ctrl + Shift + F3.
- Either way, the Create Names from Selection dialogue box will open. You select the column or row with headers, or both, and click OK.
In this example, we have headers in the top row and left column, so we select these two options:
As the result, Excel will create 7 named ranges, picking up names from the headers automatically:
- Apples, Bananas, Lemons and Oranges for rows, and
- Jan, Feb and Mar for columns.
Note. If there are any spaces between words in the header labels, the spaces will be replaced with underscores (_).
Excel dynamic named range
In all previous examples, we have been dealing with static named ranges that always refer to the same cells, meaning you would have to update the range reference manually whenever you want to add new data to the named range.
If you are working with expandable data sets, it stands to reason to create a dynamic named range that accommodates newly added data automatically.
The detailed guidance on how to create a dynamic named range in Excel can be found here:
Excel naming rules
When creating a name in Excel, there are a few rules to remember:
- An Excel name should be under 255 characters long.
- Excel names cannot contain spaces and most punctuation characters.
- A name must begin with a letter, underscore (_), or backslash (\). If a name begins with anything else, Excel will throw an error.
- Excel names are case-insensitive. For example, "Apples", "apples" and "APPLES" will be treated as the same name.
- You cannot name ranges like cell references. That is, you can't give the name "A1" or "AA1" to a range.
- You can use a single letter to name a range like "a", "b", "D", etc. except for the letters "r" "R", "c", and "C" (these characters are used as shortcuts for selecting a row or column for the currently selected cell when you type them in the NameBox).
Excel name scope
In terms of Excel names, scope is the location, or level, within which the name is recognized. It can be either:
- Specific worksheet - the local worksheet level
- Workbook - the global workbook level
Worksheet level names
A worksheet-level name is recognized within the worksheet where it is located. For example, if you create a named range and set its scope to Sheet1, it will be recognized only in Sheet1.
To be able to use a worksheet-level name in another worksheet, you must prefix the worksheet's name followed by the exclamation point (!), like this:
Sheet1!items_list
To reference a worksheet-level name in another workbook, you should also include the workbook name enclosed in square brackets:
[Sales.xlsx]Sheet1!items_list
If either the sheet name or workbook name contains spaces, they should be enclosed in single quotation marks:
'[Sales 2017.xlsx]Sheet1'!items_list
Workbook level names
A workbook-level name is recognized within the entire workbook, and you can refer to it simply by name from any sheet in the same workbook.
A use to a workbook-level name in another workbook, precede the name with the workbook name (including the extension) followed by the exclamation point:
Book1.xlsx!items_list
Scope precedence
A defined name must be unique within its scope. You can use the same name in different scopes, but this might create a name conflict. To prevent this from happening, by default, the worksheet level takes precedence over the workbook level.
If there are a few identically named ranges with different scopes, and you want to use the workbook level name, prefix the name with the workbook name as if you were referring to a name in another workbook, e.g.: Book1.xlsx!data. This way, the name conflict can be overridden for all worksheets except for the first sheet, which always uses the local worksheet level name.
Excel Name Manager - quick way to edit, delete and filter names
As its name suggests, the Excel Name Manager is specially designed to manage names: change, filter, or delete existing names as well as create new ones.
There are two ways to get to the Name Manager in Excel:
- On the Formulas tab, in the Define Names group, click the Name Manager
- Press the Ctrl + F3 shortcut.
Either way, the Name Manager dialog window will open, letting you see all names in the current workbook at a glance. Now, you can select the name you want to work with, and click one of the 3 buttons at the top of the window to perform the corresponding action: edit, delete or filter.
How to edit named range in Excel
To change an existing Excel name, open the Name Manager, select the name, and click the Edit… button. This will open the Edit Name dialog box where you can change the name and reference. The scope of the name cannot be changed.
To edit a name reference, you do not need to open the Edit Name dialog box. Just select the name of interest in the Excel Name Manager, and type a new reference directly in the Refers to box, or click the button at the right and select the desired range on the sheet. After you click the Close button, Excel will ask if you want to save the changes, and you click Yes.
Tip. An attempt to navigate through a long reference or formula in the Refers to field with the arrow keys will most likely result in a very frustrating behavior. To move within this field without disrupting the reference, press the F2 key to switch from Enter to Edit mode.
How to filter names in Excel
If you have a lot of names in a certain workbook, click the Filter button at the top right corner of the Excel Name Manager window to view only the names relevant at a given time. The following filters are available:
- Names scoped to worksheet or workbook
- Names with or without errors
- Defined names or table names
How to delete named range in Excel
To delete a named range, select it in the Name Manager and click the Delete button at the top.
To delete several names, click the first name, then press the Ctrl key and hold it while clicking other names you want to remove. Then click the Delete button, and all selected names will be deleted in one go.
To delete all defined names in a workbook, select the first name in the list, press and hold the Shift key, and then click the last name. Release the Shift key and click Delete.
How to delete defined names with errors
If you have a number of invalid names with reference errors, click the Filter button > Names with Errors to filter them:
After that, select all filtered names as explained above (by using the Shift key), and click the Delete button.
Note. If any of your Excel names are used in formulas, be sure to update the formulas before deleting names, otherwise your formulas will return #NAME? errors.
Top 5 benefits of using names in Excel
So far in this tutorial, we have been focusing mostly on how-to things that cover different aspects of creating and using named ranges in Excel. But you may be curious to know what is so special about Excel names that makes them worth the effort? The top five advantages of using defined names in Excel follow below.
1. Excel names make formulas easier to make and read
You don't have to type complex references or go back and forth selecting ranges on the sheet. Just start typing the name you want to use in the formula, and Excel will show a list of matching names for you to choose from. Double click the desired name, and Excel will insert it in the formula straight away:
2. Excel names allow creating expandable formulas
By using dynamic named ranges, you can create a "dynamic" formula that automatically includes new data in calculations without you having to update every reference manually.
3. Excel names make formulas easier to re-use
Excel names make it a lot easier to copy a formula to another sheet or port a formula into a different workbook. All you have to do is create the same names in the destination workbook, copy/paste the formula as is, and you will get it working immediately.
Tip. To prevent Excel form creating new names on the fly, copy the formula as text in the formula bar instead of copying the formula cell.
4. Named ranges simplify navigation
To quickly get to a specific named range, just click on its name in the Name box. If a named range resides on another sheet, Excel will take you to that sheet automatically.
Note. Dynamic named ranges do not show up in the Name box in Excel. To see dynamic ranges, open the Excel Name Manager (Ctrl + F3) that shows full details about all names in the workbook, including their scope and references.
5. Named ranges allow creating dynamic drop-down lists
To build an expandable and updatable drop down list, make a dynamic named range first, and then create a data validation list based on that range. The detailed step-by-step instructions can be found here: How to create a dynamic dropdown in Excel.
Excel named range - tips and tricks
Now that you know the basics of creating and using names in Excel, let me share a few more tips that may prove helpful in your work.
How to get a list of all names in the workbook
To get a more tangible list of all names in a current workbook, do the following:
- Select the topmost cell of the range where you want the names to appear.
- Go to the Formulas tab > Define Names group, click Use in Formulas, and then click Paste Names… Or, simply press the F3 key.
- In the Paste Names dialog box, click Paste List.
This will insert all Excel names along with their references in the current worksheet, beginning in the selected cell.
Absolute Excel names vs. relative Excel names
By default, Excel names behave like absolute references - locked to specific cells. However, it is possible to make a named range relative to the position of the active cell at the time the name is defined. Relative names behave like relative references - get changed when the formula is moved or copied to another cell.
In fact, I cannot think of any reason why one would want to make a relative named range, except maybe when a range consists of a single cell. As an example, let's create a relative name that refers to a cell one column to the left of the current cell, in the same row:
- Select cell B1.
- Press Ctrl + F3 to open Excel Name Manager, and click the New…
- In the Name box, type the desired name, say, item_left.
- In the Refers to box, type
=A1
. - Click OK.
Now, let's see what happens when we use the item_left name in a formula, for example:
Where items_list refers to $A$2:$A$10 and sales refers to $B$2:$B$10 in the table below.
When you enter the formula in cell E2, and then copy it down the column, it will calculate the total sales for each product individually because item_left is a relative name and its reference adjusts based on the relative position of the column and row where the formula is copied:
How to apply Excel names to existing formulas
If you've defined the ranges that are already used in your formulas, Excel won't change the references to the appropriate names automatically. Though, instead of replacing references with names by hand, you can have Excel do the work for you. Here's how:
- Select one or more formula cells that you want to update.
- Go to the Formulas tab > Define Names group, and click Define Name > Apply Names…
- In the Apply Names dialog box, click on the names you want applied, and then click OK. If Excel is able to match any of the existing names with the references used in your formulas, the names will be selected for you automatically:
Additionally, two more options are available (selected by default):
- Ignore Relative/Absolute - keep this box checked if you want Excel to apply only the names with the same reference type: replace relative references with relative names and absolute references with absolute names.
- Use row and column names - if selected, Excel will rename all cell references that can be identified as the intersection of a named row and named column. For more choices, click the Options
Excel name shortcuts
As is often the case in Excel, the most popular features can be accessed in several ways: via the ribbon, right-click menu, and keyboard shortcuts. Excel named ranges are no exception. Here are three useful shortcuts to work with names in Excel:
- Ctrl + F3 to open the Excel Name Manager.
- Ctrl + Shift + F3 to create named ranges from selection.
- F3 to get a list of all Excel names in a workbook.
Excel name errors (#REF and #NAME)
By default, Microsoft Excel does its best to keep your defined names consistent and valid by adjusting range references automatically when you insert or delete cells within an existing named range. For example, if you have created a named range for cells A1:A10, and then you insert a new row anywhere between rows 1 and 10, the range reference will change to A1:A11. Similarly, if you delete any cells between A1 and A10, your named range will contract accordingly.
However, if you delete all cells that make up an Excel named range, the name becomes invalid and displays a #REF! error in the Name Manager. The same error will show up in a formula referencing that name:
If a formula refers to a non-existing name (mistyped or deleted), the #NAME? error will show up. In either case, open the Excel Name Manager and check the validity of your defined names (the fastest way is to filter names with errors).
This is how you create and use names in Excel. I thank you for reading and hope to see you on our blog next week!
107 comments
This was fantastic! Instantly bookmarked.
Hi, I would like to change the massive amount of INDIRECT function to named ranges in a spreadsheet because it is painful slow (pls. don't ask why I was using INDIRECT, it was fun for the first time). I'm storing the sales and purchases of the different years on separete worksheets. As there are many different SUM's in my main worksheet, it is hard to change the functions from INDIREKT to named ranges. Not comfortable. I'm wondering if it is possible to inject the name of the range into the functions with function to store the year value in a certain cell and by changing this value changes the function's database link.
Eg.:
this is the function with the named range of "purchases_2024" -> AB.SUM(purchases_2024;$E122;$A$122:$A$123)
I tried this in a helper cell: ="purchases_"&F1 (F1 cell conttains the year of 2023) so it gives you the value of "purchases_2023"
If I modify the base function from AB.SUM(purchases_2024;$E122;$A$122:$A$123) to AB.SUM(helper cell;$E122;$A$122:$A$123) than AB.SUM gives the error of #VALUE
Is there any comfortable way to use a function to put the name of the named range into AB.SUM?
Thanks for your help in advance!
Hi! To convert a helper cell value into a reference, you must use the INDIRECT function. A reference to the first cell of a named range cannot return all values of that range.
INDIRECT("purchases_"&F1)
Dear Alexander,
thanks for your reply!
So basicaly I can't avoid using INDIRECT function in this case :(
I was curious if I can hide a list within the named range reference, to use it in Data Validation (for a drop down). So, instead of referring to:
=MyHiddenSheet!$A$2:$A$6
I wanted to put the actual values into the reference, like this:
={"Initiate";"Plan";"Develop";"GoLive";"Monitor"}
This Named Range works in a formula, but does not seem to work in a Data Validation list.
Use case: to re-use the same list in many drop down data validations throughout a collaboration workbook. Having a single source of that list to modify if needed, but without the fear of that source being on a sheet (even if hidden) that might get accidentally deleted or modified. A named range without references to any sheets is much less likely to be messed with.
Thank you for all you guys do!
Hello Sergey!
When creating a dropdown list in the data source field, you can simply list all values for your dropdown list:
Initiate,Plan,Develop,GoLive,Monitor
You may need to use a semicolon instead of a comma depending on your Excel settings.
We have a special tutorial on this. Please see: Create drop down list in Excel: static, dynamic, editable, searchable.
I have created a data for sales unit sold by salesmen and give Name to a data range (for ex- C3 to D10). This data range has values in Column C (Name) Column D (Unit Sold). These cell data have some formatting also like colour and fonts are Bold and Italics.
I have named Cell Range C3 to D10 as Sales_Figure.
Now I want to use and repeat all these data at various places in workbook.
I used simple formula =Sales_Figure.
It gives me all values in the Name Range C3 to D10 but not providing the same formatting as its source.
Can you please help me with this issue.
Hi! You cannot copy cell formatting in Excel using formulas.
How do I
If condition true then paste named range excel formula
I have a simple question about Excel as follows.
I want to build a spreadsheet, and, in the spreadsheet, we want a simple function to operate.
We want to enter a 4-digit numeric value in a particular cell.
The numeric value will call or lookup a particular corresponding value (template #) and based on template # will populate a certain specific 7 x 3 array of text values in a specific location (location of 7x3 array text never changes, only text value within cells will change).
I guess it is a 2-stage process.
I think it can be done in Excel without VBA but need a little help to get started.
We will build a simple model now; in the end the “value” parameter can be arbitrarily large. For today, let’s say the value ranges from 0 to 9999.
The template # is fixed at 14 possible values, and the text to be filled in (the 7x3 array) is one of the 14 arrays of text values corresponding to the template parameter # selected.
What is the best way to do this?
If you have any questions, please let me know
Hello! You can create a table with two columns (for example, A1:B15). The first column will contain the 4-digit template number. The second column will contain the name of the named range (7x3 array).
You can search this table for the template parameter # (D1) using VLOOKUP or INDEX MATCH function and get the corresponding name of the named range (for example, "Range1").
You can use the INDIRECT function to get this named range.
=INDIRECT(VLOOKUP(D1,A1:B15,2,FALSE))
It is my hope that what I have to say will be of help to you in your solution.