Excel - 从 2 列数组中选择唯一 lisit

Excel - Unique lisit from 2 column array for selection

提问人:Keesler Water Walker 提问时间:11/3/2017 最后编辑:TomKeesler Water Walker 更新时间:11/3/2017 访问量:30

问:

我在单独的工作表上有一个数据库表,该表对用户锁定并隐藏,其中列出了设施及其区域,其中包含某些设施/区域配对的多个条目。当主搜索无法返回匹配项时,我有一个函数可以让我指定区域并返回该区域中的所有设施。问题是它也显示所有重复项。我想找到的是一种只显示所选区域中独特设施的方法。我不想每次都按区域搜索时必须触摸数据库和过滤器。我在论坛中找到的所有其他唯一列表都返回所有唯一列表(1 列数组),其中我只想要一个选择组(2 列数组)。

附加的样品数据库(A 中的设施;B区;D1 中的搜索区域)

数组公式复制到接下来的几行:

=IFERROR(INDEX($A:$A,SMALL(IF($D$1=$B:$B,ROW($B:$B)),ROW(1:1))),"")

返回 4, 5, 5 - 期望 4, 5

Sample DB w/ Search

Excel 唯一 数组公式

评论

0赞 Scott Craner 11/3/2017
...IF(($D$1=$B:$B)*(COUNTIF($D$1:D1,A:A)=0),...
0赞 Scott Craner 11/3/2017
并将 just 更改为 justROW(1:1)1
1赞 Scott Craner 11/3/2017
还有一点需要注意。不应在数组公式中使用完整列引用。将引用限制为数据集的引用。它将加快计算速度。
0赞 Keesler Water Walker 11/3/2017
我在实时版本中有有限的参考资料。此外,允许将公式复制下来,而无需将每行编辑为 2、3 等。Row(1:1)
0赞 Scott Craner 11/3/2017
我了解 ROW(1:1) 在做什么,如果不需要,我会用添加的计数来表示。查看我的答案

答:

0赞 Scott Craner 11/3/2017 #1

使用 COUNTIF() 查找唯一值:

=IFERROR(INDEX($A:$A,SMALL(IF(($D$1=$B$2:$B$14)*(COUNTIF($D$1:D1,$A$2:$A$14)=0),ROW($B$2:$B$14)),1)),"")

请记住,这是一个数组公式,在退出编辑模式时需要 Ctrl-Shift-Enter 而不是 Enter。

enter image description here