使用带过滤的公式的Excel数据验证列表

时间:2013-04-25 15:05:11

标签: excel excel-formula validation

我有以下工作簿:

工作表帐户

Accounts worksheet

工作表帖子

Posts worksheet

我想知道是否可以使用公式在工作表帖子中将类型列表的数据验证定义为整个列 B ,以便数据验证弹出窗口仅显示来自帐户表的帐户 ID 网站列与帖子中所选行的网站列相匹配工作表,状态列中的值有效

在SQL-ish或LINQ-ish中:

  

SELECT Id FROM Accounts WHERE Website =   @ SelectedPostRow.Website AND St​​atus = Active

第二张图像上的标记显示应在下拉列表中显示哪些值。

2 个答案:

答案 0 :(得分:3)

是的,你可以这样做,但它需要一些支持设置。

首先,对于您的每个网站选项,您需要为要创建的下拉列表中的选项创建命名范围。

要执行此操作,只需突出显示单元格列表并右键单击,然后选择“命名范围”

然后,您需要为您的网站名称创建一个查找列表到指定的范围可能性

然后在您的数据验证源中使用像这样的论坛:

=indirect(vlookup(a1,$i$8:$j$13,2,false))
然后whala,下拉列表根据网站价值而变化。

现在,如果您还需要自动化命名范围位,则可以将它们更改为包含整个列,然后使用数据透视表来提取数据。只需要 每个网站选项的独立枢轴。

每次提取新数据时,您都需要刷新枢轴,但它会起作用。

答案 1 :(得分:3)

这个问题需要一点准备。 在同一张纸或另一张纸上,复制您的数据(或添加相关单元格)

在A栏中,您有一个可以排名的号码。 我用(细胞A2)获得它:

  

= IF(C2 = $ $Ĵ2,1,0)* IF(E2 ="主动",1,0)* ROW()

在B栏中对数字进行排名并排除不需要的行(B2):

  

= IF(A2 = 0,0,RANK(A2,A:A))

然后您可以使用G列中的枚举(手动输入)在H列中进行VLOOKUP。 H1的公式:

  

= IFERROR(VLOOKUP(G2,$ B $ 2:$ d $ 9,3,FALSE),"&#34)

现在您可以根据列H

设置验证

screenshot

PS:公式中可能存在小错误,因为我已将它们翻译成意大利语,我无法用英语进行测试。