:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser
🪷 คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ

รบกวนถามสูตรเกี่ยวกับ planning หน่อยนะครับ

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
irResiSt
Member
Member
Posts: 5
Joined: Sat Apr 09, 2011 1:32 pm

รบกวนถามสูตรเกี่ยวกับ planning หน่อยนะครับ

#1

Post by irResiSt »

ผมขอถามเกี่ยวกับสูตรของ excel หน่อยนะครับ
คือผมจะทำไฟล์ excel เพื่อช่วยแผนก planning จำลองจำนวน part ที่จะต้องซื้อและผลิตที่ความต้องการต่าง ๆ เช่น
ผมแตก BOM(Bill of Material) ของ part ตัวหนึ่งออกมา ซึ่งpartตัวนี้ประกอบไปด้วย part ย่อย ๆ อีกประมาณพันกว่าตัว -_-! ตัวอย่างตามไฟล์ที่แนบครับ

ผมขออธิบายตารางนะครับ

* level คือระดับขั้นของวัตถุดิบเช่น level .1 คือfinal part เกิดจากการประกอบ part level ..2 ทั้งหมดเข้าด้วยกัน นอกจะนี้จะเห็นว่าpart level ..2 บางตัวจะมี part level ...3 อยู่ข้างล่างหมายความว่าเราต้องใช้ part level...3 มาประกอบเป็น part level ..2, part level ....4 ก็จะใช้ประกอบเพื่อทำเป็น part level ...3

ปัญหาคือ ผมต้องเขียนสูตรเพื่อคำนวณปริมาณของวัตถุดิบที่จะต้องใช้ตามความต้องการที่เปลี่ยนไป เช่น ถ้าเราต้องการผลิต Final part อีก 100 ตัว
* เราต้องซื้อ part A อีก 130 ตัว(100-20+50) (เพราะมี stock อยู่แล้ว 20 ตัวและใช้ part A ผลิต Final part อย่างละ 1 ตัวและต้องการเก็บไว้เป็น spare อีก 50ตัว)
* part B เราต้องผลิต part B เพิ่มอีก 46 ตัว(100-54)
* แต่ part B เกิดจากการนำ part B1 มาประกอบดังนั้นเราต้องสร้าง part B1 ให้พอกับความต้องการที่จะสร้าง part B นั่นก็คือ 34 ตัว(46-12) (เพราะความต้องการที่จะใช้ของ part B ต้องการเพิ่มแค่ 46 ตัว และเรามีสต๊อคของ partB1 แล้ว 12 ตัว)
* แต่part B1 เกิดจากการนำ part B11 มาประกอบดังนั้นเราต้องสั่งซื้อ part B11 เพิ่มอีก 4ตัว (34-30)(เพราะความต้องการที่จะใช้ part B1เพิ่มมี 34 ตัวและเรามีสต๊อคของ part B11แล้ว 30ตัว)
* part C เราต้องผลิต part C เพิ่มอีก 65 ตัว(100-35)
* แต่ part C เกิดจากการนำ part C1,C2,C3,C4,C5 มาประกอบดังนั้นเราต้องสร้าง part C1,C2,C3,C4,C5 ให้พอกับความต้องการที่จะสร้าง part C นั่นก็คือ part C1 = 57 ตัว(65-8), C2 = 106ตัว(65-12*2เพราะใช้ 2 ตัวในการทำ part C 1 ตัว), C3 = 47ตัว(65-18), C4 = 50ตัว(65-15), C5 = 31ตัว(65-34)
* part C1 เกิดจากการนำ part C11 มาประกอบดังนั้นเราต้องสั่งซื้อ part C11 เพิ่มอีก 57ตัว (57-0)(เพราะความต้องการที่จะใช้ part C1เพิ่มมี 57 ตัวแต่เราไม่มีสต๊อคของ part C11เลย)
* part C4 เกิดจากการนำ part C41 มาประกอบดังนั้นเราต้องผลิต part C41 เพิ่มอีก 30ตัว (50-20)(เพราะความต้องการที่จะใช้ part C4เพิ่มมี 50 ตัวและเรามีสต๊อคของ part C41 20ตัว)
* part C41 เกิดจากการนำ part C411 มาประกอบดังนั้นเราต้องซื้อ part C411 เพิ่มอีก 0.61 กิโลกรัม (30*0.037-0.5)(เพราะความต้องการที่จะใช้ part C4เพิ่มมี 1.11 กิโลกรัมและเรามีสต๊อคของ part C411 0.5กิโลกรัม)

