如何在Excel中查找多个数值(8种快速方法)

  • Share This
Hugh West

在这篇文章中,我将讨论如何在Excel中查找多个数值。 通常,在处理电子表格时,一次查找多个数值会有很大的帮助。 例如,我们有一个数据集,包含了几个人的爱好。 然而,在这个数据集中,一个人( 艾米丽 因此,现在我们将使用几个excel工具和函数来一次获得Emily的多个爱好。 此外,我将展示如何在一个单元格中连接多个值。

下载实践工作手册

你可以下载我们用来准备这篇文章的实践工作手册。

查找多个值.xlsm

在Excel中查找多个数值的8种方法

1.使用查找和替换工具获取Excel中的多个值

你可以通过使用以下方法非常容易地获得多个值 查找 的特点。 查找和替换 的工具 MS Excel 在我们的数据集中,Emily这个名字被提及。 3 因此,请按照以下步骤来寻找这些 3 价值一次。

步骤。

  • 首先,选择数据集( B4:C11 ).

  • 接下来,按 键盘 + F 来调出 查找和替换 窗口或进入 首页 > 编辑工作 组>。 查找& 选择 > 查找 .
  • 然后,键入' 艾米丽 ' 在 发现什么 字段,并点击 查找所有 .

  • 因此,我们发现 3 名称( 艾米丽 )在下面的窗口中列出。

阅读更多。 如何在Excel中查找范围内的值(3种方法)

2.查找多个值的Excel过滤选项

在excel中获得多个值的另一个简单而快速的选择是使用 自动过滤器 让我们来看看这个方法所涉及的步骤。

步骤。

  • 首先,在你想应用过滤器的单元格上点击右键。 我选择了 细胞B5 ,因为我需要过滤所有的名字。 艾米丽 .
  • 然后转到 过滤器 > 按所选单元格的值过滤 .

  • 因此,所有包含名字的单元格 艾米丽 被过滤的情况如下。

  • 现在,如果你想撤销过滤,只要点击 自动过滤器 数据集标题的图标,选择 清除 "姓名 "中的过滤器 并点击 认可 .

阅读更多。 如何在Excel中查找字符串中的一个字符

3.应用高级过滤选项来返回多个值

Excel有一个过滤选项,名为 高级过滤器 这个选项在寻找多个值时非常有用。 你必须设置一个标准范围来应用...。 高级过滤器 让我们来看看这个方法的步骤。

步骤。

  • 首先,设置标准范围( B13:C14 ).

  • 接下来,请到 数据 > 排序 & 筛选 > 高级 .

  • 因此, 高级过滤器 窗口将显示出来。 现在,设置 列表范围 ( 数据集范围 )和 标准范围 并点击 认可 .

  • 最后,在这里我们一下子得到了艾米丽的所有爱好。

注意事项

请记住, 标题 的主数据集和 标准范围 必须是相似的,否则, 高级过滤器 选项将不起作用。

4.通过使用Excel定义的表返回多个值

我们可以创建 Excel定义的表格 这是一个非常方便和简单的方法来寻找多个值。

步骤。

  • 首先,点击数据集中的任何一个单元格( B4:C11 ).

  • 接下来,按 键盘 + t 因此,我们可以从键盘上看到 创建表格 窗口会出现,检查表格范围并点击 认可 .

  • 因此,我们有了从我们的数据集中创建的以下表格。

  • 现在,点击表头旁边的向下箭头图标。 然后,检查名称 艾米丽 并点击 认可

  • 最终,这里是我们预期的过滤结果。

类似的阅读。

  • 如何在Excel中查找单元格中的文本
  • Excel搜索范围内的文本(11种快速方法)
  • 如何在Excel中查找单元格是否包含特定文本
  • 在Excel字符串中查找字符(8种简单方法)

5.插入FILTER功能来查找多个值

这一次,我们将使用 滤波功能 来返回excel中的多个值。

步骤。

  • 首先,输入以下公式 细胞C14 .
=FILTER(C5:C11,B5:B11=B14)

  • 接下来,点击 进入 .
  • 因此,艾米丽的所有爱好一下子都回来了。

注意事项

筛选器 函数只适用于 Excel 365 订阅者。

6.在Excel中用INDEX函数搜索多个数值

你可以用以下方法找到多个值 INDEX函数 这个获取多个数值的公式很复杂。 这个公式是以数组的形式输入的。 总之,我将在下面解释这个公式。 在此之前,让我们来看看这个方法的步骤。

步骤。

  • 最初,在以下公式中键入 细胞C14 .
=index($b$5:$c$11,small(if($b$5:$b$11=$b$14,row($b$5:$b$11)),row(1:1)) -4,2)

  • 结果,我们收到了以下结果。

  • 接下来,拖下 填充手柄 ( + )符号来获取其他数值。

  • 因此,以下是我们得到的艾米丽的爱好清单。

🔎 公式如何运作?

  • if($b$5:$b$11=$b$14,row($b$5:$b$11))

在这里。 中频函数 如果一个单元格范围内有一个行号,则返回一个行号 B5:B11 等于 B14 ,否则就会返回 失败 .

  • small(if($b$5:$b$11=$b$14,row($b$5:$b$11)),row(1:1))

现在,公式的这一部分使用了 小号功能 其中返回 第1次 这个公式将返回数字。 5 , 8 , 11 .

  • index($b$5:$c$11,small(if($b$5:$b$11=$b$14,row($b$5:$b$11)),row(1:1)) -4,2)

现在是公式的最后部分。 我们知道, 索引 函数返回给定位置的值。 另一件事是,在 索引 函数认为我们的表的第一行是第1行。 因为我的表数据集从第1行开始 5 我已经减去了 4 ROW 值,以从数据集中获得正确的行。 因此,对于数组的 B5:C11 ,行数 5 , 8 , 11 栏,以及第 2 ,在 索引 函数将提供我们想要的结果

📌 隐藏由上述公式产生的错误

上述情况有一个问题 索引 公式。 当你向下拖动 填充手柄 ( + )符号,该公式会返回一个错误( #NUM! )后的某一数值。 因此,为了固定上述公式,我们将使用 基金会 误差 职能。

步骤。

  • 首先,输入以下公式 细胞C14 .
=if(iserror(index($b$5:$c$11,small(if($b$5:$b$11=$b$14,row($b$5:$b$11)),row(1:1))-4,2)), "",index($b$5:$c$11,small(if($b$5:$b$11=$b$14,row($b$5:$b$11)),row(1:1))-4,2)

  • 因此,我们将得到没有任何错误的结果。

在这里, 误差 函数检查一个值是否为错误,并返回TRUE或FALSE。 上述公式用 基金会 误差 函数检查数组的结果是否是错误的,因此如果结果是错误的,返回空白(""),否则返回相应的值。

7.用户定义的函数在Excel中查找多个值(VBA)

在这个方法中,我们将讨论如何使用 用户定义的功能 在这里,我们将使用 用户定义的功能 : vbaVlookup .

步骤。

  • 首先,转到活动工作表。
  • 第二,到 开发商 > 视觉基础 .

  • 然后 视觉基础 窗口会出现,进入 VBA项目 角(窗口的左上角)。
  • 第三,右键单击项目名称,然后进入 插入 > 模块 .

  • 因此,你会得到 模块 将下面的代码写在 模块 .
 '命名用户定义的函数和参数 Function vbaVlookup(lookup_value As Range, tbl As Range, col_index_num As Integer, Optional layout As String = "v") '声明变量和数据类型 Dim r As Single, Lrow, Lcol As Single, temp() As Variant '重维数组变量temp ReDim temp(0) '遍历单元格区域的单元格 For r = 1 To tbl.Rows.Count '检查lookup_value是否等于cell value If lookup_value = tbl.Cells(r, 1) Then '保存cell值到数组变量temp temp(UBound(temp)) = tbl.Cells(r, col_index_num) '添加另一个容器到数组变量temp ReDim Preserve temp(UBound(temp) + 1) End If Next r ' 检查变量布局是否等于h If layout = "h" Then ' 保存用户输入的列数 这个用户自定义的Function in. Lcol = Range(Application.Caller.Address).Columns.Count '遍历数组变量temp中不会被填充的每个容器 For r = UBound(temp) To Lcol '给数组容器保存一个空白 temp(UBound(temp)) = "" '用1增加数组变量temp的大小 ReDim Preserve temp(UBound(temp) + 1) Next r ' 减少数组的大小变量temp与1 ReDim Preserve temp(UBound(temp) - 1) '将数值返回到工作表 vbaVlookup = temp '如果变量布局不等于h,这些行将被润色 Else '保存用户输入这个用户定义函数的行数 Lrow = Range(Application.Caller.Address).Rows.Count '遍历空单元格,不保存任何内容,以避免发生错误。正在显示 For r = UBound(temp) To Lrow temp(UBound(temp)) = "" ReDim Preserve temp(UBound(temp) + 1) Next r '用1减少数组变量temp的大小 ReDim Preserve temp(UBound(temp) - 1) '将temp变量以垂直方向重新排列的值返回工作表 vbaVlookup = Application.Transpose(temp) End If 结束函数 

  • 之后,如果你开始写函数,在 细胞C14 ,该函数将像其他Excel函数一样显示出来。

  • 然后将下面的公式写在 细胞C14 .
=vbaVlookup(B14,B5:B11,2)

  • 最后,我们这里有艾米丽的多种爱好,如下所示。

8.在单个Excel单元格中获取多个值

到目前为止,我们已经收到了在不同单元格中垂直列出的多个值。 然而,现在我们将在一个单元格中显示多个连接的值。 这里,我们将使用 TEXTJOIN函数 伴随着 筛选器 函数来获得连接的多个值。

步骤。

  • 首先,输入以下公式 细胞C14 .
=textjoin(",",true, filter(c5:c11, b5:b11=b14))

  • 因此,艾米丽的所有爱好都在一个单元格中横向呈现。

在这里, 文本编辑器(TEXTJOIN 函数用逗号将爱好列表连接起来。

总结

在上述文章中,我试图详细讨论这些方法。 希望这些方法和解释足以解决你的问题。 如果你有任何疑问,请让我知道。

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.