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
Regarding https://www.ablebits.com/office-addins-blog/excel-named-range/
Excel named range - how to define and use names in Excel
Fourth */bullet under 'Excel naming rules' states, "Excel names are case-insensitive. For example, "Apples", "apples" and "APPLES" will be treated as the same name." If "Excel names are case-insensitive", then why are "Apples", "apples" and "APPLES" treated the same name?
Place Apples in A1, apples in A2, and APPLES in A3.
In A4 place = EXACT(A1,A2:A3) and the results are FALSE and FALSE.
Place Apples in B1, B2, and B3.
In B4 place = EXACT(B1,B2:B3) and the results are TRUE and TRUE.
Hi! Read the article above carefully. A cell name or range name is not the same as a cell value. The EXACT function compares cell values, not cell names.
When I sort rows in my table, the cell names seem to hold their position in the table, they do not follow the cell as it is sorted. Is this normal, and if so is there are way to have the cell name follow the data in the cell?
Hi! Unfortunately, the cell name is the absolute address of the cell. The value of a cell has nothing to do with the cell name.
Hello! Can you tell me the formula for how I would change one word to another word? For example, lets say whenever I type "MWF" I want it to change to "Monday, Wednesday, Friday". I was under the impression the formula would look like this, =("Monday","Wednesday","Friday") but I continue to get an error message because the formula doesn't start with an underscore.
Thank you for your help!
Hi! If I understand your task correctly, this article may be helpful: How to customize or stop AutoCorrect in Excel.
If I understand correctly, you want to have a shortcut by assigning a (long) text to a short variable.
Create a name MWF that refers to ="Monday, Wednesday, Friday".
If you put the formula =MWF into any cell, then you get your desired text displayed.
Hi! To get a text string using a formula, you can create a user-defined function MWF using VBA. Read more: How to create and use User Defined Functions in Excel.
Hai, is there a way to use Excel name but only a specific column?
For example, I create an Excel name called SALES, contain column A (SALESMAN) and column B (NETTO). So the SALES name refer to DATA!$A:$B.
If I want to use only the column B, can I call it with the Excel name? What is the format I can use?
Let say using SUM function.
Rather than using =SUM(DATA!$B:$B) , can I use maybe =SUM(SALES[2]) or something like that?
Hi! You can create a separate named range for column B and name it SALES[2].
I've created a list of clients and their addresses so that when I type reports I can just go in and enter the = symbol and their acronym. However, in some fields when i try to enter the creat3ed acronym it displays 'SPILL". What am I doing wrong.
Hi! I don't know what characters you are entering the cell. It might be the name of a named range. I recommend this manual: Excel #SPILL! error - causes and fixes.
how we can change the scope in Name Manager. I have around 100 name ranges. I want to change the scope from WorkSheet to WorkBook. Please guide.
I don't think there are any standard Excel tools to do this automatically.
I have 10 different names in 10 different rows. I want to assign a particular rate (value) for each name in the rates column and the same rate should appear in the rates column for each name whenever i enter the name again in any other row. How can i do it?
Hi! To find and insert a value that matches a specific name, use the VLOOKUP function. Here are detailed instructions with examples: Excel VLOOKUP function tutorial with formula examples.
Hello, it is possible to use defined names in Headers/Footers in the Print Dialog box?
Hi, I'm trying to create a countif formula in cell B2 where the range is pulling in from A2 and the criteria is pulling in from B1, showing the results in B2. I've created named ranges for the different data sets I need to search in, but can't figure out how to enter them into the A column so that the formula can be easily copied down in column B.
Currently the formula that is working is =COUNTIF(_10016,B1) where __10016 is the named range. What I'd like to accomplish is to have the named range listed in column A and have the formula in B2 =COUNTIF(A2,B1) where A2 is referencing a range. Is this possible?
Hello!
To create a dynamic reference to a named range in your formula, use the INDIRECT function. This instruction should help: Using the INDIRECT function with named ranges. I hope my advice will help you solve your task.
How can i change click on the define name option to I want change only name to numbers.... Plz could u help me on this,.....
Sorry one more thing: I have been very careful not to use any volatile functions in these formulas.
I am a big fan of your blog and advice.
My question: I am trying to figure out the relative efficiencies of:
-Using a reasonably complex array formula [Complex Formula] many times throughout a worksheet, sometimes directly, sometimes as an intermediate calculation for some more complex formulas;
-Putting [Complex Formula] into a dynamic named range and using the named range throughout the worksheet;
-Storing [Complex Formula] in a particular location in the worksheet and referring to it when needed by a statement such as: TabOne!AZ20#
-Storing [Complex Formula] in a particular location in the worksheet (as directly above) but giving the cell (in the above case, TabOne!AZ20#) a named range
-Is there any significant performance burden/benefit to using: Let(ComplexFormula, TabOne!AZ20#...) as an alternative?
For ease of administration I would like to use some version of named range (ideally the dynamic version) but if some versions are much more efficient, I will consider them more strongly. Do you have any advice?
I understand this will be somewhat contingent on particular formulas, etc. but any general guidelines would be greatly appreciated.
If I have a list of names, First names in column A, Last names in Column B, and Phone numbers in Column C Is there a way to lookup people by their first name and list everyone with that first name? For example, there are 2 Chris's on the list but would like them to both be listed with their last name and phone numbers. When I do an xlookup I have been able to pull the first Chris listed in the data but not the rest of them. I can always make it search both for first and last but would like it to be able to be searchable by first name so it gives a list of options in case they forgot which Chris they were searching for. Hope that makes sense. Thanks!
Also, I thought about doing last names but we have duplicates of those as well. Any input would be appreciated. Love your work!
Hello!
If you want to get a list of values by one column, use this guide: How to VLOOKUP multiple values in Excel with criteria.
If you want to get a table of values from multiple columns, use the FILTER function. For detailed instructions and examples, see this article.
I hope it’ll be helpful.
If I have a list of 50 in an Excel sheet, is there a way to BULK Name the Sheets with each Cell Value being the name of the Sheets in ascending order? Can this be done with VBA etc.?
Hello!
Perhaps you will be useful Excel macro to copy sheet and rename based on cell value.
How do you refer to a NAMED RANGE in an Excel formula when you don't know the name of the NAMED RANGE and have to pick it up DYNAMICALLY from the data that appears as Text in a cell in the same worksheet.
e.g.
Row N2 generates the name of the NAMED RANGE based on data in fields A2 to L2. The name is in "Text" format.
Row O2 is supposed to use that NAMED RANGE in a formula to generate further data.
How do I refer to the NAMED RANGE in Row O2 using the data in N2?
Thank you for your help
Hello!
You can refer to a named range by using its name in a cell, using the INDIRECT function. The following tutorial should help: INDIRECT with named ranges.
I hope it’ll be helpful.
Hello
Your Website (and Blog) is Absolutely Incredible!!!
You always don't skimp on Elaborating Every Topic, with Abundance of Explanatory Illustrative Pictures, going-by and showing step-by-step, how to Get Things DONE!
giving Plenty of Examples and Interesting (and also, sometimes, Bizarre) Use Cases!
It is Nearly IMPOSSIBLE to find a Subject or a Term you hadn't Dug-Up Inside-Out .
Most of the time, BETTER THAN THE OFFICIAL Support and Documentation Website (or Webpages) of Microsoft themselves!!!
THANK YOU!!!
HOWEVER, I have Found such a Topic, where you are Lagging Far Behind one of the other "Excel-Pro-For-Beginners-and-Everyone"'s sites:
The topic is: The Copious Usage and Capabilities of THE NAME BOX!
I would be VERY HAPPY, if you had Compiled such a Guide of you own at Your Website.
All the Best,
and Keep On the Good Work!
When you copy a sheet with a Name to a new file, the reference of the Name remains pointing to the source file; it's possible to change this reference with formulas or commands to avoid doing this manually?
Hello!
You can use the Find & Replace tool to bulk replace references in formulas in a worksheet.
Thanks for this post. It was exactly what I was looking for.
Had to sort who worked on which jobs and calculate their hours per job and get a total of hours. This helped refresh my memory as I have not worked with this in a long time.
Is there a possible way for excel to state exactly the named cell from another worksheet inside that workbook in the formula to reference a sheet name! Named range?
For example: =SUMIF(Toronto!costanalysis.
I'm not getting this I'm getting =SUMIF(Toronto!A139
Your feedback would be great! I already checked to Make sure defined name was set to Workbook.
Hi, I am creating a report for review purposes and I need a specific cell to always display a text even after I add rows/columns. For example, I need Cell F2 to always show Text: "Day 1" even if I insert rows before column F. This shall be a daily revolving report.
Please advise.
Thanks
I meant: Even if I insert COLUMNS before column F