获取Excel &中的唯一值列表;提取唯一行

  • Share This
Michael Brown

这是Excel独特值系列的最后一部分,展示了如何使用公式获得列中的独特/唯一值列表,以及如何针对不同的数据集调整该公式。 你还将学习如何使用Excel的高级过滤器快速获得一个独特列表,以及如何使用Duplicate Remover提取独特行。

在最近的几篇文章中,我们讨论了在Excel中计算和寻找唯一值的不同方法。 如果你有机会阅读这些教程,你已经知道如何通过识别、过滤和复制来获得唯一或不同的列表。 但这有点长,而且到目前为止不是唯一的,在Excel中提取唯一值的方法。 你可以通过使用一个特殊的公式更快地完成,稍后我将向你展示这个和其他一些技巧。

    提示:要想在支持动态数组的最新版Excel 365中快速获得唯一值,请使用UNIQUE函数,如上述链接的教程中所述。

    如何在Excel中获得唯一值

    为了避免任何混淆,首先,让我们对Excel中所谓的唯一值达成共识。 独特的价值 是指在一个列表中只存在一次的值。 例如。

    要在Excel中提取一个唯一值的列表,请使用以下公式之一。

    阵列 唯一值公式(通过按Ctrl + Shift + Enter完成)。

    =iferror(index($a$2:$a$10, match(0, countif($b$1:b1,$a$2:$a$10) + (countif($a$2:$a$10, $a$2:$a$10)1), 0)), " ")

    常规 唯一值公式(按回车键完成)。

    =iferror(index($a$2:$a$10, match(0,index(countif($b$1:b1, $a$2:$a$10)+(countif($a$2:$a$10, $a$2:$a$10)1) ,0,0), 0)), "")

    在上述公式中,使用了以下参考资料。

    • A2:A10--来源列表。
    • 在这个例子中,我们从B2开始,因此我们在公式中提供了B1(B2-1=B1)。 如果你的唯一列表从C3单元格开始,那么将$B$1:B1改为$C$2:C2。

    注意:由于该公式引用的是唯一列表的第一个单元格上面的单元格,通常是列的标题(本例中为B1),所以要确保你的标题有一个唯一的名称,而这个名称不会出现在列的其他地方。

    在这个例子中,我们要从A列(更确切地说,是从A2:A20范围)中提取唯一的名字,下面的截图展示了数组公式的作用。

    关于该公式的逻辑的详细解释将在另一节中提供,下面是如何使用该公式在你的Excel工作表中提取唯一值。

    • 根据你的数据集,调整其中一个公式。
    • 在唯一列表的第一个单元格(本例中为B2)中输入公式。
    • 如果你使用的是数组公式,按Ctrl + Shift + Enter 。 如果你选择的是普通公式,像往常一样按Enter键。
    • 通过拖动填充柄,根据需要向下复制公式。 由于两个唯一值公式都被我们封装在IFERROR函数中,你可以将公式复制到表的末尾,无论提取的唯一值有多少,它都不会使你的数据出现任何错误。

    如何在Excel中获得不同的值(唯一的+第1次重复出现的)。

    正如你可能已经从本节的标题中猜到的那样。 独特的价值 在Excel中,所有不同的值都在一个列表中,即唯一值和重复值的第一个实例。 例如。

    要在Excel中得到一个明显的列表,请使用以下公式。

    阵列 不同的公式(需要按Ctrl + Shift + Enter )。

    =iferror(index($a$2:$a$10, match(0, countif($b$1:b1, $a$2:$a$10), 0)), " ")

    常规 鲜明的公式。

    =iferror(index($a$2:$a$10, match(0, index(countif($b$1:b1, $a$2:$a$10), 0, 0)), " ")

    在哪里?

    • A2:A10是来源列表。
    • 在本例中,独立列表从B2单元格开始(它是你输入公式的第一个单元格),所以你引用B1。

    在一列中提取不同的值,忽略空白单元格

    如果你的源列表中包含任何空白单元格,我们刚才讨论的独特公式将为每个空行返回一个零,这可能是一个问题。 为了解决这个问题,进一步改进公式。

    提取数组公式 不同的值,不包括空白 :

    =IFERROR(INDEX($A$2:$A$10, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$10&"") + IF($A$2:$A$10="",1,0), 0)), " ")

    获取一个忽略数字和空白的独特文本值的列表

    以类似的方式,你可以得到一个独特的值的列表 不包括空单元格和带数字的单元格 :

    =IFERROR(INDEX($A$2:$A$10, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$10&"") + IF(ISTEXT($A$2:$A$10)=FALSE,1,0), 0)), "")

    作为快速提醒,在上述公式中,A2:A10是源列表,B1是不同列表中第一个单元格的正上方。

    下面的截图显示了两个公式的结果。

    如何在Excel中提取区分大小写的独特值

    当处理密码、用户名或文件名等大小写敏感的数据时,你可能需要得到一个大小写敏感的独立值列表。 为此,使用以下数组公式,其中A2:A10是源列表,B1是独立列表第一个单元格上方的单元格。

    阵列公式,以获得区分大小写的不同值(需要按Ctrl + Shift + Enter )。

    =iferror(index($a$2:$a$10, match(0, frequency(if(exact($a$2:$a$10,transpose($b$1:b1)), match(row($a$2:$a$10), row($a$2:$a$10)), ""), match(row($a$2:$a$10), row($a$2:$a$10) ), 0) ) , "")

    独特/与众不同的公式如何运作

    本节是专门为那些好奇心强、善于思考的Excel用户编写的,他们不仅想知道公式,还想充分了解它的具体内容。

    不言而喻,在Excel中提取唯一和不同的值的公式既不简单也不直接。 但仔细看看,你可能会注意到所有的公式都基于相同的方法--使用INDEX/MATCH与COUNTIF或COUNTIF+IF函数相结合。

    对于我们的深入分析,让我们使用提取不同值列表的数组公式,因为本教程中讨论的所有其他公式都是这个基本公式的改进或变化。

    =iferror(index($a$2:$a$10, match(0, countif($b$1:b1, $a$2:$a$10), 0)), " ")

    首先,让我们抛开明显的IFERROR函数,它的用途只有一个,那就是当你复制公式的单元格数量超过源列表中的不同值时,消除#N/A错误。

    现在,让我们来分解一下我们独特公式的核心部分。

    1. COUNTIF(range, criteria)。 返回一个范围内满足指定条件的单元格的数量。

      在这个例子中,COUNTIF($B$1:B1, $A$2:$A$10)根据源列表($A$2:$A$10)中的任何一个值是否出现在不同列表($B$1:B1)中,返回一个1和0的数组。 如果找到该值,该公式返回1,否则-0。

      特别是在B2单元格,COUNTIF($B$1:B1, $A$2:$A$10)变成。

      COUNTIF("Distinct", {"Ronnie"; "David"; "Sally"; "Jeremy"; "Robert"; "David"; "Robert"; "Tom"; "Sally" })

      并返回。

      {0;0;0;0;0;0;0;0;0}

      因为源列表中没有一个项目( 标准 )出现在 范围 在这种情况下,该函数会寻找一个匹配。 范围 ($B$1:B1)由一个单项组成 - "Distinct"。

    2. MATCH(lookup_value, lookup_array, [match_type]) 返回查找值在数组中的相对位置。

    在这个例子中,lookup_value是0,因此。

    match(0,countif($b$1:b1, $a$2:$a$10), 0)

    变成了。

    MATCH(0, { 0 ;0;0;0;0;0;0;0;0},0)

    并返回

    因为我们的MATCH函数得到的第一个值正好等于查找值(正如你所记得的,查找值是0)。

  • INDEX(array, row_num, [column_num])根据指定的行号和(可选)列号返回数组中的一个值。
  • 在这个例子中,INDEX($A$2:$A$10, 1)

    成为。

    INDEX({"Ronnie"; "David"; "Sally"; "Jeremy"; "Robert"; "David"; "Robert"; "Tom"; "Sally" }, 1)

    并返回 "Ronnie"。

    当公式被复制到下一列时,不同的列表($B$1:B1)会扩展,因为第二个单元格引用(B1)是一个相对引用,根据公式移动的单元格的相对位置而改变。

    因此,当复制到单元格B3时,COUNTIF($B$1: B1 , $A$2:$A$10) 改为COUNTIF($B$1: B2 ,$A$2:$A$10),并成为。

    COUNTIF({"Distinct"; "Ronnie"}, {"Ronnie"; "David"; "Sally"; "Jeremy"; "Robert"; "David"; "Robert"; "Tom"; "Sally"}), 0)), " ")

    并返回。

    {1;0;0;0;0;0;0;0;0}

    因为在$B$1:B2范围内发现了一个 "Ronnie"。

    然后,MATCH(0,{1; 0 ;0;0;0;0;0;0;0},0)返回2,因为2是数组中第一个0的相对位置。

    而最后。 index($a$2:$a$10, 2) 返回第二行的值,也就是 "David"。

    提示:为了更好地理解公式的逻辑,你可以在公式栏中选择公式的不同部分,并按F9键来查看所选部分的评估结果。

    如果你仍然难以弄清这个公式,你可以查看以下教程,详细了解INDEX/MATCH的工作原理:INDEX & MATCH作为Excel VLOOKUP的更好替代方案。

    如前所述,本教程中讨论的其他公式也是基于同样的逻辑,只是做了一些修改。

    唯一值公式--包含一个更多的COUNTIF函数,该函数将所有在源列表中出现一次以上的项目从唯一列表中排除。 countif($a$2:$a$10, $a$2:$a$10)1 .

    忽略空白的区别值公式--这里你添加了一个IF函数,防止空白单元格被添加到区别值列表中。 IF($A$2:$A$13="",1,0) .

    区别文本值的公式忽略了数字--你用ISTEXT函数来检查一个值是否是文本,用IF函数来驳回所有其他的值类型,包括空白单元。 如果(istext($a$2:$a$13)=false,1,0) .

    用Excel的高级过滤器从一列中提取不同的值

    如果你不想把时间浪费在弄清独特值公式的奥秘曲折上,你可以通过使用高级过滤器快速得到一个独特值的列表。 详细步骤如下。

    1. 选择你想从中提取独特值的数据列。
    2. 切换到 数据 标签> 排序 & 筛选 组,并点击 高级 按钮。

  • 高级过滤器 对话框,选择以下选项。
    • 检查 复制到另一个位置 单选按钮。
    • 列表范围 框,验证源范围是否正确显示。
    • 复制到盒子里 请记住,你只能将过滤后的数据复制到...。 活页 .
    • 选择 只有独特的记录

  • 最后,点击 认可 按钮并检查结果。
  • 请注意,尽管高级过滤器的选项被命名为" 只有独特的记录 ",它提取了 独特的价值 即唯一值和重复值的第一次出现。

    用Duplicate Remover提取唯一和不同的行

    在本教程的最后部分,让我向你展示我们自己的解决方案,以寻找和提取Excel表中的独特和独特的值。 这个解决方案结合了Excel公式的多功能性和高级过滤器的简单性。 此外,它还提供了一些独特的功能,如。

    • 查找并提取 唯一/不同行 基于一个或多个列的值。
    • 查找 , 亮点 ,以及 拷贝 在同一或不同的工作簿中的任何其他位置的唯一值。

    现在,让我们看看Duplicate Remover工具的运行情况。

    假设你有一个通过合并其他几个表的数据而创建的汇总表。 很明显,该汇总表包含很多重复的行,你的任务是提取在表中只出现一次的唯一行,或包括唯一和第一次重复出现的不同行。 无论哪种方式,通过Duplicate Remover插件,该工作在5个快速步骤中就完成。

    1. 选择源表中的任何单元格并点击 复制的清除器 上的按钮。 阿博比特数据 选项卡,在 重复计算 组。

    重复删除向导将运行并选择整个表。 因此,只要点击 下一页 进入下一个步骤。

  • 选择你想找的价值类型,然后点击 下一页 :
    • 独特的
    • 独特的+1次出现(独特的)。

    在这个例子中,我们的目标是提取 唯一的行 在源表中只出现一次,所以我们选择了 独特的 选择。

    提示:正如你在上面的截图中所看到的,也有2个选项用于 重复值 如果你需要扣除其他工作表,请记住这一点。

  • 选择一个或多个要检查唯一值的列。

    在这个例子中,我们想根据所有3个列的值来寻找唯一的行( 订单号 , 名字 姓氏 ),因此我们选择所有。

  • 选择要对找到的唯一值进行的操作。 以下是可供你使用的选项。
    • 突出独特的价值
    • 选择独特的价值
    • 在一个状态栏中确定
    • 复制到另一个位置

    因为我们提取的是唯一行,所以选择 复制到另一个位置 然后指定你想复制它们的确切位置--活动页面(选择 自定义位置 选项,并指定目标区域的顶部单元格)、新工作表或新工作簿。

    在这个例子中,让我们选择新的工作表。

  • 点击 完成 按钮,你就完成了!
  • 喜欢这种快速而简单的方式来获得Excel中的唯一值或行的列表吗? 如果是这样,我鼓励你下载下面的评估版本,并给它一个尝试。 重复删除器以及我们所有其他节省时间的工具都包括在Excel的终极套件。

    可用的下载

    在Excel中查找唯一值--样本工作簿(.xlsx文件)

    Ultimate Suite - 评估版 (.exe 文件)

    Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.