Excel 如何查找值的第n行?

Excel 如何查找值的第n行?,excel,Excel,如何查找范围内第n个值的行号。例如,如果在A1:A6范围内有值1,2,1,3,4,2,那么如何为值1查找第二次出现的行号。诀窍是人们只能使用属于Sum/Count系列的函数(Sum、Sumif、Sumifs、Count、counta、countblank、Countif、CountIfs)。我可以使用“SMALL”(IF($A$1:$A$6=1,ROW($A$1:$A$6),”),B1)解决这个问题。非常感谢您的帮助。我假定B1具有您要查找的事件,而B2具有您要查找的值 只有6行,您就可以对其进

如何查找范围内第n个值的行号。例如,如果在A1:A6范围内有值1,2,1,3,4,2,那么如何为值1查找第二次出现的行号。诀窍是人们只能使用属于Sum/Count系列的函数(Sum、Sumif、Sumifs、Count、counta、countblank、Countif、CountIfs)。我可以使用“
SMALL”(IF($A$1:$A$6=1,ROW($A$1:$A$6),”),B1)解决这个问题。非常感谢您的帮助。

我假定
B1
具有您要查找的事件,而
B2
具有您要查找的值

只有6行,您就可以对其进行暴力:

=(A1=B2)*(B1=1)+(A2=B2)*(COUNTIF(A1:A2,B2)=B1)*2+(A3=B2)*(COUNTIF(A1:A3,B2)=B1)*3+(A4=B2)*(COUNTIF(A1:A4,B2)=B1)*4+(A5=B2)*(COUNTIF(A1:A5,B2)=B1)*5+(A6=B2)*(COUNTIF(A1:A6,B2)=B1)*6
要求和的每个项都在检查第n次出现是否在特定行上。对于您给出的示例,
(A3=B2)*(COUNTIF(A1:A3,B2)=B1)*3
将被评估为:

-> (1=1)*(2=2)*3
-> TRUE*TRUE*3
-> 3
所有其他术语都将为0。例如:

-> (A4=B2)*(COUNTIF(A1:A4,B2)=B1)*4
-> (3=1)*(2=2)*4
-> FALSE*TRUE*4
-> 0
如果辅助列是一个选项,则可以使用此选项并填充6行:

=((COUNTIF(A$1:A1,B$2)*(A1=B$2))=B$1)*(COUNTA(A$1:A1)+COUNTBLANK(A$1:A1))


答案是helper列的总和。这个解决方案很容易扩展——只需填写所需的行数,答案总是总和。

为什么只使用这些函数?这是实践问题的要求。范围是固定在A1到A6之间还是长度可以改变?如果已修复,则可以使用嵌套的if语句和countif执行此操作。使用嵌套if和countif检查当前引用单元格之前范围内的前一组单元格,如果该值等于2,则根据值1检查该值(如果为真)您有答案。我敢肯定,这不是最好的解决方案,但这是我第一眼看到的。范围是固定的,从A1到A6。但我尽量不使用count或sum系列之外的任何函数。我知道这是一个大公式,但如果可能的话,请分享公式的工作原理。@KT11当然可以。我在回答中加了一个解释。