圖1
如果我們想要提取其中的某個(gè)城市,例如第8個(gè)子字符串表示的城市名,則可以使用下面的公式:
=TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",999)),8*999-998,999))
在公式中,先使用SUBSTITUTE函數(shù)以999個(gè)空格來(lái)替換字符串中的每個(gè)分隔符,然后使用MID函數(shù)提取所需要的子字符串(前后都含有空格),最后使用TRIM函數(shù)去掉字符串首尾的空格獲得最終的結(jié)果。由于每個(gè)子字符串遠(yuǎn)小于999,因此不用擔(dān)心位置參數(shù)不合適而得到錯(cuò)誤結(jié)果。
如果想要提取字符串中的每個(gè)子字符串并將它們分別放置在不同的單元格中,則可以使用公式:
=TRIM(MID(SUBSTITUTE($A$1,",",REPT("",999)),COLUMN(A1)*999-998,999))
結(jié)果如下圖2所示。
圖2
在圖2所示的工作表中,在單元格B3中輸入上面的公式,向右拖至單元格K3。
在公式中,COLUMN(A1)的值為1,向右拖動(dòng)1列,將變?yōu)?/span>COLUMN(B1),值為2,依此類(lèi)推,從而順序提取子字符串的值。
好好講道理:反擊謬誤的邏輯學(xué)訓(xùn)練(Attacking Faulty Reasoning)(美國(guó)30余所大學(xué)通用的邏輯學(xué)教材)(如果你只打算買(mǎi)一本關(guān)于批判性思維的書(shū),本書(shū)是不二選擇?。?/h2>
作者:[美]T.愛(ài)德華戴默 著,黃琳,刀爾登 譯
當(dāng)當(dāng)
一般公式
從上面的演示中,我們可以得到實(shí)現(xiàn)此種情況的一般公式為:
=TRIM(MID(SUBSTITUTE(字符串所在單元格,分隔符,REPT("",999)),子字符串位置*999-998,999))
公式中的數(shù)字999可以隨字符串的長(zhǎng)度而定,只是要取得足夠大即可。
更進(jìn)一步
如果要從字符串的結(jié)尾開(kāi)始提取指定位置的子字符串呢?如圖3所示,要提取單元格A1中倒數(shù)第3個(gè)子字符串。
圖3
我們已經(jīng)給出的公式為:
=TRIM(MID(SUBSTITUTE(A1,",",REPT("",999)),(2-3+(LEN(A1)-LEN(SUBSTITUTE(A1,",","")))/LEN(","))*999-998,999))
一般的公式為:
=TRIM(MID(SUBSTITUTE(字符串所在單元格,分隔符,REPT("",999)),(2-子字符串位置+(LEN(字符串所在單元格)-LEN(SUBSTITUTE(字符串所在單元格,分隔符,"")))/LEN(分隔符))*999-998,999))
上例中,可以使用一個(gè)更好的公式得到同樣的結(jié)果:
=TRIM(LEFT(RIGHT(SUBSTITUTE(","&A1,",",REPT("",999)),3*999),999))
這也可以避免子字符串位置超過(guò)了字符串實(shí)際位置時(shí)出現(xiàn)的錯(cuò)誤。
一般的公式為:
=TRIM(LEFT(RIGHT(SUBSTITUTE(分隔符&字符串所在單元格,分隔符,REPT(" ",999)),子字符串位置*999),999))
公式中的999是取的一個(gè)較大的數(shù)字,這個(gè)數(shù)字至少應(yīng)大于字符串所在單元格中的字符數(shù)。