![]() |
PCDVD數位科技討論區
(https://www.pcdvd.com.tw/index.php)
- 七嘴八舌異言堂
(https://www.pcdvd.com.tw/forumdisplay.php?f=12)
- - 請問如何用excel函數抽出條碼最後幾個數字?
(https://www.pcdvd.com.tw/showthread.php?t=865268)
|
---|
請問如何用excel函數抽出條碼最後幾個數字?
小弟我睡夢中也在思索,10後面的數字就是產品批號
有請excel函數達人幫我,拜託拜託! 例如 01050193150280481710092810102343 013501931502033317140128301010904308 0155019315038783171309283010101377347 抽取最後一個10後面的幾個數字,有時是4位數,有時是6位數,有時是7位數 |
=IF(ISERROR(FIND(10,RIGHT(A1,6)))=FALSE,RIGHT(A1,4),
IF(ISERROR(FIND(10,RIGHT(A1,8)))=FALSE,RIGHT(A1,6), IF(ISERROR(FIND(10,RIGHT(A1,6)))=FALSE,RIGHT(A1,4), IF(ISERROR(FIND(10,RIGHT(A1,9)))=FALSE,RIGHT(A1,7),0)))) 拋磚引玉一下 A1就是你要判斷的條碼位址 不知道有沒有比較簡化的寫法 |
所以樓主看到2F寫的嗎?
不規則的資料除非經過排序或整理, 不然想直接透過電腦簡化, 只會讓事情變的更複雜. |
引用:
這麼多個10, 你要它能正確抓取? 我看是會弄得更複雜吧 :jolin: |
連人類思維都很難做到的事情,連規律都沒有,就別想教電腦去做了吧 U_U
|
如果規則不變的話 拆成以下就比較簡單了
010501931502804817100928 1010 2343 01350193150203331714012830 1010 904308 01550193150387831713092830 1010 1377347 A1=01050193150280481710092810102343 A2=013501931502033317140128301010904308 A3=0155019315038783171309283010101377347 RIGHT(A1,LEN(A1)-FIND(1010,A1)-3)=2343 RIGHT(A2,LEN(A2)-FIND(1010,A2)-3)=904308 RIGHT(A3,LEN(A3)-FIND(1010,A3)-3)=1377347 |
引用:
用Excel內建函數找出 "最後一個10" 我不會, 但是用VBA寫一個自訂函數就很簡單, 先用遞迴找出最後一個10的位置, 然後用MID函數就可以取回10以後的字串. |
會這樣設計系統規則一定會有問題,假設有個編號是一千萬一十萬一千一十,那取出時該拿到甚麼??
|
引用:
根據需求, 取出來的結果是空字串 XD |
引用:
此為國際大廠的產品 圖片中的條碼17, 10有括號 (17)前面2232表示產品的型號 (17)後面6個數字130728代表產品效期2013.07.28 (10)前面2或3個數字表示一箱或一盒裝多少數量20個或120個 (10)後面的數字表示此產品的批號903602 問題來了 掃描器掃出來17, 10都沒括號 0155019315022324171307283012010903602 若是10有括號就可算出(10)在字串的位置,還可以區別其他10 10沒括號加上批號位數不一定 RIGHT()便無法應用上 |
所有的時間均為GMT +8。 現在的時間是12:54 AM. |
vBulletin Version 3.0.1
powered_by_vbulletin 2025。