如何在Excel中使用INDEX-MATCH公式来生成多个结果

  • Share This
Hugh West

在处理大量数据时,会导致产生多个结果。 在Excel中,有一个非常方便的方法来提取多个结果。 在这篇文章中,我们将告诉你如何使用 INDEX-MATCH 公式 在Excel中生成多个结果。

下载实践模板

你可以从这里下载免费的Excel练习模板,自己练习。

INDEX MATCH 多重结果.xlsx

在Excel中实现INDEX和MATCH函数以提取多个结果的4种有用方法

本节将详细讨论如何利用 INDEX函数 MATCH函数 在Excel中一起使用,以获得多个结果。

1.在Excel中使用INDEX MATCH公式查找数组中的多个结果

考虑以下数据集,我们想找到不同考试的学生的不同分数。

我们可以通过运行一个 INDEX-MATCH 在我们的工作表中的公式。

在一个数组的集合中使用查找多个结果的步骤 INDEX-MATCH 功能如下。

步骤。

  • 从数据集中选择一个名称( B5:B11 ),并把名字放在另一个单元格中,以便以后使用单元格参考号(例如,名字 维利尔斯 细胞G4 ).
  • 在另一个你想作为结果单元格的单元格(如 细胞G7 ),写出以下公式。
=index($c$5:$c$11,small(if(isnumber(match($b$5:$b$11,$g$4,0)),match(row($b$5:$b$11),row($b$5:$b$11)),""),rows($a$1:a1))

在这里。

C$5:C$11 = 阵列中搜索的查询值

5美元:11美元 = 阵列,其中查找值为

  • 新闻 进入 .

你会注意到,数据的结果(如 维利尔斯 ),你把它放在选定的单元格中( G4 ),将出现在结果单元格中(如 65 G7 ).

  • 现在将该行向下拖动 填充手柄 来获得其余的同一查询值的结果。

由于这个过程对任何特定的值都不是恒定的,所以你可以在选定的单元格中挑选任何查询数据(如 G4 ),该特定数据的结果将在结果单元格中自动更新(如 G7 ).

要了解更多信息,请看下面的GIF。

公式分解。

让我们分解一下这个公式,了解我们是如何得到这个结果的。

  • match($b$5:$b$11, $g$4, 0) 成为。

-> MATCH({"Flintoff"; "Ronaldo"; "Plessis"; "Villiers"; "Beckham"; "Villiers"; "Plessis"}, "Villiers", 0)

-> 输出。 {#n/a; #n/a; #n/a; 1; #n/a; 1; #n/a}。

解释一下。 如果搜索值在查找数组中找到一个匹配,那么 匹配 函数返回 1 ,否则就会返回 #N/A .

  • isnumber(match($b$5:$b$11, $g$4, 0) 成为。

-> isnumber({#n/a; #n/a; #n/a; 1; #n/a; 1; #n/a})

-> 输出:{FALSE; FALSE; FALSE; TRUE; FALSE; TRUE; FALSE}。

解释一下。 中频函数 无法处理错误值,所以 ISNUMBER函数 在这里,我们利用了 "Boolean "来将数组值转换为布尔值。

  • if(isnumber(match($b$5:$b$11, $g$4, 0)), match(row($b$5:$b$11), row($b$5:$b$11) ), "") 成为。

-> if({false; false; false; true; false; true; false}, match(row($b$5:$b$11), row($b$5:$b$11), "")

成为

-> if({false; false; false; true; false; true; false}, {1; 2; 3; 4; 5; 6; 7}, " ")

-> 输出:{"";"";"";4;"";6}。

解释一下。 首先是 基金会 函数将布尔值转换为行号和空号。 之后,在 匹配 职能部门 s计算一个有连续数字的数组,从1到n,其中n是单元格范围总大小的最后一个数字标识。 正如 5美元:11美元 有7个值,所以数组变成 {1; 2; 3; 4; 5; 6; 7} .

  • small(if(isnumber(match($b$5:$b$11, $g$4, 0)), match(row($b$5:$b$11), row($b$5:$b$11)), " "), rows($a$1:a1)) 成为

-> small({""; ""; ""; 4; ""; 6}, rows($a$1: a1))

-> small({""; ""; ""; 4; ""; 6}, 1)

-> 输出:4

解释一下。 首先。 小型功能 决定根据行号获取哪一个值。 接下来是 行数 函数返回一个数字,该数字在每次单元格被复制和粘贴到下面的单元格时都会发生变化。 最初,它返回的是 4 根据我们的数据集。 在下面的单元格中。 ROWS($A$1:A1) 变化,以 ROWS($A$1:A2) 并返回 6 .

  • index($c$5:$c$11, small(if(isnumber(match($b$5:$b$11, $g$4, 0)), match(row($b$5:$b$11), row($b$5:$b$11)), "" ), rows($a$1:a1)) 成为

-> index($c$5:$c$11, 4)

-> 输出:65

解释一下。 ǞǞǞ 索引 函数从一个给定的数组中返回一个基于行号和列号的值。 第四届 数组中的值 C$5:C$11 65 ,所以 索引 函数返回 65 在细胞中 G7 .

阅读更多。 Excel中的IF与INDEX-MATCH(3种合适的方法)

2.用Excel中的INDEX MATCH公式查找即将发生的事件的名称和日期的多个结果

有时我们会忘记重要事件的日期。 在这种情况下, 指数匹配 职能部门作为救援人员开展工作。

下面是我们想知道朋友们即将到来的生日的数据样本。

因此,我们所做的是,实施一个 指数匹配 计算出下一次是谁的生日,是什么时候。

因此,知道这个人的名字或即将发生的事件的公式是。

=index($b$5:$b$9,match(f5,$c$5:$c$9,1)+1)

而要知道即将发生的事件的日期,公式是。

=index($c$5:$c$9,match(f5,$c$5:$c$9,1)+1)

公式分解。

让我们来分析一下这个公式,了解我们是如何找到亚历克斯这个名字和他的生日日期的。

  • match(f5,$c$5:$c$9,1)

-> 输出:4

解释一下。 ǞǞǞ 匹配 函数找到查找值的位置( 细胞F5 2021年11月11日,星期四 )在数组常数( $C$5:$C$9 日期列表 ).

在这个例子中,我们不想要一个精确的匹配,我们想要的是 匹配 函数来返回一个近似的匹配,因此我们将第三个参数设置为 1 (或 是的 ).

  • index($b$5:$b$9,match(f5,$c$5:$c$9,1)+1) 成为

-> index($b$5:$b$9, 4) +1)

-> 输出:Alex /(事件的名称)

解释一下。 ǞǞǞ 索引 函数需要两个参数来返回一个一维范围内的特定值。 这里,范围 $B$5:$B$9 首先是参数和我们在上一节的计算中得到的结果 (match(f5,$c$5:$c$9,1)) ,位置 4 这意味着我们正在搜索位于位置的值 4 $B$5:$B$9 范围。

还有。

  • index($c$5:$c$9,match(f5,$c$5:$c$9,1)+1) 成为

-> index($b$5:$b$9, 4) +1)

-> 产出:2021年12月7日,星期二

解释一下。 ǞǞǞ 索引 函数需要两个参数来返回一个一维范围内的特定值。 这里,范围 $C$5:$C$9 首先是参数和我们在上一节的计算中得到的结果 (match(f5,$c$5:$c$9,1)) ,位置 4 这意味着我们正在搜索位于位置的值 4 $C$5:$C$9 范围。

为了得到即将发生的事件的日期,我们只需在单元格的位置添加一个由 匹配 函数,它给了我们下一个事件日期的单元格位置。

阅读更多。 Excel INDEX-MATCH公式水平返回多个数值

类似读物

  • 在Excel中用通配符进行索引匹配的多重标准(完整指南)。
  • [修复!]在Excel中INDEX MATCH没有返回正确的值(5个原因)。
  • 如何在Excel中使用INDEX MATCH代替VLOOKUP(3种方法)?
  • Excel中重复值的INDEX+MATCH(3种快速方法)
  • 如何在Excel中选择特定数据(6种方法)

3.在Excel中使用INDEX MATCH公式将多个结果生成独立的列

到目前为止,我们一直是按行获取结果。 但是,如果你想按以下方式获取结果呢? 分栏 .

考虑以下数据集,它由三种类型的职业组成,代表多个人名。

我们想根据职业来制作一组人,我们想把名字放在 纵横捭阖 根据他们的职业。

要将多个匹配结果提取到不同列的不同单元格中,你可以用一个小技巧,用 索引 功能。

让我们来学习一下如何在Excel中结合使用以下方法在多列中提取多个匹配结果 索引 职能和其他。

步骤。

  • 从数据范围中选择一个职业( B5:B11 ),并将数据放在另一个单元格中,以便以后使用该单元格的参考号(例如,职业 板球运动员 细胞E5 ).
  • 在另一个你想作为结果单元格的单元格(如 细胞F5 ),写出以下公式。
=iferror(index($c$5:$c$11,small(if($b$5:$b$11=$e5,row(c5:c11)-min(row(c5:c11)))+1), columns($e$5:e5)),""

在这里。

C$5:C$11 = 阵列中搜索的查询值

5美元:11美元 = 阵列,其中查找值为

  • 新闻 进入 .

你会注意到,数据的结果(如 板球运动员 ),你把它放在选定的单元格中( E5 ),将出现在结果单元格中(如 弗林托夫 细胞F5 ).

  • 现在通过以下方式拖动该行 填充手柄 来获得你在单独的多列中的同一查找值的其余结果。

  • 再次,通过以下方式拖动该行 填充手柄 来获得你的不同查询值的其余结果(如 足球运动员, 摔跤运动员 )分开的多列中。

公式分解。

让我们分解一下这个公式,了解我们是如何得到这个结果的。

  • small(if($b$5:$b$11=$e5,row($c$5:$c$11)-min(row($c$5:$c$11))+1), columns($e$5:e5))

从前面的讨论中,我们已经知道如何 小,如果 ROW 函数一起工作,我们在这里也使用这个技巧来生成对应于第N个匹配的行号。 一旦我们得到了行号,我们只需将其传递到 索引 函数,返回该行的值。

-> 输出。 ( 如下图所示 )

  • index($c$5:$c$11,small(if($b$5:$b$11=$e5,row($c$5:$c$11)-min(row($c$5:$c$11)))+1), columns($e$5:e5)) -> 将行数传给 索引 函数来提取相应行号的值。

-> 输出。 ( 如下图所示 )

  • iferror(index($c$5:$c$11,small(if($b$5:$b$11=$e5,row(c5:c11)-min(row(c5:c11)))+1), columns($e$5:e5)),"" -> 注意,当列返回一个不存在的值时,它会抛出一个 #NUM 为了防止这个错误,我们用 "A "来包裹整个公式。 IFERROR函数 来捕捉错误并设置一个 空字符串("")。 作为回报。

-> 输出。 ( 如下图所示 )

阅读更多。 Excel INDEX MATCH返回一个单元格中的多个值

4. 在Excel中利用INDEX MATCH函数将多个结果提取到独立的行中

如果你想知道将多个结果提取为多行的方法,就像我们在上一节中做的那样,那么公式是:。

=iferror(index($c$5:$c$11,small(if($b$5:$b$11=e$4,row(c5:c11)-min(row(c5:c11)))+1), rows($e$5:e5)),""

其他的细节,如步骤和公式细分,都与第3节相同。

你必须记住的关键点

  • 由于要搜索的数据表数组的范围是固定的,不要忘记把 美元 符号在阵列表的单元格参考号前面。
  • 在处理数组值时,不要忘记按 Ctrl + Shift + Enter 在提取结果时,只按键盘上的 进入 只有在你使用 微软365 .
  • 在按下 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.