在MES系統上線過程中,難免有很多的數據導入處理,客戶這邊有用到很多的Excel文檔,
其中有一個典型就是客戶的排程是根據品名來排,但是在使用排程資料時,我們需要使用到料號信息。
客戶這邊負責排程的小姐姐都是Excel的高手,使用了Excel的函數,VLOOKUP來處理,具體的函數示意可參見BaiDubu。
這里主要說明2點,Excel是微軟出品,果然跟Sql一個模式,在查詢時“*”表示通配符,好巧不巧的是,客戶的品名里面由很多的*存在,
例如:A07T10*5*2.3Y 等,這樣如果單純的不注意到這點,匹配起來就會拉到錯誤的料號資訊,導致導入到系統里面的數據存在異常,
無法順利排程。
左思右考,無其他解決方案,只能自己動手來研究一下。
畢竟自己也是搞開發的,動動手還是很有希望解決的,那么就先觀察問題,確定了BUG的罪魁禍首:通配符*
那么接下來就是對公式進行調整了,所以有了以下修正
=VLOOKUP(SUBSTITUTE(E6,"*","~*"),成型料號!A:B,2,FALSE)
大致的意思就是 對查詢項的* 替換為~* 函數為:SUBSTITUTE(列,要替換的舊字符,替換為新的結果) ,准確*匹配
然后有個特意說明,高人指點,成型料號!A:B 表示查詢資料庫的哪些列, 后面的2表示取對應結果的第幾列作為返回值, False表示全字符匹配
這樣舊打完收工了。
非常完美的解決了一個壓抑了幾周的問題!