Board logo

標題: Excel 取特殊字元 [打印本頁]

作者: jsc0518    時間: 2018-12-31 17:08     標題: Excel 取特殊字元

Dear 大大,
我要取儲存格右邊開始發現有"+"號後面的字串

我下的公式
=MID(A2,FIND("+",A2)+1,4) --> 因它抓到了第一個+號,所以就變成
3+L0000-29-ABC+PP    ---> L000


我想要變成下列答案
3+L0000-29-ABC+PP    ---> PP
3+A0000-30-CDE+PQQ     ---> PQQ

請問公式要怎麼修訂?
作者: 准提部林    時間: 2018-12-31 17:11

=TRIM(RIGHT(SUBSTITUTE(A2,"+",REPT(" ",9)),9))
作者: jsc0518    時間: 2019-1-1 09:32

回復 2# 准提部林

准提部林,早安
語法可以用

是否可以幫忙說明語法的意思呢?
=TRIM(RIGHT(SUBSTITUTE(A2,"+",REPT(" ",9)),9))



我只知道,去除字串空白函數:TRIM、SUBSTITUTE
謝謝您!
作者: 准提部林    時間: 2019-1-1 09:44

回復 3# jsc0518

=SUBSTITUTE(A2,"+",REPT(" ",9))
>> "3         L0000-29-ABC         PP"

"+"全變成9個空白字元, (若字串長, 可改成99)
右取9個字元, 再trim去空白
作者: jsc0518    時間: 2019-1-1 09:47

回復 4# 准提部林

准提部林

謝謝您的教導歐!
作者: jsc0518    時間: 2019-1-2 18:19

回復 2# 准提部林

Dear 准提部林

若我要抓右邊開始發現有"+"號後面的字串 (含加號)
我自己是用下列語法
3+L0000-29-ABC+PP    ---> +PP
="+"&TRIM(RIGHT(SUBSTITUTE(A2,"+",REPT(" ",9)),9))

是否有其他的方法?
作者: 准提部林    時間: 2019-1-2 18:38

本帖最後由 准提部林 於 2019-1-2 18:46 編輯

回復 6# jsc0518


那是最簡單又有效率的方法,
也可試試這個
=VLOOKUP("+*",RIGHT(A2,ROW($1:$19)),1,)  陣列公式(三鍵輸入)

或/一般公式:
=MID(A2,-LOOKUP(,-FIND("+",A2,ROW($1:$39))),9)
作者: jsc0518    時間: 2019-1-3 19:37

回復 7# 准提部林


准提部林
感謝您的回覆
請問一下,這一段語法的意思?
ROW($1:$19)),1,)
作者: vvcvc    時間: 2019-1-12 16:47

回復  准提部林


准提部林
感謝您的回覆
請問一下,這一段語法的意思?
ROW($119)),1,)
jsc0518 發表於 2019-1-3 19:37

你取錯公式的區域了
可以使用F9讀區部份公式的結果來了解公式的意義
選取FIND("+",A2,ROW($1:$39))後按F9
會出現一個陣列,find加上row($1:$39)的意思是從A2字串的第1、第2、第3...、第39位置開始找+這個符號並回傳39個結果
若你的字串於第39個字元後還有出現+的時候,就需修改為$1:$50或更大

我覺得lookup比較難理解,若解釋錯誤請協助指正
lookup會回傳小於或等於lookup_value的最大值
此公式改為MID(A2,LOOKUP(100,FIND("+",A2,ROW($1:$39))),9)
於此例中可得到相同的結果

未指定lookup_value,故傳回array中符合條件的最後一個
但回傳的15在EXCEL預設為通用格式並非數字,函式無法計算
故在FIND前方加上-,強制找到的結果變成數字,但也變成了負數
故lookup需再加-,轉為正數
作者: ML089    時間: 2019-1-13 09:17

回復 1# jsc0518

我要取儲存格右邊開始發現有"+"號後面的字串

我下的公式
=MID(A2,FIND("+",A2)+1,4) --> 因它抓到了第一個+號,所以就變成
3+L0000-29-ABC+PP    ---> L000

我想要變成下列答案
3+L0000-29-ABC+PP    ---> PP
3+A0000-30-CDE+PQQ     ---> PQQ


----------------------
若資料有規則性
你的公式只要簡單修改就可以使用,准大的公式是可以比開多個 "+" 找最後一個,彈性比較大。

=MID(A2,FIND("+",A2)+1,4)
改為
=MID(A2,FIND("+",A2,3)+1,9)  

3 是由第3字元起往後尋找,你的第一個 "+" 是在字串第2位置,所以由字串第3位置往後查詢第二個"+",若有未知數個 "+" ,就需要用 准大 的公式。
9 可以設定為 + 以後可以取的最多字元,所以也可以設為99、999...
作者: jsc0518    時間: 2019-1-13 10:29

回復 10# ML089
ML089 早安!
感謝您對公式用法上說明,讓我學習到很多。
Thanks




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)