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
Hi,
I want to start by thanking you for your articles. They are great!
I am copying some worksheets from one workbook to another one as I need them as templates. There are about 300 names and after copying the worksheet, they show the source. Is it possible to edit them all at once, so that part can be replaced with a blank?
Thank you!
Hello,
I would need to create a name [easy], calling another excel file [with multiple tab]. The address of the called/linked excel file, may change in location.
as exemple, I'm looking for this; =namefilelinked+tab number+row number
the second part of formula, '+tab number+row number' never changed. It is fixed.
Is that possible and how?
Thank you
Hello,
Is there anyone can help me with my query, I have around 100 sheets in my workbook; there are number of ranges from each workbook has a defined name.
I am looking for a way to allow user to Pick any of the defined name ranges from a picklist and then on clicking can navigate to that specific workbook (range).
Thanks,
Ankit
I am trying to make a packing list in Excel. The items to pack are boxes labeled things like Microphones, Grip, Clamps, DAW, Drapes, and Green Room. Each of those boxes contain a list of items to be packed. what I would like to do is make a master sheet that has every box and ever boxes' contents. then when we pack for a project, I could generate a customized list from the master list by simply inserting on a new sheet something like "=Microphone_Box", and getting the range names Microphone_Box" populated on my customized list.
Am I making any sense and can it be done in Excel?
Hi, Is there a way to make a cell refer to a named range? For example, the Covar function requires two arrays. Instead of typing in both named ranges, I would like to make the Covar function reference two cells that reference the named ranges. To take the covariance of ~500 stock's price data, I would have to manually enter in the named ranges for 250,000 cells. Is here an easier way to accomplish this?
I have a workbook with twelve sheets, one for each month. I do several calculations(formulas), but the subsequent sheets only use the values from sheet 1. I've tried using "Jan:Dec!$d$4:$d$6" to include all of the sheets, but I get a #value! error indicating wrong data type.
i have a problem in create a defined name using "Formulas>Create from selection>Top Row".If i try to create a defined names for more than 20 columns using Top rows,It created defined name for some columns and some columns were missing.How to resolve this issue
I named a cell but made a spelling mistake. How can I correct the spelling in the name?
Thanks,
Paul
Thank you for your question, Paul.
Please have a look at the following paragraph of the article above:
Editing a named range in Excel
Hope you'll find this information helpful.
Where can i find these named ranges when in Word to insert into a mail merge?
Hello,
would it be possible to include in a formula a text from a cell that refers to a given "name" that identify a column of values? I have the closing prices of a stock in column E that I named "Close", I had the cell N1 with the text "close", I would like to reference to cell N1 in the formula contained in the cell O8 (=min(Close)) as cell, so I would use, in O8 =min(N1). Changing the text in N1 would report the value calculated for the same function applied to different set of values (columns).
Thanks for the support you can give me.
Was there ever any answer to this? I’d love to know! I’m using a series of List Validations to develop a Budget vs Actual comparison tool. I’ve named ranges for Budget and Actual over similar periods and would like the names range referenced to change depending on the period and budget vs actual selection. This would be perfect!
Just tried an update to my formulas using the =indirect() formula. Now I m able to change my vlookup to whatever table array the logic in my target cell returns. So instead of hardcoding the names range for the vlookup - I’ve pointed it to a cell and that cell results in the names range I’m looking for (=vlookup(a14,indirect(L17),b5,false) where a14 = row ref I’m searching for and l17 refers to the bud or actual PLs, b5 is column ref).
Good luck!
Dan - Thank you, thank you, thank you!!! You had the answer I have been searching for!!! I have been successfully able to use the INDIRECT formula within my VLOOKUP formula to be able to summarise my results by quarter (after first defining names for the data for each quarter).
Can you use named ranges with the '=IF()" function? I have two columns of data and want to use a formula like this: =IF($A1=ListB, $A1, "No Poster") in column C where ListB is the named range B1:B100. Unfortunately the formula only works if data in A"X" and B"X" are the same, if the same data that is in A1 is in B3 for example I get the "No Poster" message in C1.
Hi:
Is it possible to have a named range available to any worksheet? What I mean is I want a named range available in named manager every time I open a new or an existing worksheet.
Thanks you very much
Mike.
Hi Mike.
Unfortunately, it is not possible to create a named range available in all the worksheets using the standard Excel features. However, it is possible to do using a special macro. I am really sorry, but we can’t help you with this. You may try to find the solution in VBA sections on mrexcel.com or excelforum.com.
Sorry for not being able to help you more.
Hi there,
I would like to define a Name that references the name's calories. However, when I list the name without an =, (so that it just says, Whole_Wheat_Bread) I would like to reference its value in another column titled Calories.
i.e.
Column A:
Row 1: Food
Row 2: Whole_Wheat_Bread
Column B:
Row 1: Calories
Row 2: =A2
[Assigned Value for Whole_Wheat_Bread is 78]
However, when I sype =A2 it enters "Whole_Wheat_Bread" in the cell;
I would like it to enter the Value associated with Whole_Wheat_Bread (which is 78)
This is so when I enter food items for a daily diet, I can just enter the titled food item and let the caloric section autofill with the selected values so I do not have to type ='adjusted new food' in the calories column.
Thank you!
I believe it is the same answer as under post 11 (INDIRECT-formula).
If I define with a name a range of cells and later insert a column or row through that defined block, does that new column or row become part of the defined range, or does the definition cease to apply, or will it split the defined thing into two parts, or just exclude the new column or row from the range and just run either side of it?
Is it possible to use Concatenate or the ampersand to develop a known value name for use in a formula?
I have several list selections in a spreadsheet, that when merged (concatenated) will give me one of several named values. I would like to avoid having a nasty IF statement just to accommodate the all the possible combinations.
Hello
I am looking to use VLOOKUP to return certain column data out of an array.
Outside of a table this is what I have been using:
=VLOOKUP($B2,Sheet2!($A$8:$H$48,Column(B8),FALSE) and then dragged the formula across and down the page. This is fine, as the lookup locks to B.
However, when in a table with named ranges, I cannot drag the formula across as the initial reference keep changing as I drag across.
=VLOOKUP([@sampleid],[Book1]Sheet1!$A$8:$H$48,COLUMN(B8),FALSE)
The initial [@sampleid] needs to be locked, I assumed with $ but nowhere i put it allows the formula to function...
I have a named range. Is it possible to reference, via a formula, individual cells in that range? My range is 3 columns by 1 row. I would like to be able to access each cell individually utilizing the range name.
Need more clarity on.
Apply names
Ignore Relative/Absolute
Use row and column names
Regards
Lalit.M
I set a field with formula to link with the month of the date and set a list of name by "month" with formula. Is it possible to use the formula result to call the "names" result?
ie 01 Jan 2018
field A =left(A1,4,3),result=Jan
Names set : Jan = B3
End up, field A = B3
I tried, but failed.
Thanks
Is there a way to create a name without the sheet reference? I want to have a name that references Sheet1!$S:$S if I use it in Sheet1 and Sheet2!$S:$S if I use it in Sheet2 but I can't figure out how to do that without using multiple names and I would need too many names for that.
Hello, Garrett,
Sure there is! You just need to name the range you want to use and then use this new name in references instead.
Please have a closer look at this point of the article above for more details.
If you mean that you don't want to use the "Sheet" word when naming your range, I'm afraid it's impossible to omit that part since Excel should understand what cells you refer to exactly.