【问题标题】:Excel 2010 showing items in drop down list where criteria is metExcel 2010 在下拉列表中显示满足条件的项目
【发布时间】:2017-01-05 14:58:46
【问题描述】:

我在这个圈子里转来转去,尝试了尽可能多的不同选项 - VLOOKUP、INDEX/MATCH、IF 等......但我每次都失败了。

我需要在工作表 3(A 列)中创建一个下拉列表,其中填充了工作表 2 的 B 列中的值,只有工作表 2 的 G 列中的值为“是”。表 2 中的值如下所示:

这是目前显示的内容:

我在名称管理器中使用以下公式来达到这一点:

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

虽然这可行,但并不完全符合我的要求。我尝试过使用索引/匹配、小、VLOOKUP 等...但 Excel 报告我的参数太少或无法引用工作表。

我确实浏览过尽可能多的 Excel 网站,但似乎没有人涉及创建下拉列表,其中下拉列表取决于特定的选择。

工作表 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 列中相应的“是”联系起来。

有没有人对我如何使它工作有任何想法?

【问题讨论】:

  • 您将需要一个数组公式,我认为您不能将数组公式用作命名范围或数据验证。您将需要另一张表,在其中放置数组公式的输出,然后在指定范围内使用另一个公式来获取返回数据的范围。

标签: excel validation excel-formula


【解决方案1】:

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

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

A2中放入如下数组公式:

=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 创建命名范围(OFFSET() 是不稳定的,应尽可能避免使用)。公式类似于:

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

这会将命名范围动态设置为上述数组公式创建的动态列表的范围。

【讨论】:

  • Scott...非常感谢,这绝对是我所需要的。没有将数据放入新工作表中,我错了。你让它看起来很简单!谢谢!
  • Scott,有没有办法在这个公式中添加任何内容,允许在下拉列表中忽略空白单元格?但是,我检查了忽略空白;我怀疑因为 DataVal 中的单元格包含公式 Excel 没有将它们视为真正的空白。
  • 在第一个公式的*(COUNTIF($A$1:A1,Units!$B$11:$B$202)=0)之后添加:*(Units!$B$11:$B$202<>"")
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-22
  • 1970-01-01
相关资源
最近更新 更多