關於Excel的問題。觀察下圖,網友提供的原始字串中,要從其中取出片段字串。其包含左括弧「(」左側一個英文字,和左側1-3個不等的數字,及右側至右括弧「)」的內容。
如何處理這類的問題?
【公式設計與解析】
因為要取出英文字左側1-3個數字,所以利用輔助欄位來幫助理解。
(1) 取出英文字左側3個位置的字(不一定是數字)
儲存格E2:=MID(A2,SEARCH("(",A2)-4,1)
利用 SEARCH 函數來找尋「(」的位置。
利用 MID(A2,M,N) 函數在儲存格A2中第M個位置開始取出N個字元。
(2) 取出英文字左側2個位置的字(不一定是數字)
儲存格F2:=MID(A2,SEARCH("(",A2)-3,1)
(3) 取出英文字左側1個位置的字(不一定是數字)
儲存格G2:=MID(A2,SEARCH("(",A2)-2,1)
(4) 取出左括弧和右括弧之間的文字
儲存格H2:=MID(A2,SEARCH("(",A2)-1,SEARCH(")",A2)-SEARCH("(",A2)+2)
(5) 串接所有的文字
儲存格C2:=IFERROR(E2*1,"")&IFERROR(F2*1,"")&IFERROR(G2*1,"")&H2
利用 IFERROR 函數判斷儲存格內容,若為文字(不是數字),則以空字串顯示。
文章標籤
全站熱搜

感謝老師不厭其煩的教導,這方法已經比人工輸入快很多了 (^^) 接下來我只需將手順簡化到最少即可
謝謝你光臨我的教學部落格。
請問老師,我發現一個數組搜尋公式加上你的H2可以一次完成,不過我不太懂它的涵義是?? =-LOOKUP(0,-MID($Z3,MIN(FIND(ROW($1:$10)-1,$Z3&1/17)),ROW($1:$9)))&MID($Z3,SEARCH("(",$Z3)-1,SEARCH(")",$Z3)-SEARCH("(",$Z3)+2) 只不過要按 Ctrl+shift+ENTER 三個按鍵
謝謝你!就是因為陣列公式對多數人都是不易理解,才用輔助欄位(在工作表中只要把輔助欄位隱藏即可)。
老師,我發現這個公式也可以搜尋數字開始出現的前半段 不過缺點是括弧 ) 後面的字也一起被帶出.... =MID($AA2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},$AA2&"0123456789")),2*LEN($AA2)-LENB($AA2))
老師好,不好意思,不知到哪裡發問,有個excel vba問題要請教您 就是要如何在一維陣列理,將搜尋好的資料回傳索引值呢? ex: 號數資料庫_大D = Array("D10", "D13", "D16", "D19", "D22", "D25", "D29", "D32", "D36") 譬如我收尋到符合的字串 D32 要如何回傳她在Array的索引值呢?