ตอนแรกผมจะลองใช้ if ธรรมดาแต่คิดว่าไม่น่าจะได้เพราะเงื่อนไขมันซับซ้อนเกินไป (เนื่องจาก part บางตัวประกอบไปด้วย part ย่อย ๆ หลายตัว และในการที่จะคำนวณ part ย่อย ๆ พวกนั้นต้องคำนวณโดยยึดเงื่อนไขของ part ที่สูงกว่า 1 level ลบด้วยจำนวนสต๊อคคงเหลือ)
ผมลองเขียน flow คร่าว ๆ แบบนี้อะครับ
- ให้ดูที่level ว่าเป็น level 1 ไหม ถ้าใช่ก็ให้เอาความต้องการที่จะผลิตเพิ่ม(demand) ลบจำนวนสต๊อคที่มี = จำนวนที่ต้องผลิตเพิ่ม
- ให้ดูที่level ว่าเป็น level 2 ไหม ถ้าใช่ให้ไปดู level 1 ว่าต้องผลิตเพิ่มเท่าไหร่ ลบด้วยจำนวนสต๊อคที่มี+จำนวนที่ต้องการสำรองไว้สำหรับ spare part
- ให้ดูที่level ว่าเป็น level 3 ไหม ถ้าใช่ให้ไปดู level 2 (ต้องระวังเพราะอาจมี level 2 หลายตัว ให้ดูที่level 2 นับขึ้นไปข้างบนตัวแรกเท่านั้น แล้วเอาจำนวนที่ต้องผลิตเพิ่มของ level 2 ลบด้วยจำนวนสต๊อคที่มีของ level 3+จำนวนที่ต้องการสำรองไว้สำหรับ spare part)
- ให้ดูที่level ว่าเป็น level 4 ไหม ถ้าใช่ให้ไปดู level 3 (ต้องระวังเพราะอาจมี level 3 หลายตัว ให้ดูที่level 3 นับขึ้นไปข้างบนตัวแรกเท่านั้นแล้วเอาจำนวนที่ต้องผลิตเพิ่มของ level 3 ลบด้วยจำนวนสต๊อคที่มีของ level 4
- บาง part อาจต้องใช้มากกว่า 1 ตัวในการผลิต part ที่ level สูงขึ้นไป(ตามจำนวนที่ระบุไว้ใน BOM)

ขอรบกวนด้วยนะครับ
ขอบคุณมากครับ
You do not have the required permissions to view the files attached to this post.
kmb
Bronze
Bronze
Posts: 305
Joined: Thu Oct 14, 2010 10:03 pm

Re: รบกวนถามสูตรเกี่ยวกับ planning หน่อยนะครับ

#2

Post by kmb »

:D ลองตามนี้ครับ

ที่เซลล์ J2 เอา merge cell ออกก่อน
ที่เซลล์ J3 ใส่ค่า 0

ที่เซลล์ J4 คีย์สูตรนี้ครับ
=IF($A4=".1",$H$2*$D4-F4+H4,IF($A4="..2",$H$2*$D4-F4+H4,IF($A4="...3",LOOKUP(LEFT($C4,LEN(TRIM($C4))-1),TRIM(C$3:C4),K$3:K4)*$D4-F4+H4,IF($A4="....4",LOOKUP(LEFT($C4,LEN(TRIM($C4))-1),TRIM(C$3:C4),K$3:K4)*$D4-F4+H4,IF($A4=".....5",LOOKUP(LEFT($C4,LEN(TRIM($C4))-1),TRIM(C$3:C4),K$3:K4)*$D4-F4+H4,0)))))
Enter > copy ลงด้านล่างได้เลยครับ

แต่ในไฟล์แนบ ผมทำตัวอย่างเพื่อให้เห็นการเปรียบเทียบ จึงใส่สูตรนี้ไว้ในคอลัมน์ K แทน

แนว คิดคือผมเช็คก่อนว่ารายการนั้น ๆ เป็น level ไหน ถ้าเป็น level ย่อยก็จะไปหาค่าของ level ก่อนหน้าโดยใช้คอลัมน์ Description ซึ่งจะมีส่วนหน้าเหมือนกันแต่เพิ่มเลขย่อยมาต่อท้าย

ส่วนเรื่องให้แสดงสัญลักษณ์ ถ้าสต๊อคมีมากกว่าจำนวนที่ต้องการผลิต ก็ใช้ Conditional Formatting ซึ่งมีขั้นตอนดังนี้
Menu "Home" > Conditional Formatting > Highlight Cells Rules
> Less Than > ช่องหน้าใส่ 0 ส่วนช่องหลัง เลือก Custom Format ... จาก Drop down list
> เลือก Format แบบที่ต้องการ ซึ่งตามไฟล์แนบผมให้ระบายสีเหลือง :mrgreen:
You do not have the required permissions to view the files attached to this post.
irResiSt
Member
Member
Posts: 5
Joined: Sat Apr 09, 2011 1:32 pm

Re: รบกวนถามสูตรเกี่ยวกับ planning หน่อยนะครับ

#3

Post by irResiSt »

ขอบคุณ คุณkmb มากครับ

พอดี description ของ part ในไฟล์แนบอันแรกเป็นชื่อที่ผมสมมุติเองเพื่อให้เข้าใจง่ายอะครับ แต่จริงๆ แล้วdescription มันไม่มีความเกี่ยวเนื่องกันเลยครับเลยใช้สูตร-1 ไม่ได้อะครับ

ผมได้เปลี่ยน description ใหม่แล้วตามไฟล์แนบนะครับ

รบกวนอีกครั้งนะครับ ^ ^
You do not have the required permissions to view the files attached to this post.
kmb
Bronze
Bronze
Posts: 305
Joined: Thu Oct 14, 2010 10:03 pm

Re: รบกวนถามสูตรเกี่ยวกับ planning หน่อยนะครับ

#4

Post by kmb »

:D ลองตามนี้ครับ เพื่อเป็นการเปรียบเทียบ ผมจึงทำตัวอย่างไว้ในคอลัมน์ K เหมือนเดิมครับ

ที่ชีต Sheet2 เซลล์ K4 ลองสูตรนี้ครับ
=IF($A4=".1",$H$2*$D4-F4+H4,IF($A4="..2",$H$2*$D4-F4+H4,IF($A4="...3",INDEX(K$3:K3,MAX(IF($A$3:A3="..2",ROW($A$3:A3)-2)))*$D4-F4+H4,IF($A4="....4",INDEX(K$3:K3,MAX(IF($A$3:A3="...3",ROW($A$3:A3)-2)))*$D4-F4+H4,IF($A4=".....5",INDEX(K$3:K3,MAX(IF($A$3:A3="....4",ROW($A$3:A3)-2)))*$D4-F4+H4,0)))))
Ctrl+Shift+Enter (เป็นสูตร Array หลังกดแล้วจะได้ { } คลุมสูตร) > copy ลงด้านล่างได้เลยครับ

ทั้งนี้ผมคิดว่าถ้ามีการแปลงค่า Level no. ให้เป็นตัวเลขจะทำให้สูตรกระชับกว่าและครอบคลุมถึงกรณีที่เกิดมี Level มากกว่า 5 ด้วย ตัวอย่างอยู่ในชีต Sheet3
=IF($A4<=2,$H$2*$D4-F4+H4,IF($A4>2,INDEX(K$3:K3,MAX(IF($A$3:A3=($A4-1),ROW($A$3:A3)-2)))*$D4-F4+H4,""))
Ctrl+Shift+Enter (เป็นสูตร Array หลังกดแล้วจะได้ { } คลุมสูตร) > copy ลงด้านล่างได้เลยครับ

ลองดูเพิ่มเติมตามไฟล์แนบครับ :mrgreen:
You do not have the required permissions to view the files attached to this post.
irResiSt
Member
Member
Posts: 5
Joined: Sat Apr 09, 2011 1:32 pm

Re: รบกวนถามสูตรเกี่ยวกับ planning หน่อยนะครับ

#5

Post by irResiSt »

เย้ ๆ ได้แล้วครับ

ผมลองเอาไปใช้กับ part จริง ๆ ของบริษัทผมซึ่งมี หนึ่งพันกว่าบรรทัดมีถึง ......7 เลเวลเลยครับ

แต่ตอนนี้ได้น่าจะโอเคแล้วครับ

ขอบคุณมากนะครับ ^ ^
irResiSt
Member
Member
Posts: 5
Joined: Sat Apr 09, 2011 1:32 pm

ขอรบกวนถามเรื่องสูตร demand simulation อีกทีครับ

#6

Post by irResiSt »

อ้างอิงจากกระทู้ http://www.snasui.com/viewtopic.php?f=3&t=925

คุณ kmb ได้ทำสูตรให้ผมแล้ว แต่อยากรบกวนขอเพิ่มอีกนิดนะครับ
คือสูตรที่คุณ kmb สร้างเราจะรู้ปริมาณของ part ที่เราต้องสร้างเพิ่มเช่นต้องการผลิต part หลัก(level .1) 100 ตัว ในสูตรก็จะบอกว่าจะต้องผลิต part ย่อย(level ..2, ...3, ...4)อีกกี่ตัว

ในกรณีที่ part ย่อยมีมากกว่า part หลัก สูตรจะแสดงค่าติดลบเช่น ต้องการผลิต part หลัก(level .1) 100 ตัว แต่ part ย่อย(level ..2) มี 130 ตัวสูตรจะแสดงค่า = -30 ถ้า part ย่อย(level ...3) มี stock = 50 ตัว สูตรจะแสดงค่า = -80 (-30+-50) ซึ่งถ้าเราจะดูแค่ว่า part ตัวไหนต้องผลิตเพิ่มก็จะดู part ที่เป็น + ทั้งหมด ส่วนที่เป็น - แสดงว่าเรามีเกินความต้องการ

ปัญหาของผมคือตอนนี้ฝ่ายวางแผนต้องการที่จะจัดการ part ที่มีเกินความต้องการ (scrap หรือขายทิ้ง)..จากสูตรเดิมเราจะไม่ทราบจำนวนที่แท้จริงของ part ที่มีเกินความต้องการ เนื่องจากสูตรจะแสดงว่าเรามีpart level..2 เกินเท่ากับ 30และ part level...3 เกินเท่ากับ 80 (ยอดรวมของ part ที่เกินจะเท่ากับ 110) ซึ่งความจริงควรจะแสดง level..2 เท่ากับ 30และlevel..3 เท่ากับ 50(เท่ากับจำนวนที่เหลืออยู่ใน stock --> ยอดรวมของ part ที่เกินเท่ากับ 80).

ขอรบกวนช่วย update สูตรให้ผมหน่อยนะครับ

ขอบคุณล่วงหน้าครับ ^ ^
You do not have the required permissions to view the files attached to this post.
User avatar
tupthai
Bronze
Bronze
Posts: 302
Joined: Sat Feb 04, 2012 2:49 pm

Re: รบกวนถามสูตรเกี่ยวกับ planning หน่อยนะครับ

#7

Post by tupthai »

ถ้าผมเข้าใจถูก ลองดูครับ
คอลัมน์ L ใส่ Level no. เป็นตัวเลขตามคำแนะนำของคุณ kmb
ที่ K4 พิมพ์สูตร
=IF($L4=1,$H$2*$D4-$F4+$H4,IF(LOOKUP(2,1/($L4-1=$L$3:$L3),$K$3:$K3)<0,-$F4,LOOKUP(2,1/($L4-1=$L$3:$L3),$K$3:$K3)*$D4-$F4+$H4))

enter>copy ลงด้านล่าง
You do not have the required permissions to view the files attached to this post.
irResiSt
Member
Member
Posts: 5
Joined: Sat Apr 09, 2011 1:32 pm

Re: รบกวนถามสูตรเกี่ยวกับ planning หน่อยนะครับ

#8

Post by irResiSt »

tupthai wrote:ถ้าผมเข้าใจถูก ลองดูครับ
คอลัมน์ L ใส่ Level no. เป็นตัวเลขตามคำแนะนำของคุณ kmb
ที่ K4 พิมพ์สูตร
=IF($L4=1,$H$2*$D4-$F4+$H4,IF(LOOKUP(2,1/($L4-1=$L$3:$L3),$K$3:$K3)<0,-$F4,LOOKUP(2,1/($L4-1=$L$3:$L3),$K$3:$K3)*$D4-$F4+$H4))

enter>copy ลงด้านล่าง
ขอบคุณมากครับ,,,
Post Reply