[算表] Excel如何替換存貨料號編碼

作者: moodyblue   2016-01-18 03:21:53
Excel如何替換存貨料號編碼
網誌圖文版:
http://www.b88104069.com/archives/3724
最近工作上遇到一個案例,收到的文件有一欄是存貨料號,但這個料號,有
一碼被弄成了「*」,具體原因不明,對方只是說有另外一欄是客戶代碼,把
客戶代碼第一碼替換存貨料號的「*」,便是系統裡的存貨料號了。以下針對
這個案例作分享:
一、如圖所示, 我收到的報表長這樣,標黃色的,便是被搞了一個星字號的
存貨料號。
二、直覺想法,既然是倒數第二碼末兩碼,那就來個「=RIGHT(B6,2)」,取
目標字串末兩碼,先把有問題的抓出來再說,可是隨即發現,在「E6」這個
儲存格,竟然顯示空白,通常會出現這種靈異現象,是因為目標字串由於不
知名原因(有時候是系統導出來就是這樣),末兩碼真的就是空格。我們可以
簡單做個實驗,再下個函數公式:「=LEN(B6)」,意思是傳回文字字串中的
字元數,結果是「9」,但是「O178E*Q」怎麼數都是只有七位數,這就表示
,後面還有兩碼是空格,看不見。
三、雖然看不見,但是摸得到,把滑鼠點在「B6」儲存格,發現指標停在字
串後面兩格,往左移動指標,便可摸到這兩個空格。
四、確認問題點,那就好辦了,在E欄弄個公式:「=TRIM(B6)」。
五、接下來理所當然:「RIGHT(E6,2)」,有星字號的會出現在第一碼,如圖
片上標黃色所示,或者不囉嗦一次到位:「
=MID(TRIM(B6),LEN(TRIM(B6))-1,1)」,很漂亮地把星字號都揪出來。
六、講這麼多,純粹是我遇到這個案例的個人解題思路,如果只是要把帶有
星字號的儲存格找出來,最直接的公式:「=FIND("*",B6)」。然後如果是將
星字號以客戶首碼替代,一次到位不囉嗦但是很噁心的公式如下:「
=IFERROR(REPLACE(B6,FIND("*",B6),1,LEFT(A6,1)),B6)」,結果如圖所示

七、如果有遇到會計Excel高高手傳來的文件,發現裡面公式寫的劈哩叭啦,
可以把滑鼠移動公式列,看是對哪一個函數想要進一步瞭解,只要點一下公
式列左邊的「fx」便會跳出函數說明的視窗,非常便於理解,有興趣點看看
吧!
延伸閱讀(存貨編碼):
Excel如何整理存貨異動明細:
http://www.b88104069.com/archives/3674
Excel如何多層次存貨料號分類:
http://www.b88104069.com/archives/1750
Excel如何存貨料號編碼原則轉換:
http://www.b88104069.com/archives/482
作者: soyoso (我是耀宗)   2016-01-18 07:27:00
原po舉的例子取代上只需用substitute配合lefthttp://imgur.com/WQVhnku 無需以find來找及iferror來排除錯誤
作者: moodyblue   2016-01-18 21:53:00
是的,忘了sub這個函數了,謝謝指教!

Links booklink

Contact Us: admin [ a t ] ucptt.com