Excel公式提取唯一值从列表
好的,所以在我进行数据分析的初期,我需要从列表中自动获取excel中的唯一项,而不是每次都删除重复项。我想出了一种方法。之后,我的excel仪表板比以前更加动态。因此,让我们看看我们该怎么做…
要从列表中提取唯一值列表,我们将使用`link:/ lookup-formulas-excel-index-function ,`link:/ lookup-formulas-excel-match-function [MATCH]
和`link:/ tips-countif-in-microsoft-excel [COUNTIF]`。
我还将使用`link:/ logical-formulas-excel-iferror-function [IFERROR]`,只是为了获得干净的结果,它是可选的。
是的,它将是一个数组公式…因此,让我们完成它… =====通用公式可在Excel中提取唯一值
{=INDEX(ref_list,MATCH(0,COUNTIF(expanding_output_range,ref_list),0))}
Ref_list:要从中提取唯一值的列表`link:/ excel-range-name-expanding-references-in-excel [Expanding_output_range:]`
现在,这非常重要。这是您要查看提取列表的范围。此范围必须具有不属于列表的不同标题,并且您的公式将位于标题下方(如果标题位于E1中,则公式将位于E2中)。现在扩展意味着,当您向下拖动公式时,它应该在输出范围内扩展。为此,您需要将标题引用为$ E $ 1:E1(我的标题在E1中)。当我将其向下拖动时,它将展开。在E2中,它将是$ E $ 1:E1。在E3中,它将是$ E $ 1:E2。在E2中,它将是$ E $ 1:E3,依此类推。
现在来看一个例子。这将使其清楚。
提取唯一值Excel示例因此,在这里我在A2:A16范围的A列中有此客户列表。
现在在E列中,我只想从客户那里获得唯一的价值。现在,此范围A2:A16也可以增加,因此,只要列表增加,我希望我的公式从列表中获取任何新的客户名称。
好的,现在要从列A中获取唯一值,请在单元格E2中写入此公式,然后按CTRL + SHIFT + ENTER使其成为数组公式。
{=INDEX($A$2:A16,MATCH(0,COUNTIF($E$1:E1,$A$2:A16),0))}
A $ 2:A16:我希望该列表会扩展,并且可能会有我想提取的新的唯一值。这就是为什么我不绝对引用A16使其从底部打开的原因。每当您复制公式下面时,它将允许它展开。
所以我们知道`link:/ lookup-formulas-retrieving-matching-values-not-adjacent-list [INDEX和MATCH函数的工作原理]。这里的主要部分是:
COUNTIF($ E $ 1:E1,$ A $ 2:A16):此公式将返回1和0组成的数组。每当在条件列表$ A $ 2:A16中找到$ E $ 1:E1范围内的值时,该值在其在$ A $ 2:A16范围内的位置将转换为1。
现在使用MATCH函数,我们正在寻找值0。Match将返回由COUNTIF函数返回的数组中找到的第一个0的位置。比INDEX会查询A $ 2:A16来返回在MATCH函数返回的索引处找到的值。
可能有点难以理解,但是可以。列表末尾的0表示不再有唯一值。如果最后没有看到0,则应在下面的单元格中复制公式。
现在,为了避免出现#NA,您可以使用excel的IFERROR函数。
{=IFERROR(INDEX($A$2:A16,MATCH(0,COUNTIF($E$1:$E1,$A$2:A16),0)),"")}
是的,您可以使用此公式从列表中获取唯一值。在具有Office 365订阅的excel 2019中,Microsoft提供了一个名为UNIQUE的功能。它只是将范围作为参数并返回唯一值的数组。一次性购买的Microsoft Excel 2016中不提供此功能。