Displaying a Worksheet from a Drop-Down List Choice

Written by Allen Wyatt (last updated November 15, 2025)
This tip applies to Excel 2007, 2010, 2013, 2016, 2019, 2021, 2024, and Excel in Microsoft 365


4

Mark knows he can use data validation to create a drop-down list. What he doesn't know is how to use the drop-down list in conjunction with the HYPERLINK function so the user can jump to a particular worksheet. In other words, they pick something in the drop-down list, then click on a link that says "Go to Report," and then the report they selected in the drop-down list is displayed. Mark wonders if there is a way to represent the report's worksheet (the target) in the drop-down list, as well as the name displayed in the drop-down list.

For Mark's purposes, I'm going to assume that the reports are contained on other worksheets in the current workbook. In that case, it would be good to define a small table that contains three columns. The first column contains the text you want in the validation list, perhaps the name of the reports. The second column is the name of the target worksheet containing the report, and the third column is the target cell within the worksheet. (See Figure 1.)

Figure 1. Setting up table information.

Notice that the table doesn't really need any column headings. I will, however, select the cells and give them a name. In this case, I'll use the name JumpTable. Using three columns in the table allows flexibility in specifying destination worksheets and cells. In fact, over time you can make any changes in the table desired, and your hyperlink will still work just fine.

Speaking of the hyperlink, the next step is to use data validation to set up a drop-down list. Select cell F1 and then, on the Data tab of the ribbon, click the Data Validation tool. Excel displays the Data Validation dialog box. Using the Allow drop-down list, choose List, and then enter this formula in the Source box:

=INDEX(JumpTable,0,1)

Click OK, and your drop-down list, in cell F1, is now populated with the values in the first column of the JumpTable range. Now you can combine this selection with the HYPERLINK function in the following manner:

=HYPERLINK("#"&TEXTJOIN("!",, XLOOKUP(F1, CHOOSECOLS(JumpTable,1), CHOOSECOLS(JumpTable,{2,3}))),"Go to Report")

This is a long formula, but it works because the TEXTJOIN function returns a combination of cells from the second and third columns of JumpTable based on a match in the first column. The way the formula is set up assumes that the worksheet name (in the second column) is only a single word. If the names contained in the second column contain spaces, then you'll want to modify the formula to add apostrophes around what is pulled from the second column:

=HYPERLINK(LET(r, XLOOKUP(F1, CHOOSECOLS(JumpTable,1), CHOOSECOLS(JumpTable,{2,3})), "#'" & INDEX(r,1,1) & "'!" & INDEX(r,1,2)),"Go to Report")

These formulas, though, will only work if you are using Excel 2021, Excel 2024, or Microsoft 365. If you are using an earlier version of the program, then you'll need to rely on older lookup functions:

=HYPERLINK("#" & IFERROR("#'" & VLOOKUP(F1,JumpTable,2,FALSE) & "'!" & VLOOKUP(F1,JumpTable,3,FALSE),""),"Go to Report")

ExcelTips is your source for cost-effective Microsoft Excel training. This tip (9424) applies to Microsoft Excel 2007, 2010, 2013, 2016, 2019, 2021, 2024, and Excel in Microsoft 365.

Author Bio

Allen Wyatt

With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He is president of Sharon Parq Associates, a computer and publishing services company. ...

MORE FROM ALLEN

Errors When Subtracting

When you subtract two numbers from each other, you have a certain expectation of what Excel should deliver. What if you ...

Discover More

Images in Documents Shared with Others

Word allows you to add images to your documents. If you send those documents to others, you may run across a problem that ...

Discover More

Adding Area Codes to Phone Numbers

If you keep phone numbers in an Excel worksheet, you may need a way to add an area code to the beginning of all of the ...

Discover More

Program Successfully in Excel! This guide will provide you with all the information you need to automate any task in Excel and save time and effort. Learn how to extend Excel's functionality with VBA to create solutions not possible with the standard features. Includes latest information for Excel 2024 and Microsoft 365. Check out Mastering Excel VBA Programming today!

