Excel:使用[column_A的唯一单元格填充下拉列表,其中column_B值= SomeValue]

时间:2017-05-12 00:05:00

标签: excel excel-formula

我对Excel很新,但我遇到以下情况:

我有Sheet1,其中包含:

  • column_A
  • 中用户输入的数值
  • column_B中用户选择的是/否下拉列表,该列表引用了隐藏Sheet3上的两项列表(是,否)。

我要Sheet2包含:

  • 用户选择的下拉列表,其中包含Sheet1:column_A中用户已选择选择的行的所有唯一值"是"到Sheet1:column_B的YES / NO下拉菜单。

到目前为止,我有一个名为Column_A_Values的列表,其中包含以下公式:

=OFFSET(`Sheet1`!$A$1,0,0, COUNTA(Sheet1!$A$1:$A$1000)+99)

在隐藏的Sheet3上,我在Sheet3!column_B中有以下公式,它会尝试生成一个唯一值列表,用户已选择选择" YES"到Sheet1:column_B中的YES / NO下拉列表。这不起作用,但我相信它在正确的轨道上:

=INDEX(Column_A_Values,MATCH(0,COUNTIF($B$1:$B15,Column_A_Values)+("YES"<>Sheet1$B15),0))

最后,我在sheet2上有一个下拉列表,引用了一个包含以下公式的命名列表:

=OFFSET(Sheet3!$B$2, 0,  0, COUNT(IF(Sheet3!$B$2:$B$1000="", "", 1)), 1)

如果其中任何一项都不清楚,我会道歉,并会在必要时澄清。我很感激任何人愿意提供的帮助。我无法使第二个公式正常工作,所以这是我的首要任务,但我也很感谢您就获得Sheet2的项目符号功能的优越方法提出的任何建议。再说一次,我对Excel很陌生,但是我一直在学习。

2 个答案:

答案 0 :(得分:2)

要从Sheet3的B列中的Column_A_Values生成唯一值列表,请在Sheet3!B2处键入此数组公式,然后将列复制/粘贴足够的数量行:

Sheet3!B2:
=IFERROR(INDEX(Column_A_Values, MATCH(1,
  (OFFSET(Column_A_Values,0,1)="Yes")*(COUNTIFS(B$1:B1,Column_A_Values)=0),
   0)),"")

Ctrl+Shift+Enter

最后,您的验证命名列表可以设置为以下公式:

=OFFSET(Sheet3!$B$2,0,0, COUNT(Sheet3!$B:$B))

答案 1 :(得分:2)

如果您不想使用 Ctrl + Shift + Enter 数组公式解决方案类型,您可以尝试:

1 索引 - SumProduct公式

=IFERROR(INDEX(Column_A_Values,(SUMPRODUCT(SMALL(--(Column_B_Values="YES")*ROW(Column_A_Values),COUNTIF(Column_B_Values,"<>"&"YES")+ROW(A1))))),"")

但是如果对你来说无论是否通过数组公式,这里有一些其他功能,作为一个不同于@ A.S.H 建议的选项。

2 索引公式 - 数组系列

=IFERROR(INDEX(Column_A_Values,(SMALL(IF(Column_B_Values="YES",ROW(Column_A_Values)),ROW(A1)))),"")
Don't Forget to End your function by clicking ctrl+shift+enter, that's really important.

3 --- 偏移公式 - 数组系列

=IFERROR(OFFSET($A$1,SMALL(IF(Column_B_Values="YES",ROW(Column_B_Values)-MIN(ROW(Column_B_Values))+1),ROWS($1:1))-1,0),"")
Don't Forget to End your function by clicking ctrl+shift+enter, that's really important.
  

**在这些示例中,您唯一需要做的就是将Column_B_Values定义为Yes/No Column中的Sheet1 - Column_B   **

然后,正如@ A.S.H再次提到的那样,验证的命名列表可以设置为以下公式:

=OFFSET(Sheet3!$B$2,0,0, COUNT(Sheet3!$B:$B))