This short tutorial explains the basics of an external reference in Excel, and shows how to reference another sheet and workbook in your formulas.
When calculating data in Excel, you may often find yourself in a situation when you need to pull data from another worksheet or even from a different Excel file. Can you do that? Of course, you can. You just need to create a link between the worksheets (within the same workbook or in different workbooks) by using what is called an external cell reference or a link.
External reference in Excel is a reference to a cell or a range of cells outside the current worksheet. The main benefit of using an Excel external reference is that whenever the referenced cell(s) in another worksheet changes, the value returned by the external cell reference is automatically updated.
Although external references in Excel are very similar to cell references, there are a few important differences. In this tutorial, we'll start with the basics and show how to create various external reference types with detailed steps, screenshots and formula examples.
How to reference another sheet in Excel
To reference a cell or range of cells in another worksheet in the same workbook, put the worksheet name followed by an exclamation mark (!) before the cell address.
In other words, in an Excel reference to another worksheet, you use the following format:
Reference to an individual cell:
For example, to refer to cell A1 in Sheet2, you type Sheet2!A1.
Reference to a range of cells:
For example, to refer to cells A1:A10 in Sheet2, you type Sheet2!A1:A10.
Note. If the worksheet name includes spaces or non-alphabetical characters, you must enclose it in single quotation marks. For example, an external reference to cell A1 in a worksheet named Project Milestones should read as follows: 'Project Milestones'!A1.
In a real-life formula, which multiplies the value in cell A1 in 'Project Milestones' sheet by 10, an Excel sheet reference looks like this:
='Project Milestones'!A1*10
Creating a reference to another sheet in Excel
When writing a formula that refers to cells in another worksheet, you can of course type that other sheet name followed by an exclamation point and a cell reference manually, but this would be a slow and error-prone way.
A better way is point to the cell(s) in another sheet that you want the formula to refer to, and let Excel take care of the correct syntax of your sheet reference. To have Excel insert a reference to another sheet in your formula, do the following:
- Start typing a formula either in a destination cell or in the formula bar.
- When it comes to adding a reference to another worksheet, switch to that sheet and select a cell or a range of cells you want to refer to.
- Finish typing the formula and press the Enter key to complete it.
For example, if you have a list of sales figures in sheet Sales and you want to calculate the Value Added Tax (19%) for each product in another sheet named VAT, proceed in the following way:
- Start typing the formula =19%* in cell B2 on sheet VAT.
- Switch to sheet Sales, and click on cell B2 there. Excel will immediately insert an external reference to that cell, as shown in the following screenshot:
- Press Enter to complete the formula.
Note. When adding an Excel reference to another sheet using the above method, by default Microsoft Excel adds a relative reference (with no $ sign). So, in the above example, you can just copy the formula to other cells in column B on sheet VAT, the cell references will adjust for each row, and you will have VAT for each product correctly calculated.
In a similar manner, you can reference a range of cells in another sheet. The only difference is that you select multiple cells on the source worksheet. For example, to find out the total of sales in cells B2:B5 on sheet Sales, you would enter the following formula:
=SUM(Sales!B2:B5)
This is how you reference another sheet in Excel. And now, let's see how you can refer to cells from a different workbook.
How to reference another workbook in Excel
In Microsoft Excel formulas, external references to another workbook are displayed in two ways, depending on whether the source workbook is open or closed.
External reference to an open workbook
When the source workbook is open, an Excel external reference includes the workbook name in square brackets (including the file extension), followed by the sheet name, exclamation point (!), and the referenced cell or a range of cells. In other words, you use the following reference format for an open workbook reference:
For example, here's an external reference to cells B2:B5 on sheet Jan in the workbook named Sales.xlsx:
[Sales.xlsx]Jan!B2:B5
If you want, say, to calculate the sum of those cells, the formula with the workbook reference would look as follows:
=SUM([Sales.xlsx]Jan!B2:B5)
External reference to a closed workbook
When you reference another workbook in Excel, that other workbook does not necessarily need to be open. If the source workbook is closed, you must add the entire path to your external reference.
For example, to add up cells B2:B5 in the Jan sheet from Sales.xlsx workbook that resides within the Reports folder on drive D, you write the following formula:
=SUM(D:\Reports\[Sales.xlsx]Jan!B2:B5)
Here's a breakdown of the reference parts:
- File Path. It points to the drive and directory in which your Excel file is stored (D:\Reports\ in this example).
- Workbook Name. It includes the file extension (.xlsx, .xls, or .xslm) and is always enclosed in square brackets, like [Sales.xlsx] in the above formula.
- Sheet Name. This part of the Excel external reference includes the sheet name followed by an exclamation point where the referenced cell(s) is located (Jan! in this example).
- Cell Reference. It points to the actual cell or a range of cells referenced in your formula.
If you've created an reference to another workbook when that workbook was open, and after that you closed the source workbook, your external workbook reference will get updated automatically to include the entire path.
Note. If either the workbook name or sheet name, or both, include spaces or any non-alphabetical characters, you must enclose the path in single quotation marks. For example:
=SUM('[Year budget.xlsx]Jan'!B2:B5)
=SUM('[Sales.xlsx]Jan sales'!B2:B5)
=SUM('D:\Reports\[Sales.xlsx]Jan sales'!B2:B5)
Making a reference to another workbook in Excel
As is the case with creating an Excel formula that references another sheet, you don't have to type a reference to a different workbook manually. Just switch to the other workbook when entering your formula, and select a cell or a range of cells you want to refer to. Microsoft Excel will take care of the rest:
Notes:
- When creating a reference to another workbook by selecting the cell(s) in it, Excel always inserts absolute cell references. If you intend to copy the newly created formula to other cells, be sure to remove the dollar sign ($) from the cell references to turn them into relative or mixed references, depending on your purposes.
- If selecting a cell or range in the referenced workbook does not automatically create a reference in the formula, most likely the two files are open in different instances of Excel. To check this, open Task Manager and see how many Microsoft Excel instances are running. If more than one, expand each instance to view which files are nested there. To fix the issue, close one file (and instance), and then open it again from the other file.
Reference to a defined name in the same or another workbook
To make an Excel external reference more compact, you can create a defined name in the source sheet, and then refer to that name from another sheet that resides in the same workbook or in a different workbook.
Creating a name in Excel
To create a name in Excel, select all the cells you want to include, and then either go to the Formulas tab > Defined names group and click the Define name button, or press Ctrl + F3 and click New.
In the New Name dialog, type any name you want (remember that spaces are not allowed in Excel names), and check if the correct range is displayed in the Refers to field.
For example, this is how we create a name (Jan_sales) for cells B2:B5 in Jan sheet:
Once the name is created, you are free to use it in your external references in Excel. The format of such references is much simpler than the format of an Excel sheet reference and workbook reference discussed earlier, which makes the formulas with name references easier to comprehend.
Note. By default, Excel names are created for the workbook level, please notice the Scope field in the screenshot above. But you can also make a specific worksheet level name by choosing a corresponding sheet from the Scope drop-down list. For Excel references, the scope of a name is very important because it determines the location within which the name is recognized.
It's recommended that you always create workbook-level names (unless you have a specific reason not to), because they significantly simplify creating Excel external references, as illustrated in the following examples.
Referencing a name in another sheet in the same workbook
To reference a global workbook-level name in the same workbook, you simply type that name in a function's argument:
For example, to find the sum of all the cells within the Jan_sales name that we created a moment ago, use the following formula:
=SUM(Jan_sales)
To reference a local worksheet-level name in another sheet within the same workbook, you need to precede the name with the sheet name followed by an exclamation mark:
=Function(Sheet_name!name)
For example:
=SUM(Jan!Jan_sales)
If the sheet names includes spaces or mon-alphabetic chars, remember to enclose it in single quotes, e.g.:
=SUM('Jan report'!Jan_Sales)
Referencing a name in another workbook
A reference to a workbook-level name in a different workbook consists of the workbook name (including the extension) followed by an exclamation point, and the defined name (named range):
For example:
=SUM(Sales.xlsx!Jan_sales)
To reference a worksheet-level name in another workbook, the sheet name followed by the exclamation point should be included as well, and the workbook name should be enclosed in square brackets. For example:
=SUM([Sales.xlsx]Jan!Jan_sales)
When referencing a named range in a closed workbook, remember to include the full path to your Excel file, for example:
=SUM('C:\Documents\Sales.xlsx'!Jan_sales)
How to create an Excel name reference
If you have created a handful of different names in your Excel sheets, you don't need to remember all those names by heart. To insert an Excel name reference in a formula, perform the following steps:
- Select the destination cell, enter the equal sign (=) and start typing your formula or calculation.
- When it comes to the part where you need to insert an Excel name reference, do one of the following:
- If you are referring to a workbook-level name from another workbook, switch to that workbook. If the name resides in another sheet within the same workbook, skip this step.
- If you are making a reference to a worksheet-level name, navigate to that specific sheet either in the current or different workbook.
- Press F3 to open the Past Name dialog window, select the name you want to refer to, and click OK.
- Finish typing your formula or calculation and press the Enter key.
Now that you know how to create an external reference in Excel, you can take a benefit from this great ability and use data from other worksheets and workbooks in your calculations. I thank you for reading and look forward to seeing you on our blog next week!
361 comments
Hi, thank you for the great article! I'm referencing cells from a different (source) workbook to my current workbook and I'm having trouble understanding what happens when I edit/relocate referenced cells in the source workbook. For example, I can edit the content of the referenced source cell and it will be updated fine in the current. But when I move it unless the current file is open, the current won't pick up the change - it will keep the reference to the old location. Is that normal? Does that mean that every time I relocate some cells in source, for example, by inserting rows or columns I have to keep the current file open?
Hello Marco!
Yes, that behavior is completely normal in Excel.
Here’s a bit more detail to help you understand:
Editing Content: When you edit the content of a referenced cell in the source workbook, the changes will be reflected in the current workbook, even if it is closed. This is because Excel updates the content of linked cells correctly as long as the cell reference remains the same.
Relocating Cells: When you move or relocate referenced cells in the source workbook (e.g., by inserting rows or columns), the current workbook will only update the references if it is open at the same time as the source workbook. If the current workbook is closed, it will retain the original references, pointing to the old locations.
This means:
Source Workbook Open, Current Workbook Open: References update automatically.
Source Workbook Open, Current Workbook Closed: References do not update and stay linked to the old locations.
To ensure that your references are updated correctly when you move or relocate cells in the source workbook, you should keep the current workbook open. This way, Excel can dynamically update the references in real-time.
If you frequently need to relocate cells in the source workbook, having both workbooks open simultaneously will save you from manually updating the references in the current workbook.
Thank you Alexander so much! This is my conclusion as well. I have an idea to help with this. Let's say I know I will only insert/delete rows, not columns, so the referenced cells will move up or down the column only. I was thinking of referencing additional empty cells in that column bellow the cells with values. For example, if I want to reference cells from A1:A25, I will create references for A1:A100, so that later when rows are added/deleted, this ensures my current workbook remains updated.
If both the source file and the recipient file are password protected, how does one overcome this when the source file is closed?
Hello Simon!
Unfortunately, if both the source file and the destination file are password-protected, you won't be able to get protected data in Excel using an external link when the source file is closed.
Excel requires access to the open file to establish the link and retrieve the data.
You can solve this problem by using a VBA macro.
I have used links from other sheets and other workbooks before and not had this kind of trouble, but I seem to be running afoul of something now. My formula is as follows ='D:my path\[A_data.xlsx]Sheet1'!$U$2. And all works fine when the workbook is open, but if I paste the exact same formula in a difference cell when the source wb is closed then I get a value of '0' (Zero). I have tried manipulating the Trust Center options in hopes that might possibly change something. Has there been a change to prevent update of the data? Is there a button somewhere that will update the links? Thanks for the hlep.
Hi! Pay attention to the following paragraph of the article above: Excel reference to another workbook. The link you wrote cannot be verified. I created a link
='C:\New files\[Book1.xlsx]Sheet1'!$A$1
This link works when the workbook is closed.
I noticed a type-o when I modified my path when I posted the comment... however you don't have an edit feature. Yes, it should have been ='D:\my path\[A_data.xlsx]Sheet1'!$U$2. As I am working with python to make links to literally hundreds of of source files, I validated my path by opening a file, clicking the source cell to get the formula. To be fair, at first I had several type-o's I needed to fix. However, once I did fix those, my formulas work when the source files are open. If I close the source files the data stays there, but it would be quite annoying to have to open 200 wb's every time I needed to get a summary from those wb's.
Excel, does have a button regarding external links under DATA called WORKBOOK LINKS where it opens a side panel, one of the options is to "refresh all". Even with the direct referenced cell and the source file closed, if I click that, the value turns to 0. Here is my formula again fix, copied from the sheet. ='D:\my path\[A_data.xlsx]Sheet1'!$U$2.
As I have opened a couple of source files to check to see if all of my links were working I have a couple with data and a couple without. However, as stated I can easily make all of the data go away. Also if I were to close and re-open the summary WB I would lose all of the data. Never seen this before on either Office 2010 or 2016. This appears to be new with 2024.
Also of note, the source files are in a sub-folder from the summary WB. This makes separating the summary file from the hundreds of files easier. Also in my testing based on your recent comment, it seems to have some kind of a security effect as well. Please try putting your source file in a sub-folder.
Hi! I cannot create external links using Python. With Excel365, a manually created link works correctly.
its alright, while waiting for your reply, I created a program that opens all of the files for me. It takes 10 mins, but its better than doing it by hand. I can let you know that this problem does not always show up, however it does happen. Thanks anyway.
Many thanks Team for all the good work you publish on your site. It has helped me much in my Finance role over the years when I am stuck on excel, I always find answers on your website - ear marked as my favourite. Hope to do some work with you guys in the future to show appreciation and give back!! Stay blessed. From the UK. Dennis
I'm looking for an easy way to reference data in one sheet that is in a row and have it populate in another sheet in a column. For example, sheet one has data in A1 B1 C1 etc. On sheet 2 I want a reference to the data in sheet 1 except in a column. For example, Sheet2, A1 references Sheet1, A1 but Sheet2, A2 references Sheet 1, B1, and Sheet2 A3 references Sheet1,C1.
In other words, whatever is entered in the cells along row 1 in Sheet1 will automatically display in the cells in Column A in Sheet2. I have found a way to do this by making a reference cell in Sheet 2 then copying that formula down the column, but then I have to individually edit the data in each cell to make the reference correct.
Hello Glen!
You can try using the INDIRECT function to create dynamic links to another sheet. You can find the examples and detailed instructions here: How to use INDIRECT function in Excel - formula examples.
Company recently killed off the file servers and forced us into the cloud via Sharepoint/TEAMS. This, of course, has killed all VBA based tools - or at least put us on notice not to use VBA for anything new. We have a workbook where each sheet is a log related to an individual. Each sheet is names for the individual it concerns. I now need to produce a summery report that pulls from a few specific cell on each sheet.
The problem I need to solve, without VBA, is how to reference sheets by number in a formula, since the sheet names are the names of the people.
Hello Gene!
Unfortunately, in Excel formulas, you can only refer to sheets name, not their numbers. To create a dynamic link to different worksheets, you can try using INDIRECT function.
You can create a list of worksheets and use VLOOKUP or INDEX MATCH function to find the name of a worksheet by its number.
Please take a look at this guide: Creating an Excel dynamic reference to another sheet.
Hi,
Can you please help me with referencing ranges from another workbook in Excel Web? All of the above works perfect in the Desktop version of excel but I get a 'VALUE' error when trying to create a reference to another workbook on the Shared Dive.
Thank you!
Dear Svetlana Cheusheva
I can't express enough how grateful I am to you.
Really, you are a lifesaver.
Hi,
Let’s say I have a sheet called ‘sheet 1’ which has 2 cell addresses listed (let’s say the terms $A$1 and $Z$30 are listed in cells A1 and A2 and these terms were created by using the address formula). How can I create a vlookup or Xlookup that has a lookup value in ‘sheet 1’ but a lookup array on ‘sheet 2’ - with the array being decided from the 2 cell addresses listed in ‘sheet 1’? I would’ve thought I could set the array as indirect(A1):indirect(A2) to set the array as $A$1:$Z$30, but I am unsure how to tell it to look up this array in sheet 2 as opposed to sheet 1.
I really appreciate the work you do to make learning excel accessible to so many people. If you can provide a solution to push me in the right direction I will be truly grateful.
Thanks
Hello! To create a dynamic range reference based on cell values, use the INDIRECT function. For example:
=INDIRECT("Sheet2!"&A1&":"&A2)
The following tutorial should help: How to use INDIRECT function in Excel - formula examples.
Thanks very much for your response. I have tried the above and have also tried combining the references in a separate cell using concatenation. Using concat, cell B112 of sheet 3 has a concat formula which outputs $BE$111:$BE$132 in the cell and cell B114 of sheet 3 has a concat formula which outputs $AL$111:$AL$132 in the cell. On sheet 3, I am trying to get an Xlookup which has the lookup array of $BE$111:$BE$132 on sheet 1 (indirect of B112 on sheet 3) and a return array of $AL$111:$AL$132 on sheet 1 (indirect of B114 on sheet 3), with BE10 of sheet 3 as the lookup value.
I have attempted the following formula on sheet 3, but it returns a #ref error:
=XLOOKUP(BE10,INDIRECT("sheet 1!"&B112),INDIRECT("sheet 1!"&B114))
When testing, I found the following formulas also caused a #ref error:
=INDIRECT("sheet 1!"&B112)
=INDIRECT("sheet 1!"&B114)
I have double-checked the spelling of the sheet names and they match, including the case. I have also tested using a standard XLOOKUP below and this worked correctly:
=XLOOKUP(BE10,'sheet 1'!$BE$111:$BE$132,'sheet 1'!$AL$111:$AL$132)
Thanks very much for looking into this - I really appreciate the time. Is there anything you think I can change with the combined XLOOKUP and INDIRECT formula on sheet 3 so that it correctly pulls through the required values from sheet 1?
Hi! I don't think you have studied the manual how the INDIRECT function works. Please pay attention to this section: INDIRECT formula to dynamically refer to another worksheet.
hello, how to make PENGELUARAN_INSIDENTAL reference shorter? is there any shorter formula?
=MAIN!C4-(PENGELUARAN_INSIDENTAL!D17+PENGELUARAN_INSIDENTAL!D43+PENGELUARAN_INSIDENTAL!D56+PENGELUARAN_INSIDENTAL!D69)+MAIN!F21
Hi! If you need to use external links, try renaming the PENGELUARAN_INSIDENTAL worksheet and making its name shorter. Then the formula will be shorter.
You can also give short names to these cells and use those names in the formula. You can find the examples and detailed instructions here: How to define and use names in Excel.
Can this same formula/concept be used for Headers? I have a workbook template that is used by multiple store fronts. Workbook has Vendors as sheets, with their product listed for a specific location. I would like to create a Source workbook for ease of operations. Ideally the Headers would be the contact information for each Vendor, which could be changed from the Source workbook.
Hi! Unfortunately, this information is not enough to give you any advice.
HELLO,
Am on a order-list project. I have 4 "items list" and need a code for the following, if one of the cell is true from the 4 "items list" then copy some cells on the same rows to the "order-list" sheet.
Hi! Unfortunately, this information is not enough to give you any advice.
I have an excel sheet that have 5 sheet, 4 of the sheet are items-list("machine, accessories, air tools and hand tools") and the 5th one is "ORDER-LIST". In each items-list sheet, has several tools name with prices, model, picture of tools, other information and also have a check-box in each cells . I want a formula that when I TICK the checkbox it automatically copy some cells(i.e., picture, name, model of tools) in the same row to the "ORDER-LIST" sheet.
Hi! With a formula, you can find price or other information using these guidelines: VLOOKUP across multiple sheets in Excel with examples.
I have a question regarding whether you can reference multiple ranges of cells that are scattered throughout another sheet, without having to go line by line.
This has been working so far but I have over 6,000 rows and many more cells that I need to reference.
For example:
='Table 1'!A34:P34
='Table 1!A64:P64
='Table 1'!A65:P65
='Table 1'!A81:P81
='Table 1'!A86:P86
='Table 1'!A94:P94
='Table 1'!A118:P118
='Table 1'!A119:P119
........
Hi! If these references do not have a logical sequence, you can either create them manually or use the INDIRECT function.
Hi,
I have a workbook containing 2 sheets - 'Sheet A' and 'Sheet B'. In 'Sheet B' I have a value in cell F1. In 'Sheet A" I have a cell which is pointing to the value in 'Sheet B" cell F1 (='Sheet B'!F1). I always want to retrieve the value from this exact cell "F1". But daily I am inserting a new column to the left of column F in Sheet B containing a different value. This is causing the cell referenced from Sheet A to change to G1, H1, etc. whenever I insert a new column. I have tried placing a $ sign before "F" and "1" in reference from Sheet A (i.e., ='Sheet B'!$F$1), but this does not work. Do you have a solution to this problem? Thanks in advance for any help you may provide.
Hi! To create a reference that always refers to the desired cell, use the INDIRECT function. You can find the examples and detailed instructions here: Using Excel INDIRECT function to lock a cell reference.
For example:
=INDIRECT("'Sheet B'!F1")
Alexander, thanks for the resolution to my problem!
Thank you so much for this useful information and for your kind words
I am trying to use a formula to insert the name of a sheet into the reference.
Lets say my formula that references the other sheet is
=+'Objective 2'!F$2
But instead of typing 'Object 2' into the formula, I have "Objective 2" and other sheet names in other cells in the current sheet.
So I want to replace "Objective 2" with a cell reference. Can I do this?
Something like
=+'B4'!F$2 Where the value in cell B4 is "Objective 2"
Thanks
Hi! To create a dynamic cell reference, use the INDIRECT function and this guide: Creating an Excel dynamic reference to another sheet. Hope this is what you need.
Hi,
I have a formula for a budget excel sheet and I'm trying for one month per sheet in one file. But when i duplicate the page, the formula is linked to the first page and does not show the result to the page I'm on.
Here's the formula : =CONCATENER("Solde : "&TEXTE(@Solde,"[Vert]# ##0,00 $;[Rouge]-# ##0,00 $"))
I tried to put the reference page at the beginning of the formula but it didn't work.
Thank you
Hi! I can't understand and test a formula that contains unique references to data that I don't have. In addition, I do not have French Excel regional settings.
I assume that the formula uses a reference to the named range Solde, which is on the first worksheet.
I want to take an excel file with many columns and data and created an additional file referring to only a select number of columns from the original file.
Hi! You can get some of the data from your table by using the FILTER function. Read more: Excel FILTER function - dynamic filtering with formulas. You can also try using pivot table to get some of the data and select individual columns.
I am using Excel to build a database for keeping track of observations in my observatory. The workbook contains three tables in separate sheets; Stars, Observations and Names. The Stars table and the Names table are both indexed by an integer 'Star ID' (I need the Names table because stars have multiple names). The Names table also includes a field 'TheSky' which tells me the filename prefix for images of the given star. The Observations table is indexed by an integer 'Observations ID'. It includes a field for 'Star ID' and a field for 'TheSky' which I want to update automatically for the observed star.
What would be the correct formula to put in the 'TheSky' field of the Observations table so that it will display the text from 'TheSky' field in the Names table for the corresponding 'Star ID'?
Thank you for any ideas you may have.
Hi! Without seeing your data, it is impossible to give you a formula. To find the text from the 'TheSky' field that matches 'Star ID', use INDEX MATCH.
I also recommend that you pay attention to the Vlookup Wizard. The intuitive wizard will walk you through the steps to building a formula and help you define all the arguments. It is available as a part of our Ultimate Suite for Excel that you can install in a trial mode and check how it works for free.
I hope it’ll be helpful. If something is still unclear, please feel free to ask.
Hello!
I have 2 sheets (01, 02).
Sheet 02 contains a cell with a reference to a cell on sheet 01 (='01'!D3).
When i copy (dragging) sheet 02 and make sheet 03, reference on sheet 03 stay the same (='01'!D3)!!!!
I need the reference to change automatically to ='02'!D3.
Is this possible?
OpenOffice do it automatically, but i'm trying to switch to Excel.
Thank you very much!
Hi! When you copy references in Excel, only relative cell references are dynamically changed.
Hello! Thnx for answer.
I copy relative references! But i copy sheet. And it doesnt dynamically change. When i copy (dragging) sheet 02 and make sheet 03, reference on sheet 03 stay the same (='01'!D3)!!!!
I need the reference to change automatically to ='02'!D3.
Worksheet references are not relative cell references. They do not change when you copy them.