Tom’s Tutorials For Excel: Viewing All Worksheets With One INDIRECT Formula

Tom’s Tutorials For Excel: Viewing All Worksheets With One INDIRECT Formula

Here’s how you can use Data Validation with the INDIRECT function in a single formula to quickly and easily view the contents of other worksheets in your workbook.

Suppose your workbook is the company budget, designed so the company’s regions occupy their own budget worksheets. For example, the following picture shows worksheets for North, South, East, and West regions. A Summary worksheet is also designed the same, and is the focus of this example.

Step 1
On the Summary worksheet in cell H2, Data Validation is applied, with the list of allowable entries limited to the regions’ worksheet tab names. I selected cell H2 and pressed Alt+D+L to show the Data Validation dialog box. In the Source field for List, I typed in those tab names separated by a comma, as shown in the following picture.

Step 2
Still on the Summary worksheet, I selected the same range of cells that contain budget numbers for the other regions. It’s a valuable benefit from designing the workbook with all worksheets laid out the same. In the active cell (B4 in this example) I typed the formula…=IF(LEN($H$2)=0,0,INDIRECT("'"&$H$2&"'!"&ADDRESS(ROW(),COLUMN())))
…and I pressed Ctrl+Enter which applied that formula to all selected cells.

Step 3
Now while never leaving the Summary worksheet, it’s a simple matter of selecting the worksheet name from the drop down list in cell H2 depending on which region I want to quickly see. In the following picture, I selected the East Region.

Hi Tom, I have a workbook wherein a consecutive range of sheets are named differently (in particular each sheet is a person’s name.) Now, from time to time a sheet may be added or deleted within the range of sheets. I need a formula that lists the content of the same single cell on each sheet in a column on another sheet. Can you please help?

Hi Tom, I have a workbook where each sheet is named differently and I want to pull the data from the same cell on each page. Currently my summary sheet is listed in this way (see below), (where “1001” is the name of the worksheet, and so forth). I am wanting to set up my summary page so that each time a new worksheet is added, the summary page adds a new row and pulls the info. So if I open up sheet “1250” and put data into D5, then when I go back to the summary page, it shows a new row with the date from that worksheet.

(2)
Are there other worksheet besides the summary sheet whose cell D5 would not be included in the calculation, and if so, what are those non-inclusive sheets’ names?

(3)
When you say “the summary page adds a new row”, that to me means the solution should be VBA, not strictly a formula, so is that OK. If it is not OK to use VBA, then I would not suggest a strict formula solution because it would not be robust enough to be effective.

There are 2 other ways to do this. One is by using the INDEX function but that can also bring you problems depending on the order in which the sheets are arranged relative to each other. I almost never use the INDEX property to reference a worksheet.

The most reliable way to do this is with a macro or user-defined function to refer to the worksheets’ CodeName property, which never changes no matter what the sheet tab name is, or who is using the workbook, or which position the worksheet is in relative to other worksheets. This would require VBA so if that is not an option for you then you are destined to have problems referring to worksheets when their names and positions change. If you know that a VBA solution is OK, then post back saying so and we can take it from there.

I would like to return the information in the same cell in multiple worksheets. Each worksheet is numbered 1, 2, 3, etc. and in the summary tab I am looking to populate the table rows are labeled 1, 2, 3, etc. What formula can I used that references the numbers in the table as the look up for the sheet I want the numbers populated from?
Eg.
Week Data
1 (from cell K13 on sheet 1)
2 (from cell K13 on sheet 2)
3 (from cell K13 on sheet 3)
4 (from cell K13 on sheet 4)
etc

I would like to return the information in the same cell in multiple worksheets. Each worksheet is numbered 1, 2, 3, etc. and in the summary tab I am looking to populate the table rows are labeled 1, 2, 3, etc. What formula can I used that references the numbers in the table as the look up for the sheet I want the numbers populated from?
Eg.
Week Data
1 (from cell K13 on sheet 1)
2 (from cell K13 on sheet 2)
3 (from cell K13 on sheet 3)
4 (from cell K13 on sheet 4)
etc