返回列表 上一主題 發帖

[發問] 請問一下如何擷取A1儲存格中括號內的數值,並將之顯示在B1儲存格呢?

回復 10# jackson7015

好像是在考試唷
=LEFT(MID(SUBSTITUTE(A1,"-",";",LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))),FIND(";",SUBSTITUTE(A1,"-",";",LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))+1,255),LEN(A1)-(FIND(";",SUBSTITUTE(A1,"-",";",LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))+1))
學海無涯_不恥下問

TOP

抱歉,一直麻煩Hsieh 版大
因為想要了解,這種類似問題的相關不同排列擷取,所以才問了相似的問題
目前三種都可正常執行運用
感謝Hsieh 版大的熱心幫忙

TOP

回復 12# jackson7015
這種類似問題,其實都可以自己思考,你會發現這個問題中所用的函數不就是MID函數中,擷取長度的變化
最初的技巧只有SUBSTITUTE來將最後一個分隔符號用特定字元取代,得以判斷所需擷取的片段
接下來的變形都是MID或LEFT或RIGHT來擷取部分字串
應該徹底了解整個公式的意義才能加以運用。
學海無涯_不恥下問

TOP

感謝Hsieh版大的指導
小弟的函數運用還在起步學習階段,相同函數多要參考多種相似運用來慢慢解析
會慢慢改進學習態度;感激Hsieh版大不吝指教

TOP

回復 6# Hsieh


Hsieh 大大請教一下~
目前我使用上遇到一個問題,利用B欄來做比對,但是若比對到例如字元為:IR10000 & R10000,會出現混淆的現象~只會抓到IR10000的值,請問要怎麼改呢?謝謝!!

Sheet1
A                                       B                   C
09-87654321        IR10000        12-34567890        
09-87654322        R10000          12-34567890 (應該要抓到12-34567891)        
09-87654323        D1               

Sheet2
A                                       B
12-34567890        R10000,R10001
12-34567891        IR10000
12-34567892        C2,D3

TOP

回復 15# happycoccolin

模糊比對無法達成那就用自定義函數試試

   
  1. Function Dictionary(key As Range, item As Range, crt As String)
  2. Set d = CreateObject("Scripting.Dictionary")
  3. For i = 1 To key.Count
  4.   For Each a In Split(key(i), ",")
  5.     d(CStr(a)) = item(i).Value
  6.   Next
  7. Next
  8. Dictionary = d(CStr(crt))
  9. End Function
複製代碼
學海無涯_不恥下問

TOP

回復 16# Hsieh


HSIEN大大我試過了謝謝您!!謝謝!

只是VBA完全不熟,還蠻想搞清楚來龍去脈的~@@

是要多花點時間研讀了

TOP

回復  happycoccolin
Hsieh 發表於 2012-7-2 18:10



請問這種模糊比對要如何用VBA寫出來
我的問題其實用這個函數能解決, 不過我還是想知道VBA要怎麼寫

TOP

B1=MID(A1,FIND("(",A1)+1,FIND(")",A1)-FIND("(",A1)-1)
C5=IF(FIND(B5,Sheet2!B1)>0,Sheet2!A1,"")
lmh

TOP

本帖最後由 shuwen0219 於 2015-9-18 12:38 編輯

{1187632393755295}
[T200P1275298438942244]       
請問同一欄裏的資料有這兩種,我要取出中間的數值的要怎麼做?
由後算取16碼數字.

TOP

        靜思自在 : 慈悲沒有敵人,智慧不起煩惱。
返回列表 上一主題