close

3019

如何在Excel儲存格內只取代開頭幾個字元

白曉燕:「錦子老師您好,我想請問有關Excel的取代或者語法功能,假設說我只需要在某格內「只取代開頭幾個字元」能怎麼做呢?

主要會需要這功能是因為電話資料有過多的【886912345678】這類格式的電話出現,如果說只取代8860那當然是沒問題,但會不小心取代到某些電話剛好中間也穿插了886的號碼,我也試過=left=right的組合,但因為不能隨便改變表格順序,還有就是0開頭和886開頭的電話號碼也太過隨機,甚至有很多資料是兩隻以上電話放在同一格資料內,導致就算=left=right也非常不好用,雖然不能亂排序可以用篩選達成,但是超過1620碼的電話又構成了另外一種困擾,把「『886912886678」這類電話資料的「只有開頭的886」給刪除掉?麻煩解惑 ~ 感恩,謝謝!」

錦子老師:「其實只要用合併彙算功能即可以完成,操作方法如下:」

步驟1:點取B2儲存格輸入公式:

=IF(LEN(A2)<=12,0&RIGHT(A2,9),(IF(FIND(" ",A2,1)=11,LEFT(A2,FIND(" ",A2,1)-1),0& MID(A2,FIND(" ",A2,1)-9,9)))&" "&IFERROR(IF(FIND(" ",A2,FIND(" ",A2,1)+1)-FIND(" ",A2,1) =11,MID(A2,FIND(" ",A2,FIND(" ",A2,1)+1)-10,10),0&MID(A2,FIND(" ",A2,FIND(" ",A2,1)+1)-9,9)),0&RIGHT(A2,9)))&IF(LEN(A2)>25," "&0&RIGHT(A2,9),"")

再將公式複製到B3:B10儲存格。

image

【公式說明】

=IF(LEN(A2)<=12,0&RIGHT(A2,9),(IF(FIND(" ",A2,1)=11,LEFT(A2,FIND(" ",A2,1)-1),0& MID(A2,FIND(" ",A2,1)-9,9)))&" "&IFERROR(IF(FIND(" ",A2,FIND(" ",A2,1)+1)-FIND(" ",A2,1) =11,MID(A2,FIND(" ",A2,FIND(" ",A2,1)+1)-10,10),0&MID(A2,FIND(" ",A2,FIND(" ",A2,1)+1)-9,9)),0&RIGHT(A2,9)))&IF(LEN(A2)>25," "&0&RIGHT(A2,9),"")

公式1FIND(" ",A2,1)

搜尋A2儲存格內容中第1個空白的位址。

公式2FIND(" ",A2,公式1+1)

A2儲存格內容第1個空白的位址加1位元處開始搜尋第2個空白位址。

公式3IF(公式1=11,LEFT(A2,公式1-1),0&MID(A2,公式1-9,9))

如果公式1傳回的值等於11,則抓取A2儲存格內容左邊開始N(公式1-1)個字元,否則填入0A2儲存格內容從公式1-9位址開始抓取9個字元。

公式4IFERROR(IF(FIND(" ",A2,公式1+1)-FIND(" ",A2,1)=11,MID(A2,公式2)-10,10),0&MID(A2, 公式2-9,9)),0&RIGHT(A2,9)))

如果A2儲存格內容第2個空白位址減掉第1個空白位址等於11,則從A2儲存格內容第2個空白位址(公式2)10開始抓取10個字元,否則填入0A2儲存格內容從公式2-9位址開始抓取9個字元,如果出現錯誤值表示儲存格中只有二組數字,故填入0A2儲存格內容從最右邊字元開始抓取9個字元。

公式5IF(LEN(A2)>25," "&0&RIGHT(A2,9),"")

如果A2儲存格內容大於25個字元,表示有第3組數字,故填入0A2儲存格內容從最右邊字元開始抓取9個字元。

公式6IF(LEN(A2)<=12,0&RIGHT(A2,9),(公式3)

如果A2儲存格內容小於等於12,表示只有1組數字,故填入0A2儲存格內容從最右邊字元開始抓取9個字元,否則執行公式3

以上就是今天主要學習的知識點,希望對大家有所幫助~~有什麼問題歡迎留言,我會儘量及時的給大家答覆~~

更多相關影片教學:請點我

更多相關文章:請點我


arrow
arrow
    創作者介紹

    錦子老師 發表在 痞客邦 留言(0) 人氣()