Table of contents
在这篇文章中,我将讨论如何在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 函数用逗号将爱好列表连接起来。
总结
在上述文章中,我试图详细讨论这些方法。 希望这些方法和解释足以解决你的问题。 如果你有任何疑问,请让我知道。