Page 1 of 2

รบกวนอาจารย์ช่วยหน่อยครับ

Posted: Fri Sep 16, 2011 2:34 pm
by bank9597
:) อาจารย์ครับ ผมอยากจะขอสูตรการ Mach (ไม่แน่ใจว่าใช่ไหม)

โจทย์คือ ผมมีฟอร์มสั่งซื้อ (Order) กับฟอร์มรับสินค้าเข้า (In) โดยผมได้บันทึกการสั่งซื้อไปแล้ว เมื่อมีสินค้ามาส่ง
ผมก็คีย์ข้อมูลลงไปในฟอร์ม (In) ทีนี้ผมจะทำอย่างไรให้มีการแสดงสถานะของสินค้าในฟอร์มสั่งซื้อ (Order) (สำหรับสินค้าตัวที่ส่งแล้ว ให้ขึ้นสถานะว่า "ส่งแล้ว")

รบกวนอาจารย์ช่วยดูให้หน่อยน่ะครับ
Test.xlsx

Re: รบกวนอาจารย์ช่วยหน่อยครับ

Posted: Fri Sep 16, 2011 2:47 pm
by snasui
:D เงื่อนไขคือดูว่าเป็นชื่อสินค้าเดียวกันหรือว่ามีเงื่อนไขอื่นใดเพิ่มเติมอีกหรือไม่ครับ

Re: รบกวนอาจารย์ช่วยหน่อยครับ

Posted: Fri Sep 16, 2011 2:58 pm
by bank9597
ครับอาจารย์ ให้ดูว่าเป็นสินค้าตัวเดียวกัน จำนวนสั่งซื้อเดียวกัน ครับ

Re: รบกวนอาจารย์ช่วยหน่อยครับ

Posted: Fri Sep 16, 2011 3:05 pm
by snasui
:D ลองตามนี้ครับ

เซลล์ E3 คีย์

=IF(SUMPRODUCT(--(C3=In!$C$3:$C$10),--(D3=In!$D$3:$D$10))>0,"ส่งแล้ว","")

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

Re: รบกวนอาจารย์ช่วยหน่อยครับ

Posted: Fri Sep 16, 2011 3:18 pm
by bank9597
ได้แล้วครับอาจารย์
อาจารย์ครับ แล้วถ้ากรณี สินค้ามาส่งแล้ว แต่ ส่งไม่ครบ เราจะทำอย่างไร รวมไปถึงการสั่งสินค้ารหัสเดียวกัน จำนวนเดียวกันซ้ำกัน 2 ครั้ง ไม่ทราบว่าสูตรจะแยกได้ไหม หรือต้องมีลำดับการทำรายการเป็นตัวกำหนดครับ

ผมคิดว่าน่าจะต้องต่อกระทู้ถามอาจารย์อีกค่อนข้างยาวเลยครับ รบกวนอาจารย์ด้วยน่ะครับ

Re: รบกวนอาจารย์ช่วยหน่อยครับ

Posted: Fri Sep 16, 2011 3:24 pm
by snasui
:D การหาค่าในลักษณะนี้จำเป็นจะต้องกำหนดรหัสกำกับขึ้นมาครับ ซึ่งรหัสนั้นจะไม่ซ้ำกัน ยกตัวอย่างเช่นมี Bar code กำกับ สินค้าเดียวกัน จำนวนเดียวกันแต่ code ต่างกัน เช่นนี้เราสามารถติดตามได้ตลอดเวลา


หรือไม่ก็ต้องกำหนดเงื่อนไขเพิ่มเข้ามาเพื่อให้ไม่เหมือนกัน เช่น ชื่อสินค้า จำนวน รหัสใบสั่งซื้อ ฯลฯ แต่การใช้เงื่อนไขจำนวนมากจะมีผลทำให้เครื่องคำนวณนานหากมีรายการจำนวนมาก

Re: รบกวนอาจารย์ช่วยหน่อยครับ

Posted: Fri Sep 16, 2011 3:33 pm
by bank9597
ครับอาจารย์
แสดงว่าผิดมาตั้งแต่ต้นเลยสิครับ เพราะว่าผมจะกำหนดสินค้าชนิดเดียวกันเป็น 1 รหัส ไม่ได้แยกรหัสละ 1 สินค้า เหมือนกับระบบทรัพย์สิน
ผมควรจะทำยังไงต่อดีครับ

Re: รบกวนอาจารย์ช่วยหน่อยครับ

