: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

การตัดจ่ายFIFO

ฟอรัมถาม-ตอบปัญหาการใช้งาน 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. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Chanon.witt
Member
Member
Posts: 33
Joined: Sun Sep 14, 2014 4:52 pm
Excel Ver: Excel 2019

การตัดจ่ายFIFO

#1

Post by Chanon.witt »

เรียน อาจารย์และพี่ๆ

ผมต้องการตัดปริมาณของสินค้าตามเงื่อนไขดังนี้

Case 1:ถ้า SO0% ให้ ค่า =0
Case 2:ถ้า SO100% ให้ดูช่อง H ว่ามีค่าไหม ถ้าไม่มีให้ใช้ตัวเลขช่อง K
Case 3:ถ้า SO100% ให้ดูช่อง H ว่ามีค่าไหม ถ้ามีให้ดู LINE_ID VS ITEM แล้วจับ H ไปหักลบ K ราย Week จน Week สุดท้ายให้เหลือจำนวน
Case 4:ถ้า SO1-99%ให้ดูช่อง H ว่ามีค่าไหม ถ้าไม่มีให้ดู LINE_ID VS ITEM แล้วจับ G ไปหักลบ K ราย Week จน Week สุดท้ายให้เหลือจำนวน
Case 5:ถ้า SO1-99%ให้ดูช่อง H ว่ามีค่าไหม ถ้ามีให้ดู LINE_ID VS ITEM แล้วจับ ช่อง G+H ไปหักลบ K ราย Week จน Week สุดท้าย

โดยผมมีคำตอบและตัวอย่างในไพล์ที่แนบมาแล้ว


