如何在Excel中从范围中获取唯一值(8种方法)

  • Share This
Hugh West

有时在使用Excel时,你需要找出 一列中的唯一值 例如,你可能需要找出一家商店的库存中有多少种不同的或独特的产品,或者在一张包含大公司所有雇员信息的Excel表格中,有多少个独特的雇员姓名。 本教程将向你展示从Excel中的范围中获取独特值的多种方法。

下载实践工作手册

下载这本练习册,在你阅读这篇文章时锻炼一下任务。

Excel唯一值.xlsm

在Excel中从范围中获取唯一值的8种简单方法

让我们假设一个场景,我们有一个Excel文件,其中包含一个国家出口到欧洲不同国家的产品信息。 我们有 产品 名称,导出的 数量。 国家 我们将找出这个国家出口的每一种独特的产品和这个国家出口产品的每一个不同的国家,用 高级过滤器,INDEX 匹配 公式 一起 , LOOKUP COUNTIF 一起运作。 獨特的 功能 ( Excel 365 ), VBA 宏,以及 删除重复的内容 下面的图片显示了我们将要使用的Excel工作表。

1.从范围中获取唯一值的高级过滤器

你可以使用 高级过滤器 根据 数据 做到以下几点:1.获得一个范围或列的所有唯一值。

步骤1。

  • 首先,去到 数据 .选择 高级 排序 & 筛选 节。

  • 一个新的窗口,标题为 高级过滤器 会出现。 选择 复制到另一个位置 作为 行动 .
  • 列表范围 框中,选择你要提取的唯一值的范围。 在这个例子中,我们试图获取我们的 产品 栏目( B5:B20 )。 因此,我们的 列表范围 将是 B$5:B$20 . $ 符号已被插入,以使单元格的引用是绝对的。

  • 复制到 我们选择了一个范围,我们希望我们的唯一值是在这个范围内。 我们已经选择了范围 E5:E20 勾选标题中的方框 只有独特的记录 .
  • 点击 认可 .

第2步。

  • 在点击 认可 你将得到所有不同的产品。 独特的产品 栏目( E5:E20 ).

阅读更多。 如何在Excel中提取列表中的唯一项目(10种方法)

2.插入INDEX和MATCH公式,从范围中获取唯一值

我们还可以使用Excel 索引 匹配 只要按照下面的步骤,使用这些函数就可以从一个范围或列中获得唯一的值。

步骤1。

  • 选择单元格 E5 在该单元格中写下以下公式。
=index(b5:b20,match(0,countif($e$4:e4, b5:b20),0))

公式解释

这个公式的驱动力是 索引 函数,它将执行基本的查询。

=INDEX(array, row_num, [column_num])

索引 函数有两个必要的参数。 阵列 行数_num .

因此,如果我们提供 索引 函数,用一个数组或列表作为 第一个参数 和一个行号作为 第二个参数 ,它将返回一个值,该值将被添加到唯一列表中。

我们已经提供了 B5:B20 但困难的部分是要想出我们将给 索引 的功能为 第二个参数 行数_num 我们必须选择 行数_num 仔细,这样我们将只得到唯一的值。

我们将使用以下方法实现这一目标 COUNTIF 功能。

=countif($e$4:e4,b5:b20)

COUNTIF 函数将计算Unique Product列中的项目在Product列中出现的次数,该列是我们的源列表。

它将使用一个 扩展参考 在这种情况下,它是 $E$4:E4 一方面,扩展的引用是绝对的,而另一方面,它是相对的。 在这种情况下,随着公式的向下复制,引用将扩展到包括唯一列表中的更多行。

现在我们有了数组,我们可以开始寻找行号了。 为了找到零值,我们用 匹配 函数,它是为精确匹配而设置的。 如果我们使用 匹配 将COUNTIF生成的数组结合起来。 匹配 函数在搜索计数为零时定位项目。 当有重复的时候。 匹配 所以,它可以工作。

最后。 索引 被提供为行号的位置,INDEX返回这些位置的名称。

