如何根据给定的条件在 Excel 上生成列表?

如何根据给定的条件在 Excel 上生成列表?

我正在尝试构建一个类似于仪表板的东西,其中包含几个下拉菜单,它可以搜索表格并根据我选择的内容为我提供列表。请参阅下表:

表格示例

所以我想要的是,当我从一个下拉菜单中选择“不需要”,从另一个下拉菜单中选择“文档 2”时,它应该给我一个符合此条件的所有系统的列表。

我将非常感激任何能帮助我的帮助!

谢谢

答案1

我假设屏幕截图是您的数据表,而用于指定标准的两个下拉菜单位于其他地方。

此公式从以下视频中的 B17 开始填写,列出了符合条件的系统: =IFERROR(INDEX(A$2:A$13,AGGREGATE(15,6,ROW(A$1:A$12)/(INDEX(B$2:H$13,,MATCH(C$18,B$1:H$1))=C$17),ROW()-16)),"")

这是一个数组公式,必须用 输入CTRLShiftEnter

在此处输入图片描述

我希望这个帮助能祝你好运。 ______________________________________________________________________________

怎么运行的:内部函数INDEX()返回使用 中的“Doc”下拉列表选择的数据表的整个列C$18。然后,等式返回每个单元格包含下拉列表中的选项的位置的值=C$17数组。TRUE/FALSETRUEC$17

ROW(A$1:A$12)给出一个连续数字的数组{1;2;3;...12},然后将其除以数组TRUE/FALSE

在涉及逻辑值的算术运算中,TRUEFALSE被转换为 1 和 0。因此除法#DIV/0!为每个 给出一个错误数组FALSE,其中散布着下拉列表中每个值出现的行号。

此数组被提供给函数,该函数执行的操作与 (function=15)AGGREGATE()相同,只是它有一个忽略错误的选项 (option=6)。因此,忽略错误,并给出一个数组,该数组仅包含 C$17 下拉列表中值的行号,因为函数已向下填充。此数组用作另一个中的,它返回与这些行号相对应的系统列表。SMALL()AGGREGATE()#DIV/0!row-numINDEX()

最后,IFERROR()每当出现错误时都会插入一个空白INDEX(),因为它的填充数量超过了 row_nums 列表中值的数量。

我把这个公式放在第 17 行,所以最后一个ROW()-16列表以数组中的第一个 row_num 开始。因此,您应该将最后一个“16”更改为比公式所在行号小 1。

相关内容