excel/vba-查找列中特定值的第一个和最后一个匹配项

excel/vba-查找列中特定值的第一个和最后一个匹配项,excel,vba,excel-formula,Excel,Vba,Excel Formula,因此,如果我有一个专栏,例如: A1 1 Apple 2 Apple 3 Apple 4 Oj 5 Oj 6 Oj 7 Oj 8 Pear 9 Pear 我如何才能为Apple返回值1和3,为OJ返回值4和7等?从公式角度看,您可以使用匹配功能,例如第一个Apple位置 =匹配(“苹果”,A1:A9,0) 最后 =匹配(2,索引(1/(A1:A9=“Apple”),0)) 或者,如果水果按照您的示例进行分类(或仅分组),您可以通过将苹果数添加到第一个

因此,如果我有一个专栏,例如:

    A1
1   Apple
2   Apple
3   Apple
4   Oj
5   Oj
6   Oj
7   Oj
8   Pear
9   Pear

我如何才能为Apple返回值1和3,为OJ返回值4和7等?

从公式角度看,您可以使用
匹配功能,例如第一个Apple位置

=匹配(“苹果”,A1:A9,0)

最后

=匹配(2,索引(1/(A1:A9=“Apple”),0))

或者,如果水果按照您的示例进行分类(或仅分组),您可以通过将苹果数添加到第一个-1中来获得最后一个

对于C1中的第一个匹配函数


=COUNTIF(A1:A9,“苹果”)+C1-1

到目前为止,您有什么代码?我没有代码本身,但我正在尝试了解什么是可能的。现在,我正在考虑将第一个单元格及其行的值作为变量存储,向下移动1个单元格,检查其值是否相同,继续循环,直到它不是相同的值,然后存储上面单元格的行。@bsapaka:这正是开始操作的方法。如果您需要更快的性能,可以尝试一些技术,但这些都是真正的“优化”问题,而不是基本设计。也许对你有帮助。