Excel reference cell in another workbook dynamically

Excel is a great tool to use when dealing with large amounts of data. Often, a dataset in one of your workbooks may need to pull data from another sheet in Excel. Luckily, Excel offers multiple ways for you to reference excel data from a cell, reference a range of cells, or pull data from another sheet in Excel.

Externally referencing Excel files is common in many day-to-day operations. For example, you may want to pull data from last year’s sales data to compare it to this year’s results. You can control how much data you reference, from a single cell, all the way up to an entire worksheet. What’s more, you can reference data dynamically, meaning that whenever your cell values change from the source file, they will automatically be updated in your destination file where the reference has been created.

In this article, you’ll learn how to reference data from the same worksheet, different worksheets, and different workbooks in Excel. This article will cover referencing a single cell, a range of cells, multiple columns, and even entire worksheets.

Don’t tend to work in Excel? Check out our article on Google Sheets reference another sheet.

Get Started With Layer Today!

Share parts of your Google Sheets, monitor, review and approve changes, and sync data from different sources – all within seconds.

Supposing you have data with the same format across multiple worksheets or workbooks and need to get data from these worksheets or workbooks dynamically into another sheet. The INDIRECT function can help you quickly get it done.



Reference cells in another worksheet dynamically

Supposing there are four worksheets containing different sales in quarters for four salesmen, and you want to create a summary worksheet to dynamically pull the quarter sales based on the corresponding salesman. To make it work, the below formula can help.

Generic formula

=INDIRECT("'"&sheet_name&"'!Cell to return data from")

1. As the below screenshot shown, firstly, you need to create the summary worksheet by entering the sheet names separately in different cells, then select a blank cell, copy the below formula into it and press the Enter key.

=INDIRECT("'"&B3&"'!C3")

Notes: In the code:

  • B3 is the cell containing the sheet name you will pull data from;
  • C3 is the cell address in the specific worksheet you will pull its data;
  • To prevent returning the error value if either B5 (the sheet name cell) or C3 (the cell you will pull the data) is empty, please enclose the INDIRECT formula with an IF function displaying as below:
    =IF(OR(B3="",C3=""),"",INDIRECT($B$3&"!C3"))
  • If there are no spaces in your sheet names, you can directly use this formula
    =INDIRECT(B3&"!C3")

2. Then, drag its Fill Handle down to apply the formula to other cells. Now you have returned all sales of the first quarter from the specific worksheets.

3. Go ahead to pull all sales of other quarters as you need. And don’t forget to change the cell reference in the formula.


Reference cells in another workbook dynamically

This section is talking about dynamically referencing cells in another workbook in Excel.

Generic formula

=INDIRECT("'[" & Book name & "]" & Sheet name & "'!" & Cell address)

As the below screenshot shown, The data you want to return locating in column E of worksheet “Total sales” in a separate workbook named “SalesFile”. Please do as follows step by step to get it done.

1. Firstly, let’s fill in the workbook information (including the workbook name, worksheet name, and reference cells), which you will pull data based on this information into current workbook.

2. Select a blank cell, copy the below formula into it and press the Enter key.

=INDIRECT("'["&$B$3&"]"&$C$3&"'!"&D3)

Notes:

  • B3 contains the workbook name where you want to extract the data from;
  • C3 is the sheet name;
  • D3 is the cell you will pull data from;
  • The #REF! error value will return if the referenced workbook is closed;
  • To avoid the #REF! error value, please enclose the INDIRECT formula with the IFERROR function as follows:
    =IFERROR(INDIRECT("'["&$B$3&"]"&$C$3&"'!"&D3),"")

3. Then drag the Fill Handle down to apply the formula to other cells.

Tip: If you don’t want the return value turning to be error after closing the referenced workbook, you can directly specify the workbook name, worksheet name and the cell address in the formula as this:
=INDIRECT('[SalesFile.xlxs]Total sales'!E3,"")


Related function

The INDIRECT function
The Microsoft Excel INDIRECT function converts a text string to a valid reference.


The Best Office Productivity Tools

Kutools for Excel - Helps You To Stand Out From Crowd

Would you like to complete your daily work quickly and perfectly? Kutools for Excel brings 300 powerful advanced features (Combine workbooks, sum by color, split cell contents, convert date, and so on...) and save 80% time for you.

  • Designed for 1500 work scenarios, helps you solve 80% Excel problems.
  • Reduce thousands of keyboard and mouse clicks every day, relieve your tired eyes and hands.
  • Become an Excel expert in 3 minutes. No longer need to remember any painful formulas and VBA codes.
  • 30-day unlimited free trial. 60-day money back guarantee. Free upgrade and support for 2 years.

Read More Download


Office Tab - Enable Tabbed Reading and Editing in Microsoft Office (include Excel)

  • One second to switch between dozens of open documents!
  • Reduce hundreds of mouse clicks for you every day, say goodbye to mouse hand.
  • Increases your productivity by 50% when viewing and editing multiple documents.
  • Brings Efficient Tabs to Office (include Excel), Just Like Chrome, Firefox, And New Internet Explorer.

Read More Download

Oldest First

Sort comments by

Oldest First

Newest First

Comments (1)

No ratings yet. Be the first to rate!

ty banks

about 3 years ago

This comment was minimized by the moderator on the site

please get back with me. it's been a while since i used cel references. what i want to do is from a column of entires, i wish to make a new column and grab every 100th row of the prior column. let's say i have cells filled in F3, F103, F203...i want the contents to appear in G3,G4,G5. it doesn't work to say =(F3+100*counter) with having a counter in a column next to where i am having the formula.

How do you dynamically reference a cell in another worksheet?

To reference a cell or a cell range in another worksheet in the same workbook, simply put the “worksheet name” followed by an exclamation mark “!”, then the cell reference. In this example, I have my 2020 sales data in another sheet in the same workbook.
Use Copy and Paste Link to automatically transfer data from one Excel worksheet to another.
Open two spreadsheets containing the same simple dataset..
In sheet 1, select a cell and type Ctrl + C / Cmd + C to copy it..
In sheet 2, right-click on the equivalent cell and go to the Paste > Link..

How you can bring data from another sheet dynamically?

You can use a reference to the cell in another sheet. In a blank cell, type a = sign, then click on the sheet and then on the cell. Confirm with the Enter key. Whenever the value in cell A1 on Sheet1 changes, the cell with the formula reference will also change.

Can you use cell references to refer to data on other worksheets in the same workbook?

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. For example, to refer to cell A1 in Sheet2, you type Sheet2! A1.