Imagine I\'m writing a menu-planner in Excel for my kids (easier to describe than my actual problem) ...
I have a list of available foods: apples, bananas, carrots,
First post alert!!
Here's my approach http://www.mediafire.com/download/sqm41koonqjdz99/DynamicLists.xlsx
It is based on three steps.
Step 1:It uses a series of 5 tables to bash the tables of x's of food/kid likes into something more useful which lists out for each kid, their 1st, 2nd, 3rd, etc likes followed by #N/A's for any "unused" like positions. The fifth table contains the data validation information - its just a question of picking the right column and the right number of rows from this table.
Step 2: Cells D2 and E2 identify the column and number of rows respectively.
Step 3: A named range called ValidFood is dynamically defined and picks out the right column and rows from the fifth table using an =OFFSET() function. This is the clever bit - you can use functions in the name manager and that's what has been done here. The data validation rule for cell B2 simply makes reference to this named range. Alternatively, the =OFFSET() formula could have been used directly in the data validation rule using the Custom option
I've reviewed the solution in light of Lina's and found them not dissimilar. In both solutions the Step 1's achieve the same thing (except Lina's uses a '-' character in place of my #N/A for an unused choice). Both then pick out the relevant bit of the outcome of Step 1 and apply this to the data validation rule. The difference between them lies in approach: lengthy and nested formula in one (so compact but needing effort to understand) vs more extensive use of the worksheet for recording the detailed steps along the way in the other (less compact but requiring less effort to understand).