How to create external reference in Excel to refer to another sheet or workbook

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:

  1. Start typing a formula either in a destination cell or in the formula bar.
  2. 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.
  3. 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:
    Creating a reference to another sheet in Excel
  • 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:

Creating a reference to a range a cells in another worksheet

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:


If you want, say, to calculate the sum of those cells, the formula with the workbook reference would look as follows:


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:


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:
Making a reference to another Excel workbook


  • 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:
Creating an Excel name

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:


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:


For example:


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:


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:


When referencing a named range in a closed workbook, remember to include the full path to your Excel file, for example:


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:

  1. Select the destination cell, enter the equal sign (=) and start typing your formula or calculation.
  2. 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.
  3. Press F3 to open the Past Name dialog window, select the name you want to refer to, and click OK.
    Creating a reference to an Excel name in another workbook
  4. 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!


  1. 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"


  2. 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.

  3. 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.

  4. 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.

  5. 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!

      • 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.

  6. Hello, I'm trying to create a master spreadsheet which is compiled of different sections of data from different people. So for example Person A has a section which they can update and feeds automatically into the master spreadsheet, as can Person B for a different section. Each person can only see their own section but those with the master spreadsheet can see it all, is this possible?

  7. Hi!

    I need to take figures from one spreadsheet and figures from another spreadsheet and put them together on another spreadsheet. The problem is that I am doing monthly work and at the end of the month I have a few days that need to be added into the first week of the next month on another report. So I have a spreadsheet that takes the number automatically. But I can't get the 1st weeks numbers in because I can not figure out how to get the end of the month number from the month before and the current end of month numbers to merge together for the first week. I keep reading everything here but there is no plain and simple way here on how to do something like that.

    Does anyone have an easy and simple trick to get both months number on one spreadsheet. I would really appreciated it. Because whoever did this before kept totals in a book. Pen and paper and I do not wish to do!!

    Thanks for any help anyone can give me!!!!

  8. Hi.
    I created a data extraction file that is using filter function to pull data from a master workbook. It has a "list" that can be filtered and generate a list referencing to the master sheet.
    I am trying to make the external reference work while the workbook is closed. The master and extraction files sit at the same path on sharepoint and I did put the exact path to the file: "https://location/location/location/file.xlsx". So the path would be 'https://location/location/file.xls!Table1

    When I have the master file open, the function it will only indicate the file name, but when I close the master, the entire file path shows. However, the filter and file exaction won't work. Any help would be appreciated so that the filtered file will work without the master file open.

    I am wondering if it's not working because it's on sharepoint.

    • Here is what I have:

      =CHOOSECOLS(VSTACK('https://filelocation/filename.xlsx'!Table1[#Headers],SORT(FILTER('https://filelocation/filename.xlsx'!Table1[#Data], 'https://filelocation/filename.xlsx'!Table1[Filtercondition]=C2,""),{4,7,1},1)),6,8,7,4,1,2,18,19,20)

      • I included the brackets [ ] for the file name. But still getting #REF error. For the cell reference, can it be a table for a closed book reference? Or does it have to specify the cells?

        =CHOOSECOLS(VSTACK('https://filelocation/[filename.xlsx]Sheet Name'!Table1[#Headers],SORT(FILTER(' https://filelocation/%5Bfilename.xlsx%5DSheet Name'!Table1[#Data], 'https://filelocation/[filename.xlsx]Sheet Name'!Table1 [Selected Column name]=C2,""),{4,7,1},1)),6,8,7,4,1,2,18,19,20)

        • Hi Shanna,
          I would advise you to build the formula having both workbooks open and selecting the ranges and cells in the second workbook using the mouse. In this case, Excel will use the appropriate references automatically. After you close that second workbook, your external reference will get updated automatically to include the entire path to the file.

  9. I want to create an active spread sheet which will pick up values from different columns in the master sheet with a condition. Can anyone help.

    E.g. Column A in active spread sheet should pick up value from column G of master spread sheet with a condition that it picks up on the open tasks to the active sheet. How to do that.

  10. Hi

    Kindly assist with a function that will give me the counts from other sheet, I have sheet 1 which has Cell B1 and E1 where I select my criteria as dates then I have sheet2 where my data is. I want to get the counts of records in Sheet 2 which match the date range selected in Sheet 1 Cell B1 and E1. here is the functions that I tried

    None of these are working for me

    Thank you

    • Hi! Learn the syntax of the COUNTIFS function carefully. See the examples in this article: How to count cells with multiple criteria. Also note that COUNTIFS function arguments cannot be formulas. Also note that all cell ranges in a COUNTIFS formula must have the same size. Simultaneous use of C3:D9 and D3:D9 is not allowed.
      I can't recommend a formula to you as I can't see your data.

  11. Hello! Thank you for this. Do you know of a way to have just the formula linked to other workbooks? For instance, if I have a cell that calculates the sum of a list on one spreadsheet, is there a way to copy the formula to other spreadsheets such that, when I update the formula on the first (like, maybe i decide to divide the result by 2), the formula on the others also updates (so they also now divide the results of their sums by 2)?

    • Hi! An Excel formula cannot automatically change if another formula of the same type changes. You can write the values that change in separate cells and make references to these cells from all formulas.

      • that wouldn't work for what i'm trying to do, but thanks for the quick response! :)

  12. After I create my external links from multiple external workbooks into one workbook on a shared drive, I get a #Value error when the external workbooks are closed. When I open them, it will update on the main workbook. Can you please help with me the formula where the workbook will still show the values without the other workbooks being open. I used the =countif(range,"V") formula. I would like for it to continue to update and display the values without the other workbooks being open. Thank you

    • Hi! Pay attention to the following paragraph of the article above: External reference to a closed workbook. I hope it’ll be helpful.

  13. Hi, I have a doubt on these references,
    Consider I have 2 working excel files. One is Master data file (excel_1) and the another excel file which I am working on currently (excel_2) where I took references from (excel_1) file for some data. Now I have closed both the files.

    Now, When I 1st open my current working excel file (excel_2), everything is working fine. But when I open the Master data file (excel_1), all the cells in the excel_2 which has references from excel_1 has turned into #N/A errors. How could I solve this type of issue? I need to get dynamic values from my Master data always (excel_1) into excel_2.


    • Hi! Unfortunately, I have not been able to reproduce your problem. I don't know what actions you performed with the file and which formulas return the error.

  14. Hi

    I'd like to create an Excel template with the ability to attach items from another Excel file. For example, a serial number is entered into the template and all the information for this item (price, description, image, etc.) is linked from another Excel file.

  15. Hi,

    I'm trying to set up a spreadsheet of information that has multiple sheets. Sheets 1 and 2 will always be the same. Sheet 3 will be a 'review' spreadsheet. There may be multiple 'review' sheets that I need to insert weekly (an indefinite number), and so want to create a template that I can copy and pull into place. Is there a way I can set a formula to autopull information through from a cell on the previous sheet to the left hand side when I don't know what that sheet will be called?

  16. Hello ! I have a workbook with two sheets. In the first sheet (DAY TIME) I get values from the second sheet (GET VALUES) using =INDEX(GET_DATA!$M$5:$M$1004;MATCH('DAY TIME'!$G$6;GET_DATA!$L$5:$L$1004;1))
    This extends from M to AU.
    I want to dynamically change the range of my search by just changing the values of two cells.
    Meaning for example in sheet1, in cell B2 I will input the number 305 and in the cell B3 the number 519 and the formula will lookup in M305:M519 and L305:L519 of sheet 2.

    I am trying with INDIRECT but I can't seem to find a work around.

  17. Can I use a formula to refer to a cell in a sheet rather than the cell.

    Eg. Rather than ='BSCA|P'!Q17 (which is data for todays date) when I do something like ='BSCA|P'!VAR!E18 (VARSheet being a sheet which tracks the cells for Todays date) I keep getting a 'There's an error in the formula you entered' message.


  18. =VALUE(HYPERLINK(CONCATENATE("[H:\Quality Hub\KW ";G1;"\";"DECONT ";D1;" ACT202011700024760- 2023.xlsm]Materiale Stoc'!R2")))
    what is not good

      • Put the CONCATENATE formula in another cell and see what the result is. That will tell if the result is correct for HYPERLINK function to use as input.

  19. thanks for your support

  20. nice

  21. Very good

  22. I'm wrote macro, where I'm using Xlookup to link data from other Workbook on same Sharepoint location.
    It works fine, until I close both files (one from which link is made and one to which link is made). After re opening them, formula sometimes brakes (I can't figure out exactly why/when), weird symptom is that it gets worksheet refference changed or even "REF!".

    Bellow is my example row, Phrase Process Checking is exact name of tab, which is geting lost to REF! (tab still there), or change to other tab existing in the workbook

    ShtTM.Range("K2:K" & lastRowTM - 1).Formula = "=Xlookup(A2&H2&G2," & PathOnly2 & "'[" & FileName2 & "]Process Checking'!A$3:A$" & LastRowPCI & "&" & PathOnly2 & "'[" & FileName2 & "]Process Checking'!g$3:g$" & LastRowPCI & "&" & PathOnly2 & "'[" & FileName2 & "]Process Checking'!Q$3:Q$" & LastRowPCI & "," & PathOnly2 & "'[" & FileName2 & "]Process Checking'!P$3:P$" & LastRowPCI & ",0)"


  23. Hi, thanks for your excellent guide and for sharing your knowledge.

    I'm trying to figure out how to create an absolute reference to a cell in a table on a separate sheet.
    As soon I try to copy the formula to the next right cell, it breaks, and the reference point to Roles[CostRateOrig] (the next right cell in the separate sheet) instead of Roles[ActivitiesRoles] (which it always should). Is it possible to make the reference absolute? The $ sign does not seem to work in this instance...

    Original formula:

    Broken formula:

    • I solved it by setting up a "defined name" in the Name Manager and pinpointed the data as an array. Then it treated the data as absolute :-).

  24. Hi there - thanks for this. What I would love to do is use the value of one cell (using left function to pull the characters) to reference the sheet name.

    E.g., if A1 = DIB (2960452), and the sheet name is DIB, I want to have B1 =
    SUMPRODUCT(LEFT(A1, LEN(A1)-10)!$F$5:$F$35, (LEFT(A1, LEN(A1)-10)!$L$5:$L$35)/SUM((LEFT(A1, LEN(A1)-10)!$L$5:$L$35),

    Where (LEFT(A1, LEN(A1)-10)=DIB.

    This is so I can repeat the same across multiple sheets and rows, as the names change a lot and new tabs are being added all the time.


  25. I have an error with this code,

    Can anyone help me why this #NAME? error is appearing.

    =IFEROOR(VLOOKUP($E3,'Follow Up'!A1:P1,MATCH('Daily Report'!F$2,'Follow Up'!A1:P1,0)),0)

    Follow Up and Daily Report are names of sheets.

  26. Hi, I'm trying to create an automated scheduling spreadsheet for equipment and personnel allocation. Currently I export data from SAP with our weekly schedule and paste it into Sheet1 of the workbook, that includes workorder number, description of works, location, date hours etc from columns A-I.

    In J-Q I then have variable drop down selections from a master list of equipment and personnel on Sheet2.

    On Sheet 3 I have have the master list of equipment in column B, with Monday-Friday dates in D-H. I want to make it so that when a piece of equipment is selected in the drop down box of a job for a day on Sheet1, that the job/workorder number on the row of that day, then appears on the same date on Sheet3 to show it is allocated, as Sheet3 has to be shared to others. Is this possible?

  27. Hi
    Let's say one workbook contains multiple worksheets and I have made a summary sheet which takes inputs from all the sheets in the workbook. Now, I have multiple workbooks for different companies. Format of each worksheet in all the workbooks are identical.
    How do I develop similar 'summary sheet' for all the workbooks, without doing it manually sheet by sheet?

  28. Hi, I have a workbook with 30 sheet named 01, 02, 03, .... , 30
    In another workbook, I type this formula: =sum('[Workbook name]Sheet name'!Cell range)
    example: =sum('[Workbook name]01'!$E$37)

    I need to call every E37 value in sheet 01 to 30. How can I do it without typing the formula one by one every cell?

  29. Nice

  30. I can't find the formula in which the (Registration Fee column) in the cell G20 (Sheet Apr-22) Sum of Value 1,92,420/- Amt automatically show in Cell C4 (Sheet SD).
    And same with Stamp Duty, SIC, PIBD Column.
    Means I want cell G20 (Sheet Apr-22) Value in Cell C4 (Sheet SD) with formula.

    • Hi!
      Have you tried the ways described in this blog post? If they don’t work for you, then please describe your task in detail, I’ll try to suggest a solution.

  31. When referencing another sheet using the =SheetName!CellLocation Method, is there a way to copy the formatting as well. I have a list of numbers with a select few of them in bold to reference their significance. I want to keep this formatting in my new sheet.

  32. Hi All,

    I am referencing a date from sheet 1 onto sheet 2. When I filter sheet 1 the reference on sheet 2 has changed to the data that has been replaced into that cell.

    Is there a way that I can get the cell on sheet 2 to follow the date I had referenced on sheet 1 even as it is filtered back and forth?

    • Hello!
      I think it's not about filtering, but about sorting. When sorting data, Excel does not move cells, but only copies the data. I recommend copying all the values ​​to a new sheet using Paste Special - Values ​​and sorting them there. This will not break your formulas.

  33. I have a worksheet that I inherited. The main "sheet" references another sheet with the same exact data. It matches the columns that could be used in the main sheet. What situation would benefit pulling data from a different sheet?

  34. I have a line of code that is referencing file and sheet, but I need to specify the range in R1C1 format so I can use it in a loop. However no matter how I format it, Excel doesn't like it. I'm extracting data elements from a machine controller into excel for printing and archiving. The machine controller has an array of 100 elements, each 100 data entries long. This is what I have now (that doesn't work):

    data = DDERequest(rsichan1, "Recipe_Library_STF[" + CStr(Index) + ",0],l120,C120")
    Range("[Tilt_recipe.csv]Tilt_recipe!" + Cell(Index + 1, 1), Cell(Index + 1, 120)).Value = data

    Somehow, when adding the reference for the file and worksheet doesn't allow me to specify the cell addresses in R1C1 (or at least I don't know how to specify it).

    This works....
    data = DDERequest(coil, req)
    Range(Cells(4, Index + 3), Cells(104, Index + 3)).Value = data

    Any thoughts on how to format this properly?

    • Oh, I forgot to add, Index is a looping variable used to index through all 100 entries in the array. I inhereted this from another person who, rather than looping the lines of code that pull the data, there are 100 sections, each pulling one set of the data. So... whenever we need to make a modification, we need to modify over 1500 lines of code to get the new dataset. I'd rather tweak the 15 or so lines in the loop.

  35. I want to reference an entire workbook from an external excel file on my onedrive so that I can have one copy that is editable by several people and then another copy that is populated by the first, that a much larger group can view, but not edit. Is there a way to do this with out manually referencing every cell? When I try to drag the formula to other cells it does not change the cell references, so every cell has the same data from the A1 cell in the referenced workbook. How can I get this to copy to the rest of the cells but change the cell reference accordingly?

  36. Hi,
    I have an issue I can't find the fix for:

    My sheet1 is a summary sheet and sheet2 and beyond have data and are all formatted exactly the same. I want to use =AVERAGE on sheet1 for a range in sheet2 but am writing a dynamic formula so I can change the range I want on the sheet1 and Excel will know to find/look up the range I want on sheet2. The following formula I can get to work, but only takes an average of 2 non-adjacent cells (not a range):


    where A7 is "sheet2", $B$1 is "2010" and $B$2 is "2020". This formula averages 2010 and 2020 only, not 2010 THRU 2020 like I'm trying to achieve...

    If I put a semicolon in where the comma is separating the 2 formulas, I get an error message. Basically I want to know how to write this: =AVERAGE(VlookupFormula1:VlookupFormula2)

    Any suggestions?

      • I think I figured out a formula that works using the ADDRESS/MATCH/INDIRECT functions.

        Original on sheet1:


        New dynamic formula that worked and got the same result:


        where $A7 = "sheet2"
        where $B$1 = 2010
        where $B$2 = 2020

  37. Hi Alexander/Ablebits Team,

    I've searched everywhere for a clear answer to this but I can't find any and it seems like such a simple problem:

    Let's say I have 6 sheets. The first is a summary page, the other 5 are named "Monday", "Tuesday" etc thru "Friday". I've set up these 5 day-of-the-week sheets with the same exact tables, only with different values in the cells from day to day.

    In A2 on the summary page I want to write a long, complicated formula where Monday occurs several times in calculating Monday's results. (i.e. =((Monday!A1*2)+(Monday!A2*3)/LN(2))-(Monday!A4/Monday!A7) etc etc...)

    To see Tuesday's results, I want Excel to change the data in that summary sheet's formula automatically so I don't have to delete Monday and type Tuesday 10 times. I'd rather type the word Tuesday into A1 and have the complicated formula reference A1 and know to change the text of Monday into Tuesday in all the instances in the formula. Does that make sense?

    It seems excel should have this function since it would save a lot of typing, especially if I have 100 different sheets..


      • Alexander,
        I got that to work, thank you very much! Btw my version of Excel didn't need the "'" around the sheet name. Less is more!

        • Hi Charles,

          Single quotes are not needed for single-word worksheet names, but for multiple-word sheet names they are required.

  38. I have a master data file with multiple sheets of data, each sheet with a different weeks sales data in it. Each sheet uses the format WEEK then week no as its name ie WEEK 1,WEEK 2, WEEK 3

    I then want to lookup from another workbook to figures in theses sheets but want to be able to easily change which Weeks sales data it's looking up to

    Is there a way to use a number in a cell to change the worksheet the formula looks up to

    Ie type 1 into cell A1, and the formula will look up to the WEEK 1 sheet, change the cell to a 23 and the formula will change to look up to WEEK 23 sheet

  39. Hi,

    I'm using the latest Excel version via Office365, so I can use data ranges converted to tables.
    My first workbook contains several sheets, each with a specific table. Data is referenced via the x.lookup function to table fields instead of row/col ranges. Works great !
    This workbook is used as a data container and is read-only (can only be edited by myself).

    A second workbook is pulling data from the first one , also by using the x.lookup function and extracting data from the different sheets based on specific parameters.

    Both workbooks are stored on OneDrive in the same folder.

    It all works fine as long as the first workbook (the data container) is opened on my PC. When I close this file, The second workbook gives error messages as result for the x.lookup referring to the tables. It seems that the references in the x.lookup function are not recognized any more.

    Is this normal behaviour ? Can I extract data from (dynamic) tables in other workbooks when these files are closed ? I hope this can be done without the use of PowerQuery (which is also a great tool).

    Looking forward to your reply.

    • Hello!
      You can extract data from a closed workbook with a VBA macro, ActiveX Data Objects, or with Power Query. You can't do this with a regular reference.

  40. Nice article but what if i have worksheet named "Index", "TEST01" and "TEST02". In Index Worksheet in column A i have the values A1=TEST01, A2=TEST02. Now against B1 under Index sheet i want to capture the data from TEST01!A1 but instead of giving the direct formula i want Index.B1 to refer to the value present in index.A1 and then fetch the data.

  41. Hello, I have an excel workbook(1) that references sheets and cells in an external workbook(2), this works fine. My question is how can I easily redirect workbook(1) to the same cells but in a different external workbook?
    So I want to be able to reference the same sheets and cells, but just in a different workbook without having to manually change the references. I want changes in workbook(2) to be reflected in workbook(1).
    Hope this makes sense.


  42. Question for some
    I have a spread use used daily and saved on every dales Fuel Sales December but I have to take figures for December and go to my folder create January 2022 Master and input these numbers and start Jan Fressh

    is the a formula i can put in January 2022 Master so December would auto carry to January 2022 Master

    Let me know

  43. Just finished an article by Svetlana Cheusheva - "How to create external reference in Excel to refer to another sheet or workbook'. I think it is one best I have read in a few months / years. However, I have ONE major complete for both her and your organization. I have spent several minutes n her's and your website(s) attempting to find where i can register for your daily, weekly, or monthly Excel article / messages / life updates. Have yet found where that form is located. A few of your competitors maintain such a thing & I would appreciate the ability to read more of her and / or your entity's emails. Thoughts Please advise

    • Hi Gregg,

      Thank you so much for your wonderful feedback! At the moment, we don't have such a form, sorry. I will talk to our tech guys and we'll implement a subscription to our weekly digest as soon as we can. Thank you for pointing out that omission!

  44. Hi,

    I want to use external references from one workbook (source) to another (destination). I want to share the destination workbook with my colleagues. I do not want to share the source workbook with them.

    My question: Does someone need access to the source workbook to see the data that is externally referenced in the destination workbook? Or is access to the destination workbook enough?


  45. Hi, I am needing to pull data from one tab (or worksheet) titled Training Records into another tab to create statistics from. I am needing to nest 3 conditions. (If cell = assigned, then appear as Incomplete. If cell = a date 9-Dec-21, then appear as complete. If cell = not required, then appear as NR.)

    This is the formula that I have with a #NAME? error. I am using Microsoft 365.

    =IFS('Training Records'!J2=assigned,Incomplete,'Training Records'!J2=DATE,Complete,'Training Records'!J2=not required,NR)

    • I also tried this formula. I know I am so close.

      =IFS('Training Records'!J2=assigned,Incomplete,'Training Records'!J2=DATE,Complete,'Training Records'!J2=not required,NR)

    • Hello!
      Always use text values with double-quotes. Use the DATE function to specify the date.

      =IFS(J2="assigned","Incomplete",J2=DATE(2021,12,9),"Complete",J2="not required","NR")

      I hope my advice will help you solve your task.

      • Your suggestion worked. This is the formula that I have now.

        =IFS('Training Records'!J3="assigned","Incomplete",'Training Records'!J3=DATE(2021,1,1),"Complete",'Training Records'!J3="not required","NR")

        My last remaining question is how to configure the DATE formula (2021,1,1) to represent any date. Not just a specific date. Is the format listed above correct?

        Thanks, Again!

  46. Hi,
    I have a sheet with Construction project details. On the other summary sheet, I need to select the project and few relevant date of selected project should appear. How can i do that? can you please help.

  47. Hello Svetlana!

    Suggestion -
    In the section "External reference to an open workbook", add a troubleshooting note, that if selecting a range in the referenced file is not automatically generating the reference in the formula, then perhaps the excel files are open in different instances of excel. To confirm, open Task Manager, and see if all open Excel files are nested under a single instance of Excel. If not, close one file and open it again from the other file.

    I just ran into this issue today. Found the solution here:

    Thank you for your thorough educational articles. They have been an oasis for me over the years.

    - Sergey

    • Hi Sergey,

      Thank you so much for this useful information and for your kind words! The tip about different instances is added. Thank you :)

Post a comment

Thank you for your comment!
When posting a question, please be very clear and concise. This will help us provide a quick and relevant solution to
your query. We cannot guarantee that we will answer every question, but we'll do our best :)