More ExcelTips (ribbon)

Setting Data Validation Input Messages

When using data validation, you might want to have Excel display a message when someone starts to enter information into ...

Discover More

Limiting Choices in a Cell

Want to limit what a person can enter into a particular cell? You can use Excel's data validation feature to help enforce ...

Discover More

Limiting Entry of Names

When inputting information into a worksheet, you may need a way to limit what can be entered. This scenario is a prime ...

Discover More
Subscribe

FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."

View most recent newsletter.

Comments

If you would like to add an image to your comment (not an avatar, but an image to help in making the point of your comment), include the characters [{fig}] (all 7 characters, in the sequence shown) in your comment text. You’ll be prompted to upload your image when you submit the comment. Maximum image size is 6Mpixels. Images larger than 600px wide or 1000px tall will be reduced. Up to three images may be included in a comment. All images are subject to review. Commenting privileges may be curtailed if inappropriate images are posted.

What is six less than 8?

2025-11-16 00:55:36

Peter

I have used a jump table similar to this just using a macro, but found that if the target worksheet was edited the target cell often moved. To avoid ending up in the wrong cell, taking the last row of the example, I would refer to the target cell with the following formula in column C
=CELL("address",'My Assets'W15).


2025-11-15 23:03:14

Tomek

Further to my earlier comment:
You may not need to go to a specific target cell, just activate the sheet with the requested report.
In such case you can omit the entry in the cell H1, as well as two lines of the code making it simpler:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("F1")) Is Nothing Then
        sht = Range("G1").Value
        Sheets(sht).Activate
    End If

End Sub
=================
In any case you may want to make sure that the relevant area of sheet that opens is properly positioned in the Excel Window; just selecting a particular cell does not necessarily position it in the upper left corner of the window. This applies also to the hyperlink method. How to get the proper view of the sheet with the report when it opens is a whole different story, and may be a subject of a future tip, if Allen agrees.


2025-11-15 22:43:38

Tomek

The method proposed in the tip works well and is exactly what Mark asked for, but it requires four or three clicks: select the cell with the multiple choice (unless already selected), click on the down arrow, select one of options from the drop-down list, then click the hyperlink in another cell. I think the last click is not necessary, hence the use of the hyperlink is also not necessary. On the other hand, my suggestion is to use a macro that some users may not not like or even be able to do (company policies).
I suggest the macro be triggered by a change in the cell with the drop-down list.
The setup is the same as in the tip, up to the point where the validation list is created in the cell F1.
Instead of creating a hyperlink in a nearby cell, use VLOOKUP based on JumpTable to get the sheet name and the target cell into the neighbouring cells G1 and H1, respectively:
=VLOOKUP(F1,JumpTable,2,FALSE)
=VLOOKUP(F1,JumpTable,3,FALSE)
(see Figure 1 below)
You could also use XLOOKUP for this purpose. Please note that for simplicity I made sure that sheet names have no spaces.
Once you have all this in place add the following macro to your "Table of Contents" sheet code:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Intersect(Target, Range("F1")) Is Nothing Then
        sht = Range("G1").Value
        cel = Range("H1").Value
        Sheets(sht).Activate
        ActiveSheet.Range(cel).Select
        
    End If
    
End Sub

Figure 1. 


2025-11-15 16:39:21

Tomek

What is the purpose of the "#" in the formula:
=HYPERLINK("#"&TEXTJOIN("!",, XLOOKUP(F1, CHOOSECOLS(JumpTable,1), CHOOSECOLS(JumpTable,{2,3}))),"Go to Report")

I know it is important, because it does not work without it, but I have no idea why.


This Site

Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.

Newest Tips
Subscribe

FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."

(Your e-mail address is not shared with anyone, ever.)

View the most recent newsletter.