iT邦幫忙

0

excel模糊字段比對

  • 分享至 

  • xImage

大家好

我有爬文到2018有類似文章
但無法完整解決我的問題

(https://ithelp.ithome.com.tw/search?search=excel+%E6%A8%A1%E7%B3%8A&tab=question)

因為我的字段有些是在中間, 沒有固定位置
想問問是否有可以修正的地方
如下圖淺黃色的地方因為字段在中間, 就無法比對到
因需要比對的資料多
也不太可能對單一資料做工式調整

https://ithelp.ithome.com.tw/upload/images/20220930/20153379X7oQDo0L2i.png

附上我的公式
E4=LEN(B4)
J4=LARGE(IF(ISERROR(SEARCH($B$4:$B$22,G4)),0,1)*$E$4:$E$22,1)
H4=VLOOKUP(LEFT(G4,J4),B:C,2,FALSE)

先感謝各位厲害的大大

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2022-09-30 16:30:59
最佳解答

試試看

H6=LOOKUP(9.99999999999999E+307,SEARCH($B$4:$B$11,$G6),$B$4:$B$11)
往下複製至H8

資料來源

alfbu iT邦新手 5 級 ‧ 2022-09-30 17:17:20 檢舉

感謝海綿大大的回答
問題大致能解決
但有一個小小的問題
就是他的比對的優先順序
如下圖
https://ithelp.ithome.com.tw/upload/images/20220930/20153379alH7l2dxPA.png

H5應該要吃C6但先吃到C7後就不再繼續比對了
不知道有沒有能修改的地方

感恩

沒辦法

假設有多筆符合條件的情形
一定只能選其中一筆(不是第一筆就是最後一筆)

0
ccenjor
iT邦高手 1 級 ‧ 2022-09-30 19:19:46

不知這是不是你要的結果。
H4:
=TEXTJOIN(",",,IFERROR(IF(FIND($B$4:$B$13,G4,1)>0,$C$4:$C$13),""))
向下複製到H5:H9儲存格。

https://ithelp.ithome.com.tw/upload/images/20220930/20109881Wjcm5Dil2E.png

看更多先前的回應...收起先前的回應...
aaron3399 iT邦好手 1 級 ‧ 2022-09-30 21:57:53 檢舉

那個ASGARD30是不是無法避免抓2次呢?

ccenjor iT邦高手 1 級 ‧ 2022-09-30 22:42:12 檢舉

你要抓一次嗎?要抓那一個C12還是C13。

ccenjor iT邦高手 1 級 ‧ 2022-09-30 22:50:58 檢舉

抓C12(第一個)的寫法
H4:
=MID(TEXTJOIN(",",,IFERROR(IF(FIND($B$4:$B$13,G4,1)>0,$C$4:$C$13),"")),1,IFERROR(FIND(",",TEXTJOIN(",",,IFERROR(IF(FIND($B$4:$B$13,G4,1)>0,$C$4:$C$13),"")),1),20)-1)
向下複製到H5:H9儲存格。
https://ithelp.ithome.com.tw/upload/images/20220930/20109881IZ8QlWzXpw.png

ccenjor iT邦高手 1 級 ‧ 2022-09-30 22:55:43 檢舉

抓C13(第二個)寫法
H4:
=MID(TEXTJOIN(",",,IFERROR(IF(FIND($B$4:$B$13,G4,1)>0,$C$4:$C$13),"")),IFERROR(FIND(",",TEXTJOIN(",",,IFERROR(IF(FIND($B$4:$B$13,G4,1)>0,$C$4:$C$13),"")),1)+1,1),20)
向下複製到H5:H9儲存格。
https://ithelp.ithome.com.tw/upload/images/20220930/20109881DAzuDWCi8G.png

我要發表回答

立即登入回答