有了VLOOKUP,我们总能获得第一场比赛。 INDEX MATCH函数也会发生同样的情况。那么我们如何VLOOKUP第二场比赛或3rd或nth?

在本文中,我们将学习如何获取范围中第N个出现的值。

0055

通用公式

{=SMALL(IF(range=value,ROW(range)-ROW(first_cell_in_range)+1),n)}

link:/office-skill-cn/excel-array-formulas-arrays-in-excel-formula

值:您要在范围中的第n个位置查找的值。 First_cell_in_range:范围中的第一个单元格。如果范围为A2:A10,则范围中的第一个单元格为A2。*

| === n:值的出现数。

让我们看一个例子,使事情变得清楚。

===

示例:在Excel中查找第二个匹配项

因此,这里我列出了excel范围A2:A10中的名称。我已经将该范围命名为名称。现在,我要获取名称中第二次出现的“ Rony”的位置。

0056

在上图中,我们可以看到它在A2:A10(名称)范围内的第7位。现在,我们需要使用excel公式确定其位置。

在C2中应用上述通用公式,以查找列表中第二次出现的Rony。

{=SMALL(IF(names=“Rony” ,ROW(names)-ROW(A2)+1),2)}

使用CTRL + SHIFT + ENTER输入。我们有一个答案。它显示7,这是正确的。如果将n的值更改为3,它将得到8。如果将n的值更改为大于该范围内出现的值,则将返回#NUM错误。

0057

===

如何运作?

好吧,这很容易。让我们一一看一下每个部分。

link:/ tips-if-condition-excel_ [name] =“ Rony”,`link:/ lookup-and-reference-excel-row-function [ROW](names)-link: / lookup-and-reference-excel-row-function [ROW](A2)+ 1 *)

在IF中,names =“ Rony”返回TRUE和FALSE的数组。只要范围名称(A2:A10)中的单元格与“ Rony”匹配,则为TRUE。\ {TRUE; FALSE; FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; FALSE}。

下一个`link:/ lookup-and-reference-excel-row-function (名称)-`link:/ lookup-and-reference-excel-row-function [ROW](A2)+1:链接:/ lookup-and-reference-excel-row-function [ROW](names *):

ROW函数返回名称中每个单元格的行号。

\ {2; 3; 4; 5; 6; 7; 8; 9; 10}。

link:/ lookup-and-reference-excel-row-function [ROW](名称)-link:/ lookup-and-reference-excel-row-function [ROW](A2)*然后我们减去行给定数组中每个值的A2数量。这为我们提供了一个从0开始的序列号数组。 \ {0; 1; 2; 3; 4; 5; 6; 7; 8}。

link:/ lookup-and-reference-excel-row-function [ROW](名称)-link:/ lookup-and-reference-excel-row-function [ROW](A2)+1:获取从1开始的序列号,我们向该数组中的每个值加1。这给了我们从1开始的序列号。

\ {1; 2; 3; 4; 5; 6; 7; 8; 9}。

现在我们有了IF(\ {TRUE; FALSE; FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; FALSE},\ {1; 2; 3; 4; 5; 6; 7; 8; 9})。

这解决了\ {1; FALSE; FALSE; FALSE; FALSE; FALSE; 7; 8; FALSE}。

现在我们已经解决了“ link:/ statistical-formulas-excel-small-function [SMALL]”的公式(\ {1; FALSE; FALSE; FALSE; FALSE; FALSE; 7; 8; FALSE},2)。

现在,SMALL返回范围内的第二个最小值,即7。

我们如何使用它?

问题来了:获得第n个比赛的原始索引有什么好处?如果您可以从第n个值中检索相关信息,则将更加有用。好吧,那也可以做到。如果我们要从范围名称中相邻单元格的第n个值中获取值(A2:A10)。

是的,这就是您如何获得范围内的第n个比赛。我希望我能解释得足够。如果您对本文或任何其他与excel / VBA相关的主题有任何疑问,请在下面的评论部分中编写。

{=INDEX(B2:B10, SMALL(IF(names=“Rony” ,ROW(names)-ROW(A2)+1),2))}

相关文章:

链接:/信息格式如何在Excel中获取顺序行号[如何在Excel中获取顺序行号]

链接:/ lookup-formulas-vlookup-top-5-values-with-duplicate-values-using-index-match-in-excel [Vlookup在Excel中使用INDEX-MATCH的具有重复值的前5个值]

link:/ lookup-formulas-vlookup-multiple-values [VLOOKUP Multiple Values]

`link:/ lookup-formulas-use-index-and-match-to-lookup-value [使用INDEX和MATCH查找值]“

link:/ lookup-formulas-lookup-value-with-multiple-criteria [具有多个条件的查询值]

热门文章:

link:/ vlookup-functions / formulas-and-functions-introduction- [Excel中的VLOOKUP函数]

link:/ tips-countif-in-microsoft-excel [Excel 2016中的COUNTIF]