Excel 2007:包含已过滤数据的数据验证列表

时间:2012-01-17 08:07:59

标签: excel-2007 excel-formula

我想在Sheet1上的单元格D5中有一个验证列表。此列表中的项应基于Sheet2上的表动态生成,但我只需要Column2为TRUE的那些项。下面是我在Sheet2上的表格示例:

Column1 | Column2
Item1   | TRUE
Item2   | TRUE
Item3   | FALSE
Item4   | TRUE

基于Sheet1上单元格D5中的验证列表上方的表格,应该只包含Item1,Item2和Item4。这是否可行(最好不使用VBA)?

我知道我可以创建动态命名范围,但我不知道如何基于另一列过滤它们。

1 个答案:

答案 0 :(得分:0)

您可能想要创建一个索引来过滤掉false。

最简单的方法是翻转列,或将第3列作为第1列的副本,然后使用类似的公式。

Column1 | Column2 |栏3 Item1 | TRUE |项目1 Item2 | TRUE |项目2 Item3 | FALSE |项目3 Item4 | TRUE | ITEM4

{=INDEX($B$1:$C$100,SMALL(IF($B$1:$C$100="TRUE",ROW($B$1:$C$100)-ROW($B$1)+1,ROW($C$100)+1),1),2)}
    {=INDEX($B$1:$B$100,SMALL(IF($B$1:$C$100="TRUE",ROW($B$1:$C$100)-ROW($C$1)+1,ROW($C$100)+1),2),2)}

这些将是您的前2个字段,它们会创建一个索引,为您提供第一个和第二个结果为TRUE。 公式末尾的第二个数字决定了列表中的哪个项目。 当你输入公式时,你不能只用{}输入它,把它们关掉然后按ctrl + shift + enter来完成公式,它会把它们放进去,这对创建一个索引公式至关重要

创建索引后,它将根据true / false值进行更新。如果您在数据验证下拉列表中使用该范围,它将使用索引进行更新。