我需要一些建议和帮助来使用较大列表中包含的信息在 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 错误消息。
我错过了什么?
预先感谢您提供的任何帮助。
使用这个公式,在
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 对其进行评估并将其向下拖动。
另一种方法是过滤列
B
中的 Fail
值并仅复制可见行
试试这个小宏:
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