Excel 2010在满足条件的下拉列表中显示项目

我正在围绕着这个圈子走,并尝试了许多不同的选项 – 我可以想到 – VLOOKUP,INDEX / MATCH,IF等等,但是我每次都失败。

我需要在工作表3(列A)中创build一个下拉列表,该工作表仅在工作表2的列G中的值为“是”的情况下在工作表2的列B中填充值。 表2中的值如下所示:

工作表2数据屏幕

目前显示的是:

Sheet 3数据屏幕

我在名称pipe理器中使用以下公式来实现这一点:

=OFFSET(Units!$B$11,0,0,COUNTIF(Units!$B$11:$B$202,">"""),1) 

虽然这有效,但不是我所需要的那样。 我已经尝试使用索引/匹配,小,VLOOKUP等…但Excel报告,要么太less的参数或不能引用工作表。

我已经从字面上尽可能多的Excel网站,但我似乎没有看到创build下拉列表的下拉列表依赖于特定的select。

表格2,列B中的值是从隐藏表格中获取的,并使用以下查询进行收集:

  =IF(ISERROR(INDEX(All_Units!$D$2:$D$660542,MATCH(Units!A11,All_Units!$C$2:$C$660540,0))),"",INDEX(All_Units!$D$2:$D$660542,MATCH(Units!A11,All_Units!$C$2:$C$660540,0))) 

我想知道我是否可以使用这个查询并使用它来生成下拉列表,这些列表包括:

 =INDEX(Units!$B$11:$B$202,MATCH(Units!$G$11:$G$202="Yes",Units!$G$11:$G$202,0))) 

但是这会返回一个错误。 我得到的最接近的是使用上面的OFFSET公式,但是执行COUNTIF, 不出所料,这不会将B列与G列中相应的“是”联系起来

有没有人有任何想法,我怎么能得到这个工作?

您将需要创build另一个工作表,您将在其中放置一个数组公式。 这个公式将返回所有需要的输出。

所以创build一个工作表并将其命名为DataVal

A2中input以下数组公式:

 =IFERROR(INDEX(Units!$B$11:$B$202,MATCH(1,(Units!$G$11:$G$202="Yes")*(COUNTIF($A$1:A1,Units!$B$11:$B$202)=0),0)),"") 

作为一个数组公式需要使用Ctrl-Shift-Enter确认。 如果正确完成,则Excel将在公式周围放置{}

然后复制/下拉足够多,以确保捕获每一个可能的回报。

然后使用另一个INDEX / MATCH创build命名范围(OFFSET()是易失性的,应尽可能避免)。 公式会是这样的:

 =DataVal!$A$2:INDEX(DataVal!$A:$A,MATCH("ZZZ",DataVal$A:$A)) 

这将dynamic地将命名范围设置为由上面的数组公式创build的dynamic列表范围。