Posted: Fri Sep 16, 2011 3:38 pm
by snasui
:lol: :aru: อ่านตามที่ผมตอบไปแล้วลองปรับมาเองครับว่าควรจะเป็นลักษณะใดเพื่อให้รหัสไม่ซ้ำกัน ทำเรียบร้อยแล้วก็ค่อยนำมาดูกันต่อว่าใช้ได้หรือไม่ได้ครับ

Re: รบกวนอาจารย์ช่วยหน่อยครับ

Posted: Fri Sep 16, 2011 3:43 pm
by bank9597
ได้ครับ จะลองทำเลยครับ

Re: รบกวนอาจารย์ช่วยหน่อยครับ

Posted: Fri Sep 16, 2011 6:38 pm
by bank9597
อาจารย์ครับ ผมได้เพิ่มคอลัมน์ไปอีก 1 คอลัมน์ เป็นคอลัมน์ที่ใส่ลำดับบันทึกการสั่งซื้อ (1,2,3.....) ซื่งจะไม่ซ้ำกันแน่นอน
เบื้องต้นผมได้กำหนดเงื่อนไขใหม่ โดยให้เป็นลำดับการสั่งซื้อ กับ จำนวนสินค้าที่ส่ง ถ้า 2 เงื่อนไขนี้ Mach กัน สูตรก็จะแสดงสถานะ "ลงแล้ว"

แต่ที่ยากก็คือ ในกรณีการส่งสินค้าไม่ครบ ผมควรจะทำอย่างไร หากเป็นไปได้ อยากให้อาจารย์เพิ่มเติมสูตรเดิมดู โดยกำหนดเงื่อนไขเพิ่มเข้าไป เช่น ถ้าเงื่อนไขถูกต้องทั้ง 2 ตำแหน่งให้ขึ้นสถานะว่า "ลงแล้ว" แต่ถ้าจำนวนสินค้าไม่ถูกต้อง ให้ขึ้นสถานะ "ค้างส่ง" ไม่รู้จะทำได้ไหมน่ะ (หากทำไม่ได้ ผมขอโทษอาจารย์ด้วยครับ อิอิ)

Re: รบกวนอาจารย์ช่วยหน่อยครับ

Posted: Fri Sep 16, 2011 6:47 pm
by snasui
bank9597 wrote:ในกรณีการส่งสินค้าไม่ครบ ผมควรจะทำอย่างไร
:D กรณี รหัส PO เดียวกันก็ต้องแยกเป็น Sub PO ครับ ถ้าแยกเป็น 3 ชุดก็แยกเป็น Sub PO อีก ตัว

เช่น

รหัส PO|Sub PO
===========
101|101-01
101|101-02
101|101-03

:aru: เส้น | หมายถึงเส้นแบ่งคอลัมน์ ลองปรับมาอีกรอบครับ จะได้เขียนสูตรทีเดียว

Re: รบกวนอาจารย์ช่วยหน่อยครับ

Posted: Fri Sep 16, 2011 8:09 pm
by bank9597
เข้าใจที่อาจารย์บอกแล้วครับ

แต่ทีนี้ถ้าผม เปลี่ยนจากรหัส PO มาเป็นลำดับแทนละครับ (คือผมไม่ยึด PO โดยจะเอารายการใน PO มาบันทึกเป็นรายตัวเลยคับ) ไม่ทราบว่าอย่างนี้จะได้ไหมครับ
Test.xlsx

Re: รบกวนอาจารย์ช่วยหน่อยครับ

Posted: Fri Sep 16, 2011 8:23 pm
by snasui
:D ลองตามนี้ครับ

ปรับสูตรที่เซลล์ F3 เป็น

=IF(SUMPRODUCT(--(A3=In!$A$3:$A$40),--(C3=In!$C$3:$C$40),--(D3=In!$D$3:$D$40),--(E3=In!$E$3:$E$40))>0,"ส่งแล้ว","")

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

Re: รบกวนอาจารย์ช่วยหน่อยครับ

Posted: Fri Sep 16, 2011 8:34 pm
by bank9597
:D อิอิ อาจารย์อ้างอิง 4 ตำแหน่งเลย อุปสรรคแรกผ่านไปแล้วครับ

อุปสรรคที่ 2 คือ ถ้ามีการส่งสินค้าไม่ครบ เราควรทำอย่างไรต่อครับ

อยากอาจารย์ให้แนวคิดคับ

Re: รบกวนอาจารย์ช่วยหน่อยครับ

Posted: Fri Sep 16, 2011 8:40 pm
by snasui
bank9597 wrote:อุปสรรคที่ 2 คือ ถ้ามีการส่งสินค้าไม่ครบ เราควรทำอย่างไรต่อครับ

