Make your filter function dynamic with a simple dropdown list

If you’re looking to change the array of your filter function dynamically using a dropdown list, you’re on the right track!

2 min readMicrosoft Excel | Help & Support with your Formula, Macro, and VBA problems | A Reddit Community

That `FILTER` formula is doing exactly what you asked, but it's also trapping you inside a static reference. You've hardcoded `February` into the range, and now you want a dropdown to swap it for March, April, or any other sheet. That's not a limitation of your logic, it's a limitation of how spreadsheets handle string-to-range references. And it's a pain point we hear constantly from people who are ready to move beyond manual updates.

You tried a lookup table with full range strings like `February!A:H` as plain text. That's a smart instinct, but `FILTER` and `VLOOKUP` don't evaluate text as ranges. They see a string, not a reference. The workaround that works, without VBA or scripts, is `INDIRECT`. Wrap your sheet name in `INDIRECT`, and you can build the range dynamically from a dropdown cell. For your formula, that means something like: `=TAKE(SORT(FILTER(INDIRECT(B1&"!A:H"), INDIRECT(B1&"!C:C")=A3, ""), 8, -1), 5)`, where `B1` holds the month name from your dropdown. It's not elegant, but it works.

What this really reveals is a deeper friction. You're trying to automate a workflow that should be simple, switch months, get fresh results, and instead you're fighting the tool. The spreadsheet is treating each month as a separate silo, and you're the bridge between them. That's not your job. Your job is to ask the question and get the answer. The formula should adapt, not the user. This is exactly the kind of structural inefficiency that AI-native tools are designed to eliminate, where the data model itself understands time as a dimension, not a sheet name.

So here's the concrete point: You can make that dropdown work today with `INDIRECT`, and it will save you the headache of editing formulas every month. But the real win isn't the workaround, it's recognizing that your workflow is telling you something. When a tool makes you jump through hoops to do something as natural as "give me last month's top five," the tool is the bottleneck. You shouldn't have to automate around it. You should have a system that automates *for* you.

From Microsoft Excel | Help & Support with your Formula, Macro, and VBA problems | A Reddit Community

Hey, any help would be super appreciated!

=TAKE(SORT(FILTER(February!A:H,February!C:C = A3, ""), 8, -1), 5)

Read the original at Microsoft Excel | Help & Support with your Formula, Macro, and VBA problems | A Reddit Community