Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 2010显示下拉列表中符合条件的项目_Excel_Validation_Excel Formula - Fatal编程技术网

Excel 2010显示下拉列表中符合条件的项目

Excel 2010显示下拉列表中符合条件的项目,excel,validation,excel-formula,Excel,Validation,Excel Formula,我在这个问题上绕了一圈,尝试了尽可能多的不同选择——VLOOKUP、INDEX/MATCH,如果有的话。。。但我每次都失败了 我需要在第3页(a列)中创建一个下拉列表,该列表将填充第2页B列中的值,仅当第2页G列中的值为“是”时。表2中的值如下所示: 这就是目前的情况: 为了达到这一点,我在Name Manager中使用了以下公式: =OFFSET(Units!$B$11,0,0,COUNTIF(Units!$B$11:$B$202,">"""),1) 虽然这很有效,但并不是我所需

我在这个问题上绕了一圈,尝试了尽可能多的不同选择——VLOOKUP、INDEX/MATCH,如果有的话。。。但我每次都失败了

我需要在第3页(a列)中创建一个下拉列表,该列表将填充第2页B列中的值,仅当第2页G列中的值为“是”时。表2中的值如下所示:

这就是目前的情况:

为了达到这一点,我在Name Manager中使用了以下公式:

=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))) 
但这会返回一个错误。我得到的最接近的结果是使用上面的偏移公式,但是执行了COUNTIF;毫不奇怪,这不会将B列与G列中相应的“是”联系起来


有没有人知道我怎样才能让它工作

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

因此,创建一个工作表,并将其命名为
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将在公式周围放置
{}

然后向下复制/拖动足够远的距离,以确保捕获所有可能的返回

然后使用另一个索引/匹配来创建命名范围(OFFSET()是易变的,应尽可能避免)。公式如下:

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

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

您需要数组公式,我不相信您可以将数组公式用作命名范围或数据验证。您将需要另一张工作表,在其中放置数组公式的输出,然后在指定范围内使用另一个公式来获取返回数据的范围。Scott…非常感谢,这完全是我需要的。我错了,没有把数据放进新的表格里。你让它看起来很简单!非常感谢。Scott,有没有办法在这个公式中添加任何内容,允许在下拉列表中忽略空白单元格?然而,我已经检查了忽略空格;我怀疑,因为DataVal中的单元格包含公式,Excel没有将它们视为真正的空白。在第一个公式中添加:
*(单位!$B$11:$B$202“”)
*(COUNTIF($a$1:A1,单位!$B$11:$B$202)=0)之后添加: