如何找到第N次出现在Excel
有了VLOOKUP,我们总能获得第一场比赛。 INDEX MATCH函数也会发生同样的情况。那么我们如何VLOOKUP第二场比赛或3rd或nth?
在本文中,我们将学习如何获取范围中第N个出现的值。
通用公式
{=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”的位置。
在上图中,我们可以看到它在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错误。
===
如何运作?
好吧,这很容易。让我们一一看一下每个部分。
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]