Page 1 of 1

การตัด Stock สินค้าให้อ้างอิงเลขที่สั่งซื้อตามลำดับก่อนหลัง

Posted: Thu Feb 04, 2021 4:54 pm
by pro602
เป็นข้อมูลของการตัด Stock สินค้าแต่ล่ะรายการ
สิ่งที่ต้องการนำมาแสดงผลที่ Sheet Output คือ เลขที่ Invoice ที่มีการดึงสินค้ามาใช้ในแต่ละรายการของแต่ล่ะครั้งโดยให้ตัด Stock สินค้าตามลำดับก่อนหลังเพื่อต้องการทราบข้อมูลการนำสินค้ามาใช้ว่าเอามาจากเชขที่ Invoice อะไร
ตาม File แนบมาผมจะต้องใช้สูตรอย่างไรครับเพื่อให้เลขที่ Invoice มาแสดงตามตัวอย่างช่วยแนะนำผมหน่อยครับ

Re: การตัด Stock สินค้าให้อ้างอิงเลขที่สั่งซื้อตามลำดับก่อนหลัง

Posted: Sat Feb 06, 2021 1:54 am
by Bo_ry
สูตร Microsoft 365

=LET(des,input!$E$3:$E$29,p,D3,q,FILTER(input!$F$3:$F$29,des=p),s,SEQUENCE(ROWS(q)),m,MMULT(--(s>TRANSPOSE(s)),q),c,SUMIFS(E$2:E2,D$2:D2,p),in,FILTER(input!$C$3:$C$29,des=p),d,MATCH(c+E3*{0,1},m),TEXTJOIN("/",,FILTER(in,(s>=INDEX(d,1))*(s<=INDEX(d,2)))))


Version ต่ำกว่านี้ต้องใช้ VBA

Re: การตัด Stock สินค้าให้อ้างอิงเลขที่สั่งซื้อตามลำดับก่อนหลัง

Posted: Tue Feb 09, 2021 9:03 am
by pro602
Bo_ry wrote: Sat Feb 06, 2021 1:54 am สูตร Microsoft 365

=LET(des,input!$E$3:$E$29,p,D3,q,FILTER(input!$F$3:$F$29,des=p),s,SEQUENCE(ROWS(q)),m,MMULT(--(s>TRANSPOSE(s)),q),c,SUMIFS(E$2:E2,D$2:D2,p),in,FILTER(input!$C$3:$C$29,des=p),d,MATCH(c+E3*{0,1},m),TEXTJOIN("/",,FILTER(in,(s>=INDEX(d,1))*(s<=INDEX(d,2)))))


Version ต่ำกว่านี้ต้องใช้ VBA
ตามตัวอย่าง File ที่ทำมาให้ ผลลัพธ์ที่ได้ตามที่ต้องการเลยครับแต่ที Office ใช้ Excel.V2007 รบกวนอาจานย์พอจะแนะนำแนวทางการใช้ VBA ให้ผมหน่อยได้ไหมครับผมเริ่มต้นไม่ถูกเหมือนกันครับ

Re: การตัด Stock สินค้าให้อ้างอิงเลขที่สั่งซื้อตามลำดับก่อนหลัง

Posted: Tue Feb 09, 2021 3:13 pm
by Bo_ry
Forum rules
5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