我基本上试图这样做,这家伙正在努力做到: Excel drop-down list using vLookup
我已经完成了这些步骤,因为我的数据集有大约400种不同的下拉选项,我希望有一种比命名范围更简单的方法。我有一个大约400个不同帐户名的列表。这些帐户名中的每一个都与家庭相关联,并由家庭ID号标识。一个家庭可以拥有1-5个帐户名称。我希望我的下拉菜单能够识别家庭ID号,然后在下拉菜单中提供与之关联的帐户名称。
示例:
家庭身份证号码是标识符。
我也已经离开这里http://sites.madrocketscientist.com/jerrybeaucaires-excelassistant/data-validation/dynamic-indirect并试图找到一种方法来节省一些手工作业。我是一个全新的人,所以提前感谢您提供任何帮助。
答案 0 :(得分:2)
让我们假装你有三张工作表。第一张工作表Sheet1
是您的用户将要查看的工作表,它包含下拉列表。我们说包含第一个下拉选项的单元格在B1(具有大约400个不同选项的单元格)中,包含依赖下拉列表的单元格在B2中:
在您的第二张表格中,我们称之为MasterList
,是所有数据选项和相应的数据。第1行是标题行;第2行和第2行是实际数据:
在你的第三张纸上,我们称之为DropDownLists
,就是魔术发生的地方。它首先需要有一个所有唯一数据选项的列表。我已将其放在A栏中。您可以通过您喜欢的任何方式从主列表中获取唯一数据选项(高级过滤器,数据透视表,公式,VBA等)。该唯一数据选项列表是Sheet1
单元格B1的下拉列表的基础。然后在DropDownLists
的单元格B2中,根据需要向下复制以保证它将获取与所选数据选项关联的所有数据,使用此公式(调整工作表名称和范围以适合您的实际数据):
=IF(OR(Sheet1!$B$1="",ROW(B1)>COUNTIF(MasterList!$A$2:$A$10000,Sheet1!$B$1)),"",INDEX(MasterList!$B$2:$B$10000,MATCH(1,INDEX((MasterList!$A$2:$A$10000=Sheet1!$B$1)*(COUNTIF(B$1:B1,MasterList!$B$2:$B$10000)=0),),0)))
这使您的DropDownLists
工作表看起来像这样:
最后,我们需要将该列表(基于所选数据选项的数据)设置为动态命名范围。我将其命名为listFilteredData
并使用以下公式定义:
=DropDownLists!$B$2:INDEX(DropDownLists!$B:$B,MAX(2,ROWS(DropDownLists!$B:$B)-COUNTBLANK(DropDownLists!$B:$B)))
然后,对于Sheet1
单元格B2,使用数据验证并使用=listFilteredData
定义列表,您将获得结果,如我的示例所示。
答案 1 :(得分:1)