The real problem here isn't the formula, it's the assumption that a single helper cell can scale across multiple independent rows. Kermie88 has built something genuinely useful: a cascading dropdown system where the available kit options shift based on the size selected. That's smart. But the moment you need seven rows to behave independently, referencing `'Other Sheet'!C13` becomes a bottleneck. Each row needs its own logic, its own source of truth, and its own helper cell. The spreadsheet doesn't know you want row 14 to mirror row 13's behavior, it only knows you pointed it at C13.
The fix is straightforward, even if it requires rethinking the approach. Instead of one formula on a helper sheet, each row needs its own formula that references its own cell. That means C13 gets its own `FILTER` formula, C14 gets its own, and so on. The `SORT(UNIQUE(FILTER(...)))` pattern stays the same, only the reference changes. You can still use named ranges for the lookup table, but the cell reference must be relative to the row you're working in. This isn't a limitation of the tool; it's a design choice. The spreadsheet is a grid, not a database. It rewards explicit instructions over clever shortcuts.
What this reveals is a broader truth about building tools inside spreadsheets: the moment you introduce interactivity, drop downs, dynamic pricing, conditional logic, you're no longer just organizing data. You're designing a user interface. And interfaces need consistency. If row 13 works but row 14 doesn't, the problem isn't the formula. It's the architecture. Kermie88 is essentially asking the spreadsheet to infer intent, and it can't. But the good news is that the solution is repeatable. Copy the formula down, adjust the cell reference, and each row becomes its own self-contained system.
The practical takeaway is this: don't fight the grid. Embrace it. Use helper columns or hidden sheets to keep the logic visible and maintainable. If you need seven independent rows, build seven independent formulas. It's more upfront work, but it saves you from the headache of debugging a cascading mess later. And for anyone else building similar tools, this is the moment to pause and ask: am I designing for one row, or for every row? The answer changes everything.