• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 209
  • Last Modified:

Dependent Data Validation

Hi,

I have few hundred cities & provinces in one column

Eg: Calgary, AB (City, province)

Next column has 'store names'

eg: Store 1

On the main page, user can type in/choose city via data validation.

Now I want to give the user a chance to select the store location via another data validation list but those that comes in within the user-selected city, province only

Whats the best way to do this without going into VBA? (using formulas only)

One way is, assign stores with same city under a named range

Say I create a named range of "B2:B15" as 'Calgary, AB'

Assuming user chooses city on cell A1 and store on cell A2

on A2, I can do data validation as
= indirect($A1)

However, this would require 100s of named ranges (or 1 for each city)

Any other ways without using macros?
0
Shanan212
Asked:
Shanan212
  • 2
  • 2
  • 2
1 Solution
 
Saqib Husain, SyedEngineerCommented:
0
 
NBVCCommented:
If you can list all the cities and corresponding stores grouped together.

e.g..

Calgary, AB......Store1
Calgary, AB......Store2
Calgary, AB......Store3
Toronto, ON.....Store4
Toronto, ON.....Store5
Toronto, ON.....Store6
Toronto, ON.....Store7
Vancouver, BC..Store8
Vancouver, BC..Store9
... etc.  (those are 2 columns)

then call this range something like MyRange

Then in your data validation, use List and enter formula:

=OFFSET(INDEX(MyData,1,2),MATCH($E$2,INDEX(MyData,0,1),0)-1,0,COUNTIF(INDEX(MyData,0,1),$E$2),1)

where E2 is the cell with the City dropdown input.
Copy-of-Test-2.xlsx
0
 
Shanan212Author Commented:
NB,

The listing part wouldnt work as this data (listing in corresponding order) is not up to me. The user would be entering this and might screw-it up.


ssaqibh,

Please see attached.

Thanks!
Copy-of-Copy-of-dropDownbreakDow.xlsm
0
Cloud Class® Course: C++ 11 Fundamentals

This course will introduce you to C++ 11 and teach you about syntax fundamentals.

 
Saqib Husain, SyedEngineerCommented:
That method works horizontally. The sub-list has to be entered to the right of the selected item.

If you want to enter the DV items vertically then follow NB_VC's method.
0
 
NBVCCommented:
If you don't think the users will group the items, then perhaps use a formula to create another list on the side that extracts all the corresponding items, based on the selection.  

So for example in the workbook I attached, in T2 enter formula:

=IFERROR(INDEX($O$2:$O$19,SMALL(IF($N$2:$N$19=$E$2,ROW($N$2:$N$19)-MIN(ROW($N$2:$N$19))+1),ROWS($T$1:$T1))),"")

confirmed with CTRL+SHIFT+ENTER and copied down as far as needed.  * adjust ranges to suit first.

Then in the data validation in F2, use formula:

=OFFSET($T$2,0,0,COUNTIF($T:$T,"?*"),1)
Copy-of-Test-2.xlsx
0
 
Shanan212Author Commented:
Thats some next level stuff :)

Thanks!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

  • 2
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now