请注意。 这是一个数组公式。 所以,你必须按 ctrl+shift+enter 它将在整个公式周围加上两个大括号。

第2步。

  • 输入公式后,你将得到以下数值 苹果公司 在细胞中 E5 我们将向下拖动填充柄,将公式应用于其余的单元格。

  • 释放填充句柄后,我们将得到所有在 独特的产品 .

阅读更多。 VBA在Excel中从列中获取唯一值到数组(3个标准)

3.应用INDEX和MATCH公式来获取空单元格的唯一值

有时,我们想要提取唯一值的范围可能有一些空单元格。 在这种情况下,我们必须稍微修改一下公式,以考虑到空单元格。 例如,我们已经从范围中删除了一些产品。 下面的图片显示了修改后的excel表,其中的产品列有一些空单元。

现在我们将按照下面的步骤从这个带有空单元格的区域获得唯一的值。

步骤1。

  • 首先,我们将在单元格中写下以下公式 E5 .
=index(b5:b20, match(0,if(isblank(b5:b20),1,countif($e$4:e4, b5:b20)), 0)

请注意。 这是一个数组公式。 因此,你必须按 ctrl+shift+enter 它将在整个公式周围加上两个大括号。

第2步。

  • 输入公式后,你将得到以下数值 苹果公司 在细胞中 E5 我们将向下拖动填充柄,将公式应用于其他单元格。

  • 释放填充句柄后,我们将得到所有在 独特的产品 .

4.使用LOOKUP和COUNTIF公式从范围中获取唯一值

我们还可以使用Excel LOOKUP COUNTIF 只要按照下面的步骤,使用这些函数就可以从一个范围或列中获得唯一的值。

步骤1。

  • 选择单元格 E5 在该单元格中写下以下公式。
=lookup(2,1/(countif($e$4:e4,$b$5:$b$20)=0), $b$5:$b$20)

公式解释

该公式的结构与上述INDEX和MATCH公式的组合类似,但 LOOKUP 本机处理数组操作。 LOOKUP 函数正好需要三个参数。

=LOOKUP(lookup_value, lookup_vector, [result_vector])

COUNTIF 产生一个扩展范围内的每个值的计数 $E$4:E4 从范围上看 B$5:B$20 然后将每个值的计数与零进行比较,并建立一个由以下内容组成的数组 为真 失败 价值产生。

然后数字1除以数组,得到的数组为 1 s和 #DIV/0 误差。 这个数组成为 第二个参数 查找_向量 LOOKUP 功能。

ǞǞǞ 查找_值 第一个参数 的。 LOOKUP 功能是 2 大于任何一个查找向量的值。 查找数组中的最后一个非错误值将被匹配到 LOOKUP .

LOOKUP 中的相应值,并返回 结果_向量 第三种说法 在这种情况下,第三个参数或 结果_向量 B$5:B$20 .

注意事项 : 这是一种获得唯一值的非数组方式。 所以你不必按 CTRL , 甩手掌柜 ,以及 进入 相反,你应该只按 进入 钥匙。

第2步。

  • 输入公式后,你将得到以下数值 苹果公司 在细胞中 E5 我们将向下拖动填充柄,将公式应用于其余的单元格。

  • 释放填充句柄后,我们将得到所有在 独特的产品 .

5.执行LOOKUP和COUNTIF公式以获得只出现一次的唯一值

你也可以使用这个相同的公式,但要稍加修改,以获得唯一的值,每个值在范围内只出现一次。 例如,我们修改了我们的Excel工作表,以便我们有产品 蓝莓 胡萝卜 现在,我们将采取以下步骤来获得这两个在我们的工作表中只出现一次的唯一值。

步骤1。

  • 首先,选择单元格 E5 在该单元格中写下以下公式。
=lookup(2,1/((countif($e$4:e4,$b$5:$b$20)=0)*(countif($b$5:$b$20,$b$5:$b$20)=1)), $b$5:$b$20)

第2步。

  • 输入公式后,你将得到以下数值 胡萝卜 在细胞中 E5 我们将向下拖动填充柄,将公式应用于其余的单元格。

  • 释放填充柄后,我们将得到2个只在单元格中出现一次的独特值 E5 E6 根据 独特的产品 它们下面的其余单元格将显示 #N/A 我们将清除这些单元格的内容。

6.使用UNIQUE函数来获取范围内的唯一值

微软 Excel 365 有一个函数叫做 獨特的 我们将按照下面的步骤来获取我们的 "唯一值"。 国家 列,使用 獨特的 功能在 Excel 365 .

步骤1。

  • 选择单元格 E5 在该单元格中写下以下公式。
=unique(d5:d20)

第2步。

  • 上述范围 D5:D20 表示我们 国家 因此,我们将使用以下方法获得所有独特的国家。 獨特的 功能。 如果我们按 进入 我们将获得所有独特的国家在我们的 独特的国家 列。

请注意。 獨特的 该函数是目前仅适用于Excel 365的专用函数。 因此,如果你没有安装该函数,它将无法在你的工作表中运行。 Excel 365 在你的电脑上。

阅读更多。 如何使用Excel的UNIQUE函数(20例)

7.在Excel中运行VBA宏代码以获得范围内的唯一值

另一个非常简单但更有效的方法是使用以下方法来获得范围内的所有唯一值 VBA VBA宏将采取类似于以下的方法 高级过滤器 方法一 这一次,我们不再自己应用高级过滤器,而是让 VBA宏程序 我们现在将进行以下步骤。

步骤1。

  • 我们将选择 视觉基础 开发商 我们也可以按 ALT+F11 来打开它。

  • 现在,点击 插入 按钮,并选择 模块 .

第2步。

  • 在出现的窗口中写下以下代码。
 Option Explicit Sub GetUniqueValues() Dim lastrow As Long lastrow = Cells(Rows.Count, "B").End(xlUp).Row ActiveSheet.Range("B5:B" & lastrow).AdvancedFilter _ Action:=xlFilterCopy, _ CopyToRange:=ActiveSheet.Range("E5"), _ Unique:=True End Sub 
  • 最后,点击 运行 按钮来执行该代码。

  • 我们将获得所有独特的产品在 独特的产品

8.删除Excel中的重复数据以获得范围内的唯一值

在所有这些方法中,从一个范围中获取唯一值的最简单方法是使用 删除重复的内容 要使用 "删除重复 "获得范围内的唯一值,请执行以下操作。

步骤1。

  • 首先,我们将选择所有在 国家 的范围。 国家 栏目是 D5:D20 因此,我们将选择该范围并复制它。

  • 然后我们将其粘贴在相邻的 独特的国家 . 删除重复的内容 Excel中的功能将删除范围内的所有重复值。 但我们希望我们的源数据是完整的。 因此,我们将在以下的范围内制作一个副本 独特的国家 列,并执行 删除重复的内容 在那里运作。

第2步。

  • 虽然 独特的国家 列被选中,我们将选择 删除重复的内容 选项,从 数据 标签。

  • 一个新的窗口,标题为 删除重复的警告 会出现。 我们将选择 继续当前选择 我们只想在以下情况下执行这一操作 独特的国家 列。 因此,我们不会 扩大选择范围 .
  • 然后,我们将点击 删除重复的内容 .

  • 现在,我们将看到我们的 独特的国家 栏目中只有 4 其中有不同或独特的国家。

需要记住的事情

  • ǞǞǞ 索引 匹配 所以,你必须按 ctrl+shift+enter 它将在整个公式周围加上两个大括号。
  • 在使用 删除重复的内容 特点,从范围内获得唯一的值,我们只选择了 独特的国家 但你可以添加更多的列,或通过选择所有的列来选择 扩大选择范围 但如果你扩大选择范围以增加更多的列,那么 删除重复的内容 功能不会删除任何值 除非它发现两行或两行以上有相同的数据 .

总结

在这篇文章中,我们学习了如何从Excel的范围中获取唯一值。 我希望从现在开始,你会发现从Excel的范围中获取唯一值非常容易。 不过,如果你对这篇文章有任何疑问或建议,请在下面留言。 祝你今天愉快!!!

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.