【问题标题】:Data Validation List filtered by row按行过滤的数据验证列表
【发布时间】:2017-02-18 00:40:08
【问题描述】:

数据示例:

  A      B
Item 1  TRUE
Item 2  FALSE
Item 3  TRUE
Item 4  FALSE

我想仅使用公式(无宏)创建数据验证列表,该公式仅返回 A 列中 B 列中为 TRUE 的项目。在此示例中,列表将包含项目 1 和项目 3。我尝试了以下公式没有运气的列表(基于此question)。

Excel 抱怨 The Source 当前使用此公式计算错误:

=IF(B1:B4=TRUE,A1:A4,"")

这不会导致错误,但返回的列表仅包含第 1 项:

=INDEX(A1:A4,SUMPRODUCT(MATCH(TRUE,(B1:B4)=TRUE,0)),1)

应该是很简单的事情,但到目前为止还没有运气。

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    C1中输入:

    =IF(B1,1,"")
    

    C2中输入:

    =IF(B2,1+MAX($C$1:C1),"")
    

    然后抄下来。在 D1 中输入:

    =IFERROR(INDEX(A:A,MATCH(ROW(),C:C,0)),"")
    

    然后抄下来。

    然后使用列 D 作为您的 DV 列表。

    【讨论】:

    • 这行得通,但是如果我使用孔列 D 作为源,现在我的 DV 列表也包含空白值。我可以将列表硬编码为 D1:D2,但我想灵活一些……
    • 创建一个动态范围并使用该范围来驱动验证列表
    • 动态范围,我的意思是把它作为数据验证源的公式“=OFFSET($D$1,0,0,COUNTA($D:$D),1)"跨度>
    • @smackenzie 谢谢。
    • 实际上“COUNTIFS”效果更好:=OFFSET($D$1,0,0,COUNTIFS($D:$D,"?*"),1)。 “?*”标准意味着单元格中必须至少有 1 个字符,因此它会忽略不返回任何内容的公式。
    猜你喜欢
    • 1970-01-01
    • 2015-05-03
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多