使用多个条件根据较大列表中的数据在 Excel 中创建较小的动态列表 [已关闭]

问题描述 投票:0回答:2

我需要一些建议和帮助来使用较大列表中包含的信息在 Excel 中创建一个列表,该列表是较大列表的单独子集。

例如,在较大的列表中,单元格 A1:A15 中有一个项目 ID。在单元格 B1:B15 中,有一个优先级字段,在下拉框中表示是/否(或空白)。在第三列,单元格 C1:C15 中,有一个“交付日期”字段,指示项目被分配/预计交付的月份(二月、三月、四月或空白,表示未分配)。

我需要创建的是一个动态列表,它是较大列表的子集,其中包含既是优先级项目(其中优先级列 B =“是”)且尚未分配/分配给交付日期的项目/月份(其中“交货日期”列 C = 空白)。所以我需要创建一个利用多个选择标准的公式来做到这一点。

在我在这里找到的关于该主题的上一篇帖子中,作者请求帮助创建一个简单的单一标准公式来完成类似的事情 - 从较大列表中包含的数据创建较小的列表。这是一个简单的数组公式,但是很优雅并且工作得很好。不幸的是,尽管我尝试调整和修改该公式,但我无法破解如何将多个标准合并到公式中的代码。 原文如下:

{=INDEX($A$1:$A$15,小(IF($B$1:$B$15="是",ROW($B$1:$B$15)),ROW()-ROW($G$2 )+1))}

我尝试修改 SMALL 公式中的 IF 语句,添加 AND() 来检查 C 列中的空格,如下所示:

{=INDEX($A$1:$A$15,小(IF(AND($B$1:$B$15="是",$C$1:$C$15=""),ROW($B$1:$ B$15)),ROW()-ROW($G$2)+1))}

我将其设为数组公式(在包含公式的单元格中使用 Shift-Ctrl-Enter)。这导致检索较大源数据列表的第一行(其中没有“是”或“否”,并且“交货日期”列中有空白),但是当我将公式复制并粘贴到列中时,我收到了#NUM! Excel 错误消息。

我错过了什么?

预先感谢您提供的任何帮助。

excel excel-formula excel-2016
2个回答
0
投票

使用这个公式,在

E2
中说:

=INDEX($A$1:$A$15,SMALL(IF($B$1:$B$15="Fail",ROW($B$1:$B$15)),ROW()-ROW($E$2)+1))

CTRL+SHIFT+ENTER 对其进行评估并将其向下拖动。

enter image description here

另一种方法是过滤列

B
中的
Fail
值并仅复制可见行


0
投票

试试这个小宏:

Sub SmallerList()
    K = 1
    For Each r In Range("B1:B15")
        If r.Value = "Fail" Then
            Range("C" & K).Value = r.Offset(0, -1).Value
            K = K + 1
        End If
    Next r
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.