2015-10-23 97 views
1

我有一個電子表格中的數據數組,我想自動將以特定字符串開頭的前七個實例拉到七個獨立單元,以便可以很容易地看到完整單元格的內容。我已經編寫了一個成功找到第一個匹配項的公式,但是我找不到將其擴展到第二個,第三個等的方法。我曾經想過使用前一個單元格的匹配作爲下一個單元格的輸入,但是我所做的一切嘗試似乎沒有工作。匹配第n個實例

我發現了一些使用VBA或CSE公式的示例,但我嘗試過的任何CSE公式似乎都不起作用。但由於強加給我的限制,我無法使用VBA或CSE,所以我從來沒有深入過。

這裏是第一個實例相匹配的公式:

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

這是在細胞A4;我想A5:A11匹配接下來的六個實例。

這是可能的香草配方?

+1

爲什麼不能使用CSE?你使用的是什麼版本的Excel? 「香草配方」是什麼意思? –

回答

1

這可以使用「數組」功能(Ctrl + Shift + Enter)完成,但我個人不喜歡使用這些功能。

我的建議是以下代替:

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

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

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

並複製此下降到A11

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

並將其複製到B11

基本上這會「推」搜索區域的量等於前面匹配的總和,然後找到下一個匹配。

+0

我不能做一個單獨的幫手列,但我只是把輔助單元放在同一行的底部。我還能夠簡化輸出單元格,這是因爲您在A13中創建了使用= INDEX($ A $ 13:$ A $ 5000,A6000)的引用列表,並且在A14中創建了= INDEX($ A $ 13:$ A $ 5000,A6001)等。我要求的完美分數!謝謝! – fileinster

1

如何使用助手列。在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

1

上其他的答案,還是使用B4開始幫手列細微變化,並拉下拿到賽在$ 13的位置:a $ 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