从 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)),"")
我在 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)),"")