2012-01-17 58 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值進行更新。如果您然後在數據驗證下拉列表中使用該範圍,它將使用索引進行更新。