請購單拆成不同張訂單_Excel活用-018

這篇文章也是感謝同事的提問,讓我有這篇可以分享。

剛開始是真的想了一個晚上,下班後就一值在腦中測試各個函數的組合。沒想到,睡了一覺後,隔天早上就有答案啦。然怪,有人說,睡前在思考的事情,睡一覺就可以想通了,可能睡覺時的我,還在腦中解題吧。呵呵

2020-06-12更正:修正G欄/參數2的公式,藍字體標示修正。


<專業饒舌版>
單一客戶下單,將業務的請購單(PR)拆成不同張訂單(PO),並隨著不同的料件,需遞增訂單(PO)流水號。但相同的客戶、相同的料件,則是不會遞增訂單流水號。另外,下單給不同的公司別,既使是相同的客戶、相同的料件,也要遞增訂單的流水號。

好饒舌阿~ 各位看得懂小本在敘述甚麼嗎?

<正常人的白話>
簡言之,以Word做目錄來當範例,就是在文本前,會有若干頁可以總覽每個章節位置的地圖,有頁碼的那種目錄。目錄的排序概念,一定是相同性質的內容,會放在同一個大章節中,接著,再細分大章節裡的小章節。

有了前面的概念後,我們可以想像我們現在要製作一本書,這一本書就代表單一公司別,各個客戶就是每一個大章節,客戶不同料件的需求,就是大章節中的小章節。如下圖:


<原子習慣:部分目錄>

△ 題目整理:這題稍微複雜點,統整一下今天的問題。

(1) 單一客戶下的請購單,不同料件,要拆成獨立一張訂單,並加上訂單遞增的流水號。

(2) 若是相同客戶、相同料件,但是下單給內部是不同的公司別,也要拆成獨立一張訂單,並遞增流水號。

(3) 下單給相同的公司別、客戶、料件,則是不遞增流水號;流水號會呈現,和前數列相同內容的數序。

(4) 資料一定是排序過後的資料,才能進行這次的作業。

函數有3種:儲存格中的函數、條件式格式設定

儲存格中的函數 x 2
● G3:G15儲存格「=IF(AND(E10=E11,F10=F11),G10,IF(AND(B10=B11,D10=D11),G10+1,0))修正
● H2:H15儲存格「=IF(G2=0,B2&C2,B2&C2&"_"&G2)」

條件式格式設定 x 1
● B2:H15儲存格「=IF($F2<>$F3,TRUE,FALSE)」

一、前置作業:設定絕對值(參數&參數1)

● (上圖/參數) 將「客戶」、「原廠」合併成一組絕對值。
E2儲存格,設定「B2&C2」。

● (下圖/參數1) 將「料號」、「客戶」、「原廠」、「自家公司別」合併成一組絕對值。
F2儲存格,設定「A2&B2&C2&D2」。



● 公式向下填充:Ctrl+C(複製)E2:F2儲存格 >> Shift+向下鍵(反白經過的儲存格)至E15:F15 >>Enter(貼上)
參考「2019/04/09 Excel函數-004_& , “”-(類)相容

二、設定訂單遞增的流水號基數 (參數2)



● 需要一個基數,當作後續流水號遞增的基底。
G2儲存格,直接輸入一個「0」。

● 利用 參數、參數1 的值,判斷是否與下列的資料相同;若是相同,保持與前列相同的流水號,若是不同,且B2不等於B3的內容時,則是將前列的流水號「+1」遞增。
G3儲存格「=IF(AND(E10=E11,F10=F11),G10,IF(AND(B10=B11,D10=D11),G10+1,0))修正
參考「2019/04/25 Excel函數-011_if-邏輯
參考「2019/08/18 Excel 函數-012_and-邏輯

● 公式向下填充:Ctrl+C(複製)G3儲存格 >> Shift+向下鍵(反白經過的儲存格)至G15 >>Enter(貼上)

三、設定PR流水號 (結果)

● 當「參數2」為「0」時,合併「客戶」、「原廠」;反之,合併「客戶」、「原廠」並加上下底線「_」、「參數2」。
H2儲存格「=IF(G2=0,B2&C2,B2&C2&"_"&G2)」




● 公式向下填充:Ctrl+C(複製)H3儲存格 >> Shift+向下鍵(反白經過的儲存格)至H15 >>Enter(貼上)

四、條件式格式設定

● 用途:不同的PR單,加入紅底線劃分。方便辨識用,可加,也可不加。
🡺 選取F2儲存格 >>「常用」 >>「條件式格式設定」 >>「管理規則」



🡺 「新增規則」 >>「使共公式來決定要格式化哪些儲存格」 >>下公式「=IF($F2<>$F3,TRUE,FALSE)」 >>「格式」



🡺 「外框」 >>選線條樣式、色彩、框線 >>「確定」 >>「確定」



🡺 選取F4儲存格 >>點選「常用/複製格式」 >>選取A2:H15儲存格



這樣就完成啦~~ 成品截圖在本文的第一張圖片

KNB BLOG / KOMOTONEKOBOX / KNB BLOG / KOMOTONEKOBOX / KNB BLOG / KOMOTONEKOBOX / KNB BLOG /

KNB碎碎唸:
其實我們可以不用加「參數」、「參數1」,這些參數可以直接加在G欄、H欄的公式中,但KNB不建議這樣操作,一般公式加太多層後,後續如果公式有問題,再回頭去看,會看得霧煞煞,除非你本人真的對這組公式滾瓜爛熟,當然你想怎麼處理這些參數都OK。
個人喜歡留著參數,反正Excel可以把儲存格隱藏起來,留著給以後的自己參考,也算是替自己留下筆記。

Excel公式只要概念正確,往往都不需要使用太複雜的公式就能寫得出來。

寫這篇文章寫到這裡,突然想到一件事情,和各位分享一下。
像KNB自己其實數學邏輯不太好,每次做邏輯測驗都是不及格的那種人,但不知道為什麼每次寫Excel公式往往都能寫的成功,學會新的公式也非常快。所以,強烈的懷疑,Excel這種東西,不一定要數學邏輯非常好的人才能學,任何人,只要有心都能學會Excel公式。

延伸閱讀:
1. 2019/04/09 Excel函數-004_& , “”-(類)相容
2. 2019/04/25 Excel函數-011_if-邏輯
3. 2019/08/18 Excel 函數-012_and-邏輯

留言