อยากอาจารย์ให้แนวคิดคับ
ช่วยอธิบายความหมายของคำว่าส่งสินค้าไม่ครบให้เข้าใจอีกสักครั้งครับ เนื่องจากผมพยายามให้แตก Sub PO ออกมาแล้วตามนี้
snasui wrote:bank9597 เขียน:
ในกรณีการส่งสินค้าไม่ครบ ผมควรจะทำอย่างไร
กรณี รหัส PO เดียวกันก็ต้องแยกเป็น Sub PO ครับ ถ้าแยกเป็น 3 ชุดก็แยกเป็น Sub PO อีก 3 ตัว
เพื่อจะบอกว่าใน PO นั้นมีสินค้าเท่าไร เมื่อแยกกันส่งก็เลยต้องแตกเป็น Sub PO หากซับซ้อนกว่านั้น ใน Sub PO ก็ยังส่งไม่ครบอีก ก็ต้องแตกเป็น Sub of Sub PO ครับ เพื่อให้เป็น Unique Record ให้ได้ และเมื่อเป็นเช่นนี้จึงไม่ควรจะมีปัญหาเรื่องการส่งไม่ครบครับ

Re: รบกวนอาจารย์ช่วยหน่อยครับ

Posted: Fri Sep 16, 2011 8:48 pm
by bank9597
ขอโทษอาจารย์ด้วยน่ะครับ ถ้าผมไม่เข้าใจ

คือว่าสินค้าบางรายการเมื่อสั่งซื้อไปแล้ว สินค้าจะทยอยส่งเรื่อยๆ จนครบจำนวนที่สั่งซื้อครับ ผมเลยต้องมีสถานะ "ค้างส่ง" ด้วยครับ

ผมไม่รู้ว่าจะซับซ้อนมากไปไหม เพราะผมก็งงไม่ใช่น้อยเหมือนกัน อิอิ

Re: รบกวนอาจารย์ช่วยหน่อยครับ

Posted: Fri Sep 16, 2011 9:27 pm
by snasui
:D ผมแยกคอลัมน์เป็น ส่งแล้วกับค้างส่ง ลองดูตามไฟล์แนบว่าใช่ที่ต้องการหรือเปล่าครับ

Re: รบกวนอาจารย์ช่วยหน่อยครับ

Posted: Fri Sep 16, 2011 9:39 pm
by bank9597
:D ไม่รู้จะขอบคุณยังไง กับที่อาจารย์ช่วยแนะนำให้ แก้ไขได้ตรงจุด หมดปัญหาแล้วครับ

ผมขอบคุณอาจารย์มากๆครับ

Re: รบกวนอาจารย์ช่วยหน่อยครับ

Posted: Fri Sep 16, 2011 10:23 pm
by bank9597
อีกนิดครับอาจารย์ :D (จากไฟฟล์ที่อาจารย์แนบมาให้) ผมได้เพิ่มชีทชื่อ "รอจัดส่ง" ไปอีกหนึ่งชีท เพื่อจะคัดแต่สินค้าที่รอการจัดส่ง (หรือสินค้าที่มีค่ามากกว่า 0 นั่นเอง) ผมจะใส่สูตรในชีท "รอจัดส่ง" ช่อง A2 คีย์ =COUNTIF(Order!G3:G3000,">0") ในช่อง B2 คีย์ =IF(ROWS($B$2:B2)>$A$2,"",INDEX(Order!$B$2:$B$100,SMALL(IF(Order!$G$2:$G$100=">0",ROW(Order!$B$2:$B$100)-ROW(Order!$G$2)+1),ROWS($B$2:B2))))
แต่ก็ยังไม่แสดงผล ผมต้องใส่เงื่อนไขอย่างไรคับ

Re: รบกวนอาจารย์ช่วยหน่อยครับ

Posted: Fri Sep 16, 2011 11:07 pm
by bank9597
ลืมถาม! อาจารย์ครับสูตรนี้ =IF(ROWS($B$2:B2)>$A$2,"",INDEX(Order!$B$2:$B$100,SMALL(IF(Order!$G$2:$G$100=">0",ROW(Order!$B$2:$B$100)-ROW(Order!$G$2)+1),ROWS($B$2:B2))))

ที่ผมทำสีคอลัมน์ในสูตรไว้ คือผมอยากรู้ว่า เราจำเป็นไหมที่ต้องทำให้ชื่อคอลัมน์เหมือนกันทุกครั้งที่เปลี่ยนคอลัมน์

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