Dear IT前輩們~
以下方圖片問題!!!要用函數處理...
想把合併字串(B2欄位),只有【】拆開,並把字串塞到C D E欄位去...
可以麻煩前輩們指點一下技巧嗎
而合併字串(B2欄位),最前面未來可能還會有【xxx】值,所以只取最後三個塞過去CDE欄位就OK了...
則C2,D2,E2該怎麼表示函數呢
C2
儲存格輸入:=LEFT(RIGHT($B2,LEN($B2)-LARGE(IF(MID($B2,ROW(INDIRECT("1:"&LEN($B2))),1)="【",ROW(INDIRECT("1:"&LEN($B2))),""),3)),SEARCH("】",RIGHT($B2,LEN($B2)-LARGE(IF(MID($B2,ROW(INDIRECT("1:"&LEN($B2))),1)="【",ROW(INDIRECT("1:"&LEN($B2))),""),3)))-1)
按Ctrl + Shift + Enter
D2
儲存格輸入:=LEFT(RIGHT($B2,LEN($B2)-LARGE(IF(MID($B2,ROW(INDIRECT("1:"&LEN($B2))),1)="【",ROW(INDIRECT("1:"&LEN($B2))),""),2)),SEARCH("】",RIGHT($B2,LEN($B2)-LARGE(IF(MID($B2,ROW(INDIRECT("1:"&LEN($B2))),1)="【",ROW(INDIRECT("1:"&LEN($B2))),""),2)))-1)
按Ctrl + Shift + Enter
E2
儲存格輸入:=LEFT(RIGHT($B2,LEN($B2)-LARGE(IF(MID($B2,ROW(INDIRECT("1:"&LEN($B2))),1)="【",ROW(INDIRECT("1:"&LEN($B2))),""),1)),SEARCH("】",RIGHT($B2,LEN($B2)-LARGE(IF(MID($B2,ROW(INDIRECT("1:"&LEN($B2))),1)="【",ROW(INDIRECT("1:"&LEN($B2))),""),1)))-1)
按Ctrl + Shift + Enter
C2:E2
,用填滿控點往下拉即可真的寫出來了,不過看完我還是覺得我乖乖寫python去處理吧。哈
陣列公式感覺很像sumproduct?
froce,就是這感覺。
感謝pcw大,只是我套用程式碼後,呈現#NUM
是Code哪個地方要調整呢?麻煩前輩指點小弟...
請參考
C欄
=IF(ISNUMBER(FIND(C1,(MID($B$2,LEN($B$2)-(LEN($C$1)+LEN($D$1)+LEN($E$1)+5),(LEN($C$1)+LEN($D$1)+LEN($E$1)+6)))))=TRUE,C1,"")
D欄
=IF(ISNUMBER(FIND(D1,(MID($B$2,LEN($B$2)-(LEN($C$1)+LEN($D$1)+LEN($E$1)+5),(LEN($C$1)+LEN($D$1)+LEN($E$1)+6)))))=TRUE,D1,"")
E欄
=IF(ISNUMBER(FIND(E1,(MID($B$2,LEN($B$2)-(LEN($C$1)+LEN($D$1)+LEN($E$1)+5),(LEN($C$1)+LEN($D$1)+LEN($E$1)+6)))))=TRUE,E1,"")
這個是運用在什麼地方?看起來似乎是老師出的考題.
補充:
第一列需如圖
若不想看起來複雜可以直接將需要的字串字數放入公式裡.
若未來會產生的字串過少會產生問題請注意
感謝蟹老闆提供資訊…
CDE欄位可以參照B欄位去處理嗎?
因為B3以下的儲存格也會有更多的【xxx】資料,所以B欄位的都要取後面三筆,不管多少筆都取最後三筆~
想破頭……
我的思路是這樣的
將要取出的三個字串統計數量後-去B欄的整個字串,然後取右邊剩餘字串再去搜有無CDE中的字串,有則顯示相關字串.
但這會有個問題,假設要取出的字串長度是20,而最後三個假設是[A][B][C]這樣的話就會有問題,若可將字串長度統一則可安心使用
pcw用做統計字串長度及搜尋條件
harry789111是參照B欄沒錯
感謝前輩們的幫忙,暫時沒問題,只是還有些問題還沒解,先試著解看看:)
不行再回應上來~~~
VBA感覺這樣吧?
Sub test()
myStr = Split([B2], " ")
For i = 1 To 3
Cells(2, 6 - i) = Replace(Replace(myStr(3 - i), "【", ""), "】", "")
Next
End Sub