从 Excel 中的列范围动态提取唯一值列表?

Dynamically extract a list of unique values from a column range in Excel?

我在 excel 教程中找到了这个 example

下图是我想要的结果。并且以下公式应该能够动态提取唯一记录。我知道如何使用 VBA 执行此操作,但我真的想在不使用宏的情况下将其设为公式。

=IFERROR(INDEX($B:$B, MATCH(0,COUNTIF($D:D1, $B:$B), 0)),"")

我已经尝试了上面示例 link 中给出的上述公式,但它 returns 出错了。我假设这在 excel 的某个时候有效,但它不再适用于 Excel 2016。有人可以澄清为什么这个公式不再有效吗?谢谢你。

大约 5 分钟后回答了我自己的问题,所以我阅读了有关匹配如何从 excel 2008 年到 2016 年的补丁节点。您需要使用索引而不是计数。

=IFERROR(INDEX($B:$B, MATCH(0,INDEX(COUNTIF($D:D1,$B:$B),0,0),0)),"0)),"")")

建议编辑公式以将错误返回的值更改为空白: =IFERROR(INDEX($B:$B, MATCH(0,INDEX(COUNTIF($D:D1,$B:$B),0,0),0)),"")