匹配第n个实例

时间:2015-10-23 09:41:40

标签: excel excel-formula

我在电子表格中有一组数据,我希望自动将以特定字符串开头的前七个实例拉到七个独立的单元格,以便可以很容易地看到完整的单元格内容是什么。我已经编写了一个成功找到第一个匹配项的公式,但我找不到将其扩展到第二个,第三个等的方法。我曾想过使用前一个单元格的匹配作为下一个单元格的输入,但我尝试过的所有东西似乎都无法发挥作用。

我找到了一些使用VBA或CSE公式的例子,但我尝试过的任何CSE公式似乎都不起作用。但由于施加在我身上的限制,无论如何我都不能使用VBA或CSE,所以我从来没有太深入了解它。

以下是与第一个实例匹配的公式:

=INDEX($A$13:$A$5000,MATCH("start*",$A$13:$A$5000,0))  

这是在Cell A4中;我希望A5:A11能够匹配接下来的六个实例。

这可能是一种香草配方吗?

3 个答案:

答案 0 :(得分:1)

这可以使用"数组"功能(Ctrl + Shift + Enter)但我个人不喜欢使用它们。

我的建议如下:

A4 =MATCH("start*",$A$13:$A$5000,0)

B4 =INDEX(OFFSET($A$13:$A$5000,B4,0),MATCH("start*",OFFSET($A$13:$A$5000,B4,0),0))

A5 =MATCH("start*",OFFSET($A$13:$A$5000,B4,0),0)+B4

并将其复制到A11

B5 cnt=0, mod(cnt , 2) = 0

并将其复制到B11

基本上这个"推动"搜索区域的数量等于前一个匹配的总和,然后找到下一个匹配。

答案 1 :(得分:1)

如何使用Helper列。在 B13 中输入:

=IF(LEFT(A13,5)="start",1+MAX($B$1:B12),"")

并复制下来。然后在 A4 中输入:

=IFERROR(INDEX($A$13:$A$5000,MATCH(ROWS($1:1),$B$13:$B$5000,0)),"")

并复制下来:

enter image description here

答案 2 :(得分:1)

其他答案略有不同,仍然使用从B4开始的辅助列并下拉以获得13美元的匹配位置:$ 5000:

=IFERROR(MATCH("BR*",INDEX(A$13:A$5000,B3+1):A$5000,0)+B3,"")

(假设B3为空)。

然后在A4中获得相应的匹配并拉下来: -

=IFERROR(INDEX(A$13:A$5000,B4),"")

(我的测试数据使用以BR开头的字符串)。

enter image description here