問題:怎麼用函數將A欄裡的三個字串,分割到B欄C和D欄

2014-12-14 7:52 am
問題:怎麼用函數將A欄裡的三個數字或文字字串,分割到B欄C和D欄
(A欄的三個字串間的空格是不等距離的)


檔案請參考
您的下載地址
http://www.FunP.Net/406830
更新1:

cascade大,您好 我的問題是想把A欄的字串分割到B欄和C欄和D欄 A1=016 ATIVAN 0.5MG(LOWEN) 5 變成 B1=016 C1=ATIVAN 0.5MG(LOWEN) D1=5

更新2:

在EXCEL上 A1的內容是016接著9個空白鍵ATIVAN 0.5MG(LOWEN)接著19個空白鍵5 B1的內容是018接著9個空白鍵ALDACTONE 25MG(ALDACTIN)接著13個空白鍵11 另外 (A欄的三個字串間的空格是不等距離的)是說19個空白鍵和13個空白鍵不相同 當然這題也可以用固定欄寬分割 可是當你的軟體沒有這種分割功能和巨集功能時 就只能考慮用函數來解決

更新3:

cascade大 先跟您說聲對不起 我應該是把之前您的答案複製錯誤(沒先複製到D1就先複製到C1) 才沒在EXCEL得到想要的結果 剛剛發現可以了 請您上答(意見一和意見二) 也謝謝其他專家的意見

更新4:

Frank Chiou大 您的答案比較完整 剛剛做了測試 不管怎樣將A1中的三個字串的間隔作調整 答案都是對的 吃飽太閑的我在數字前加了兩三格空格 答案就變了

更新5:

Frank Chiou 大 這題基本上OK了 可是 我將D蘭做Z-A大小排序時 卻變成 99 97 915 90 88 86 80 8 76 73 72 69 642 629 不知那裡出了問題

回答 (6)

2014-12-15 4:53 pm
✔ 最佳答案
試試如下:

B1=LEFT(A1,FIND(" ",A1)-1)
C1=TRIM(MID(A1,LEN(B1)+1,LEN(A1)-LEN(D1)-LEN(B1)))
D1=TRIM(RIGHT(SUBSTITUTE(A1," ",REPT(" ",100)),100))

2014-12-15 08:53:00 補充:
多謝cascade大的承讓.

公式如下:

B1=LEFT(A1,FIND(" ",A1)-1)
C1=TRIM(MID(A1,LEN(B1)+1,LEN(A1)-LEN(D1)-LEN(B1)))
D1=TRIM(RIGHT(SUBSTITUTE(A1," ",REPT(" ",100)),100))

格式型態變更答案就會變的. 敬請知悉. 若有需要變更請告知.

2014-12-15 09:10:11 補充:
若變更 A 欄態變, 如版主所述: 在數字前加了兩三格空格.
只有在 B1 及 C1 公式內的A1前加上函數TRIM. 如下:

B1=LEFT(TRIM(A1),FIND(" ",TRIM(A1),1)-1)
C1=TRIM(MID(TRIM(A1),LEN(B1)+1,LEN(TRIM(A1))-LEN(D1)-LEN(B1)))
一樣往下拉 Copy.

D1不用改.

2014-12-15 09:13:15 補充:
若變更 A 欄態變 >>應改為>> 若要變更 A 欄型態

2014-12-15 22:46:29 補充:
D欄若要做Z-A大小排序時, 則D1公式加上函數TEXT,
因為有三位數需改為如下:

=TEXT(TRIM(RIGHT(SUBSTITUTE(A1," ",REPT(" ",100)),100))."000")

若有四位數需改為如下:

=TEXT(TRIM(RIGHT(SUBSTITUTE(A1," ",REPT(" ",100)),100))."0000")

若有五位數需改為如下:

=TEXT(TRIM(RIGHT(SUBSTITUTE(A1," ",REPT(" ",100)),100))."00000")

以此類推, 如此即可排序.

2014-12-16 06:55:36 補充:
D1的公式最後一個符號應該是逗號沒錯. 對不起, 筆誤了! 應改為如下:

=TEXT(TRIM(RIGHT(SUBSTITUTE(A1," ",REPT(" ",100)),100)),"000")
2014-12-17 2:30 pm
他之前遇到的問 題跟你一樣
TS777。CC
2014-12-14 5:44 pm
如果 B:D 欄不固定寬度
B1=LEFT(A1,FIND(" ",A1)-1)
C1=MID(A1,FIND(" ",A1)+1,LEN(SUBSTITUTE(A1," ",""))-FIND(" ",A1)+1)
D1=RIGHT(A1,LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-2)
2014-12-14 4:11 pm
資料剖析......固定寬度
2014-12-14 9:37 am
B1=MID(A1,1,FIND("*",SUBSTITUTE(A1," ","*"),1)-1)
D1=SUBSTITUTE(RIGHT(SUBSTITUTE(A1," ","*"),LEN(A1)-LEN(SUBSTITUTE(SUBSTITUTE(A1," ","*"),"*",""))-8-2),"*","")

2014-12-14 01:37:51 補充:
C1=TRIM(SUBSTITUTE(SUBSTITUTE(A1,B1&REPT(" ",8),""),REPT(" ",LEN(A1)-LEN(SUBSTITUTE(SUBSTITUTE(A1," ","*"),"*",""))-8-3)&D1,""))
下拉複製

2014-12-14 11:07:44 補充:
版主:
附件中的A1是"016 ATIVAN 0.5MG(LOWEN) 5"
您補補說明的A1是"016 ATIVAN 0.5MG(LOWEN) 5"
兩者的長度是不同的

2014-12-14 11:10:31 補充:
B1=MID(A1,1,FIND("*",SUBSTITUTE(A1," ","*"),1)-1)
D1=SUBSTITUTE(RIGHT(SUBSTITUTE(A1," ","*"),LEN(A1)-LEN(SUBSTITUTE(SUBSTITUTE(A1," ","*"),"*",""))-2),"*","")

2014-12-14 11:11:40 補充:
C1=TRIM(SUBSTITUTE(SUBSTITUTE(A1,B1&REPT(" ",1),""),REPT(" ",LEN(A1)-LEN(SUBSTITUTE(SUBSTITUTE(A1," ","*"),"*",""))-2)&D1,""))
下拉複製
註:A1是"016 ATIVAN 0.5MG(LOWEN) 5"

2014-12-15 00:25:52 補充:
版主:

既要是最佳解答,表示這個答案應該能夠有效因應各種內容的變化,您已經測試過Frank Chiou大大的解答具備這樣子的功能,那這份榮譽就應歸Frank Chiou大大,就請版主邀請Frank Chiou大大上答,別太客氣喔!


收錄日期: 2021-04-27 21:39:26
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20141213000015KK04756

檢視 Wayback Machine 備份