ผมลองทำดูในช่อง S7 ทำได้ตามนี้ ติดตรง ??? ผมทำต่อไม่ได้ครับ
IF(L7="SO0%",0,
IF(AND(L7="SO100%",ISBLANK(H7)),K7
IF(AND(L7="SO100%",H7<>0),???
IF(AND(L7="SO1-99%",ISBLANK(H7)),???
IF(AND(L7="SO1-99%",H7<>0),???
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30744
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การตัดจ่ายFIFO

#2

Post by snasui »

:D ช่วยอ้างอิงให้เป็นตำแหน่งคอลัมน์ ตำแหน่งเซลล์ การอ้างเป็นค่าในเซลล์จะใช้เวลาในการค้นหาข้อมูล ยกตัวอย่างเช่นคำว่า LINE_ID VS ITEM ที่กล่าวมา ไม่ทราบว่าอยู่ในคอลัมน์ใดของไฟล์ที่แนบมา ทั้งการหักลบราย Week ที่กล่าวถึง มีวิธีการหนักลบอย่างไร ลองเขียนอธิบายมาใหม่อีกรอบครับ
Chanon.witt
Member
Member
Posts: 33
Joined: Sun Sep 14, 2014 4:52 pm
Excel Ver: Excel 2019

Re: การตัดจ่ายFIFO

#3

Post by Chanon.witt »

ขออธิบายเพิ่มเติม
เช่น
Case 3:ถ้า คอลัมน์ L มีค่าเป็น SO100% ให้ดูคอลัมน์ H ว่ามีค่าไหม ถ้ามีให้ดู LINE_ID VS ITEM (คอลัมน์ B และ C ตามลำดับ) แล้วนำจำนวนในคอลัมน์ H ไปหักลบกับจำนวนในคอลัมน์ K ราย Week จน Week สุดท้ายให้เหลือจำนวน

N9 = 0 เพราะ L9 = SO100% ,H9 = 9000 (แสดงว่ามีค่า) ,ให้หาคอลัมน์B:B ที่เหมือนกับ B9 และ คอลัมน์ C:C ที่เหมือนกับ C9 ซึ่งจะช่วงอยู่ระหว่าง Row 9:12 (Week ที่ 25 ,26 ,27 ,28) โดยนำคอลัมน์ H9 = 9000 มาลบกับ คอลัมน์ K ที่อยู่ในช่วง Row 9:12 ซึ่ง K9 = 2500 เมื่อ 2500 - 9000 = -6500 ค่าติดลบหรือไม่เหลือสินค้าใน Week นี้ N9=0

N10= 0 เพราะ L10 = SO100% ,H10 = 9000 (แสดงว่ามีค่า) ,ให้หาคอลัมน์B:B ที่เหมือนกับ B10 และ คอลัมน์ C:C ที่เหมือนกับ C10 ซึ่งจะช่วงอยู่ระหว่าง Row 9:12 (Week ที่ 25 ,26 ,27 ,28) โดยนำค่าที่เหลืออยู่จากการลบของK9-H9= 6500 มาลบกับ คอลัมน์ K ที่อยู่ในช่วง Row 9:12 ซึ่ง K10 = 2500 เมื่อ 2500 - 6500 = -4000 ค่าติดลบหรือไม่เหลือสินค้าใน Week นี้ N10=0

N11= 0 เพราะ L11 = SO100% ,H11 = 9000 (แสดงว่ามีค่า) ,ให้หาคอลัมน์B:B ที่เหมือนกับ B11 และ คอลัมน์ C:C ที่เหมือนกับ C11 ซึ่งจะช่วงอยู่ระหว่าง Row 9:12 (Week ที่ 25 ,26 ,27 ,28) โดยนำค่าที่เหลืออยู่จากการลบของH10-K10= 4000 มาลบกับ คอลัมน์ K ที่อยู่ในช่วง Row 9:12 ซึ่ง K11 = 2500 เมื่อ 2500 - 4000 = -1500 ค่าติดลบหรือไม่เหลือสินค้าใน Week นี้ N11=0

N12= 0 เพราะ L12 = SO100% ,H12 = 9000 (แสดงว่ามีค่า) ,ให้หาคอลัมน์B:B ที่เหมือนกับ B12 และ คอลัมน์ C:C ที่เหมือนกับ C12 ซึ่งจะช่วงอยู่ระหว่าง Row 9:12 (Week ที่ 25 ,26 ,27 ,28) โดยนำค่าที่เหลืออยู่จากการลบของH11-K11= 1500 มาลบกับ คอลัมน์ K ที่อยู่ในช่วง Row 9:12 ซึ่ง K11 = 2500 เมื่อ 2500 - 1500 = 1000 เป็นค่าบวกหรือแสดงว่ามีสินค้าเหลือใน Week นี้ N12= 1000
User avatar
snasui
Site Admin
Site Admin
Posts: 30744
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การตัดจ่ายFIFO

#4

Post by snasui »

:D ตัวอย่างสูตรที่ N2 คีย์ตามด้านล่างครับ

=IF(L2="SO0%",0,IF(AND(L2="SO100%",H2=0),K2,IF(AND(L2="SO100%",H2<>0),MAX(0,SUMIF(B$2:B2,B2,K$2:K2)-H2),IF(AND(L2="SO1-99%",G2=0),MAX(0,SUMIF(B$2:B2,B2,K$2:K2)-G2),MAX(0,SUMIF(B$2:B2,B2,K$2:K2)-(G2+H2))))))

Enter > Copy ลงด้านล่าง

ตัวอย่างการอธิบายเงื่อนไขควรจะเป็นดังด้านล่างครับ

Case 1: L2 = SO0% ใช่หรือไม่ ถ้าใช่ ให้ N2 = 0 ถ้าไม่ใช่ ให้ทำตาม Case 2
Case 2: L2 = SO100% และ H2 ไม่มีค่า ใช่หรือไม่ ถ้าใช่ ให้ N2 = K2 ถ้าไม่ใช่ ให้รวมยอดคอลัมน์ K ตาม LINE_ID ใน B2 ลบด้วย H2
Case 3: L2 = SO1-99% และ H2 ไม่มีค่า ใช่หรือไม่ ถ้าใช่ ให้รวมยอดในคอลัมน์ K ตาม LINE_ID ใน B2 แล้วลบด้วย G2 ถ้าไม่ใช่ ให้รวมยอด คอลัมน์ K ตาม LINE_ID ใน B2 แล้วลบด้วย G2+H2
Chanon.witt
Member
Member
Posts: 33
Joined: Sun Sep 14, 2014 4:52 pm
Excel Ver: Excel 2019

Re: การตัดจ่ายFIFO

#5

Post by Chanon.witt »

เรียนอาจารย์ ครับผมลองทำตามแล้วสูตรที่ให้มาสามารถตอบคำถามใน Case 1 และ 2 ได้ แต่เมื่อนำไปใส่ใน Case 3,4,5 แล้วคำตอบไม่ถูกต้องครับ ตามไพล์แนบในช่องสีเหลือง
Case3,4,5.JPG
ขอบพระคุณมากครับอาจารย์ที่แนะนำการอธิบายเงื่อนไขผมจะนำไปปรับปรุงครับ
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30744
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การตัดจ่ายFIFO

#6

Post by snasui »

:D เซลล์สีเหลืองมีวิธีคิดอย่างไรช่วยเขียนวิธีคิดมาอย่างละเอียดครับ หากเป็นตามเงื่อนไขที่ผมสรุปมา คำตอบต้องเป็นไปตามนั้นครับ
Chanon.witt
Member
Member
Posts: 33
Joined: Sun Sep 14, 2014 4:52 pm
Excel Ver: Excel 2019

Re: การตัดจ่ายFIFO

#7

Post by Chanon.witt »

เรียน อาจารย์ ขออธิบายเพิ่มเติม เซลล์ที่ถูกต้องคือเซลล์ด้านขาวมือของเซลล์สีเหลืองครับ
ตัวอย่าง Case 3
- Row 5 -8
วิธีการคิด เซลล์ O5 คือ 250(จากK5) - 750(จากH5) = -500 ค่าติดลบหรือไม่เหลือสินค้าใน Week นี้ O5 = 0
วิธีการคิด เซลล์ O6 คือ 750(จากK6) - 500(จากที่เหลือมาจาก Row5 ) = 250 ค่าบวกหรือแสดงว่ามีสินค้าเหลือใน Week นี้ O6 = 250
วิธีการคิด เซลล์ O7 คือ 500(จากK7) - 0 (ตัวลบหมดทั้งแต่ Row6) = 500 ค่าบวกหรือแสดงว่ามีสินค้าเหลือใน Week นี้ O7 = 500
วิธีการคิด เซลล์ O8 คือ 500(จากK8) - 0 (ตัวลบหมดทั้งแต่ Row6) = 500 ค่าบวกหรือแสดงว่ามีสินค้าเหลือใน Week นี้ O8 = 500

ตัวอย่าง Case 4
- Row 13 - 15
วิธีการคิด เซลล์ O13 คือ 1000(จากK13) - 1000(จากG13) = 0 ค่าเป็นศูนย์หรือไม่เหลือสินค้าใน Week นี้ O13 = 0
วิธีการคิด เซลล์ O14 คือ 2000(จากK14) - 0 (ตัวลบหมดทั้งแต่ Row13) = 2000 ค่าบวกหรือแสดงว่ามีสินค้าเหลือใน Week นี้ O14 = 2000
วิธีการคิด เซลล์ O15 คือ 1000(จากK15) - 0 (ตัวลบหมดทั้งแต่ Row13) = 1000 ค่าบวกหรือแสดงว่ามีสินค้าเหลือใน Week นี้ O15 = 1000

ตัวอย่าง Case 5
- Row 25 - 28
วิธีการคิด เซลล์ O25 คือ 8000(จากK25) - 14000(จากG25+H25) = -6000 ค่าติดลบหรือไม่เหลือสินค้าใน Week นี้ O25 = 0
วิธีการคิด เซลล์ O26 คือ 8000(จากK26) - 6000(จากที่เหลือมาจาก Row25)= 2000 ค่าบวกหรือแสดงว่ามีสินค้าเหลือใน Week นี้ O26 = 2000
วิธีการคิด เซลล์ O27 คือ 8000(จากK27) - 0 (ตัวลบหมดทั้งแต่ Row26) = 8000 ค่าบวกหรือแสดงว่ามีสินค้าเหลือใน Week นี้ O27 = 8000
วิธีการคิด เซลล์ O28 คือ 1000(จากK28) - 0 (ตัวลบหมดทั้งแต่ Row26) = 1000 ค่าบวกหรือแสดงว่ามีสินค้าเหลือใน Week นี้ O28 = 1000

ผมอาจจะสื่อสารไม่ถูกต้อง ขออภัยด้วยนะครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30744
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: การตัดจ่ายFIFO

#8

Post by snasui »

:D ตัวอย่างสูตรตามด้านล่างครับ
  1. เซลล์ U1:V1 คีย์ SO100%, SO1-99% ตามลำดับ
  2. เซลล์ U2 คีย์สูตร
    =IF($L2=U$1,IF($B2=$B1,MIN(0,N(U1))+$K2,$K2-$H2),0)
    Enter > Copy ลงด้านล่าง
  3. เซลล์ V2 คีย์สูตร
    =IF($L2=V$1,IF($B2=$B1,MIN(0,N(V1))+$K2,$K2-($G2+$H2)),0)
    Enter > Copy ลงด้านล่าง
  4. เซลล์ N2 คีย์สูตร
    =MAX(0,U2:V2)
    Enter > Copy ลงด้านล่าง
Chanon.witt
Member
Member
Posts: 33
Joined: Sun Sep 14, 2014 4:52 pm
Excel Ver: Excel 2019

Re: การตัดจ่ายFIFO

#9

Post by Chanon.witt »

ขอบพระคุณมากครับอาจารย์มากครับ
Post Reply