2012-01-17 105 views
0

我希望在Sheet1的单元格D5中具有验证列表。此列表中的项应该基于Sheet2上的表动态地进行,但我只需要那些Column2为TRUE的项。下面是我的表在Sheet2上的例子:Excel 2007:带有过滤数据的数据验证列表

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

基于细胞D5确认列表上方的TABEL工作表Sheet1上应该只包含项目1,项目2和项目4。这是否有可能(最好不使用VBA)?

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

+0

您不能在验证中使用'联合','相交'或'数组公式'(在空白工作表上尝试自己尝试)。这不适用于公式 – JMax 2012-01-17 10:53:06

回答

0

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

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

Column1 | Column2 | Column3 Item1 | TRUE | Item1 Item2 | TRUE | Item2 Item3 | FALSE | Item3 Item4 | TRUE |项目4

{=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场,他们创造,让你在第1和第2的结果与TRUE的索引。 公式结尾的第二个数字确定列表中的哪个项目。 当你输入公式时,你不能只用{}键入它,把它们关闭,然后按ctrl + shift + enter键来完成公式,它会把它们放入你的公式中,这对于创建索引至关重要式。

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