我有以下工作簿:
工作表帐户:
工作表帖子:
我想知道是否可以使用公式将列表类型的数据验证定义到工作表帖子中的整个B列,以便数据验证弹出窗口仅显示帐户工作表中的帐户ID,其中网站列与帖子中选定行的网站列匹配工作表,哪些在状态列中具有活动值?
用 SQL-ish 或 LINQ-ish 的话:
从帐户中选择 ID,其中网站 = @SelectedPostRow.Website 并且状态 = 活动
第二张图片上的标记显示了哪些值应显示在下拉列表中。
我有以下工作簿:
工作表帐户:
工作表帖子:
我想知道是否可以使用公式将列表类型的数据验证定义到工作表帖子中的整个B列,以便数据验证弹出窗口仅显示帐户工作表中的帐户ID,其中网站列与帖子中选定行的网站列匹配工作表,哪些在状态列中具有活动值?
用 SQL-ish 或 LINQ-ish 的话:
从帐户中选择 ID,其中网站 = @SelectedPostRow.Website 并且状态 = 活动
第二张图片上的标记显示了哪些值应显示在下拉列表中。
是的,您可以这样做,但它需要一些支持设置。
首先,对于您的每个网站选项,您需要为您要创建的下拉列表中的选项创建一个命名范围。
为此,只需突出显示单元格列表并右键单击,选择命名范围
然后,您需要为您的网站名称创建一个查找列表到命名范围的可能性
然后在您的数据验证源中使用这样的论坛:
=indirect(vlookup(a1,$i$8:$j$13,2,false))
然后whala,下拉列表会根据网站价值而变化。
现在,如果您还需要自动化命名范围位,您可以将它们更改为包含整个列,然后使用数据透视表来提取数据。每个网站选项只需要一个独立的支点。
每次您提取新数据时,您都需要刷新枢轴,但它会起作用。
这个问题需要一点准备。在同一个工作表或另一个工作表中,复制您的数据(或添加相关单元格)
在 A 列中,您有一个可以排名的数字。我用(单元格A2)获得它:
=IF(C2=$J$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),"")
现在您可以根据 H 列设置验证
PS:公式中可能有小错误,因为我是从意大利语翻译过来的,我无法用英语进行测试。