Page 1 of 7

ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน"

Posted: Fri Nov 19, 2010 1:00 pm
by suka
เนื่องจากดิฉันมีปัญญามากมายกับการจัดการสต๊อกวัสถุดิบ ได้หาวิธีเขียนสูตรใน excel
มันไม่ง่ายสำหรับคนรู้น้อยแต่ความต้องสูง

โชคดีได้อ่านบทคาวมของคุณคนควนใน"เทคนิคการทำ Validation แบบสัมพันธ์กัน"
เริ่มมีความหวังโคยฝึกจากบทความ+อ่านเทคนิคในฟอร์รัมนี้ มีติดขัดขอถามนะคะ

ปัญหาที่ 1 ที่แผ่นงานบันทึก
1.1 เริ่มจาก D8 ใช้ Group เลือก Sub_Group ไม่ได้ค่ะ
1.2 คอลัมน์ J ยอดคงเหลือ อยากให้เตือนเมือคงเหลือน้อย

ปัญหาที่ 2 ที่แผ่นงานสรุปยอดรายเดือน
2.1 ม.ค ที่ยอดคงเหลือใช้ ยอดยกมา+จำนวนผลิต-จำนวนเบิก ผลแสดงตัวเลขได้
ก.พ ที่ยอดคงเหลือใช้ให้ดึงยอดจากคอลัมน์ J แผ่นงานบันทึก ผลแสดงที่สรุปยอดราสเดือนเป็น # VALUE!
ได้แนบไฟล์ตัวอย่างมาด้วยค่ะ ขอบคุณค่ะ สุ

ปล.สมาชิกใหม่ถ้ามีอะไรผิดพลาดขออภัยและขอคำแนะนำนะคะ

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Fri Nov 19, 2010 6:30 pm
by snasui
:D เนื่องจากสูตรในการให้ชื่อยังไม่ถูกต้องครับ แก้ให้ถูกต้องโดย

A. ชื่อ Group
๑. คลิกที่ D4
๒. เข้าเมนู Insert > Name > Define > เลือก Group > แก้สูตรเป็น

=OFFSET(ทะเบียนสินค้า!$B$3,0,0,COUNTA(ทะเบียนสินค้า!$B$3:$B$31)

๓. Copy D4 ลงด้านล่าง

B. ชื่อ Sub_Group
๑. คลิกที่ E4
๒. เข้าเมนู Insert > Name > Define > เลือก Group > แก้สูตรเป็น

=OFFSET(ทะเบียนสินค้า!$E$3,MATCH(บันทึก!$D4,ทะเบียนสินค้า!$D$3:$D$31,0)-1,0,COUNTIF(ทะเบียนสินค้า!$D$3:$D$31,บันทึก!$D4))

๓. Copy E4 ลงด้านล่าง

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

ในไฟล์แนบผมปรับแก้ให้ค่อนข้างเยอะ ลองค่อย ๆ ศึกษาครับ :mrgreen:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Fri Nov 19, 2010 6:38 pm
by petepoo
อาจารย์ จะทำ group กับ sub group ทำอย่างไรครับ หรือว่า ต้องเป็น excel2007

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Fri Nov 19, 2010 6:41 pm
by snasui
:D ถ้าทำ Validation ทำด้วย Version ไหนก็ได้ครับ สำหรับการทำ Validation แบบสัมพันธ์กันดูที่นี่ครับ http://snasui.blogspot.com/2010/07/validation.html ;)

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Fri Nov 19, 2010 11:37 pm
by suka
อาจารย์คะ ขอบคุณค่ะยอดเยี่ยมเลย ดิฉันขอนำไปศึกษาเผื่อจะมีความสามารถต่อยอดจัดการสต๊อกวัสถุดิบได้
เป้าหมายอยากได้โปรแกรมตัดสต๊อกวัสถุดิบ

อาจารย์ช่วยแนะนำตารางที่ควรเตรียมและสิ่งที่ต้องศึกษาให้มากเป็นพิเศษหน่อยนะคะ

ขอบพระคุณมากค่ะ

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Fri Nov 19, 2010 11:53 pm
by snasui
:D ถ้าจะแนะนำก็ควรทำข้อมูลให้เป็น Database ครับจะได้นำมาใช้ง่าย ๆ หัวคอลัมน์ควรมีบรรทัดเดียวและมีหัวคอลัมน์ทุกคอลัมน์ การทำ Database นั้นไม่ควรมีสูตรอยู่ใน Database (ฐานข้อมูล)

ปกติจะมีหน้ารับข้อมูลเมื่อคีย์เสร็จแล้วถึงจะทำการบันทึก เมื่อบันทึกข้อมูลจะวิ่งลงฐานข้อมูล ลักษณะนี้ต้องอาศัย VBA ในเบื้องต้นก็ทำตามย่อหน้าแรกก่อนก็ได้ครับ ทั้งนี้เพื่อความสะดวกในการสรุปข้อมูลแบบ PivotTable ซึ่งอำนวยความสะดวกได้มาก หากจะมีสูตรอยู่ในฐานข้อมูลบ้างก็คงจะไม่เป็นไร แต่ถ้ามีสูตรอยู่มากก็ทำให้ไฟล์ช้าถึงช้ามาก ยิ่งใช้ Vlookup จำนวนมาก ๆ แล้ว จะยิ่งช้าหนักเข้าไปอีกครับ ค่อย ๆ ศึกษาไปเรื่อย ๆ ครับ :P

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Sat Nov 20, 2010 12:08 am
by suka
ค่ะ จะขอศึกษาตามลำดับที่อาจารย์แนะนำค่ะ

ขอบพระคุณมากค่ะ

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Mon Nov 22, 2010 11:37 pm
by suka
อาจารย์คะ มาขอความช่วยเหลือค่ะ รบกวนอาจารย์ช่วยใส่สูตรให้หน่อยนะค่ะ
ได้เขียนบอกที่ไฟล์แนบค่ะ

อาจารย์คะอีกข้อค่ะ LOOKUP แล้ว>> (CHAR(255) >> หมายถึงอะไรคะ


ขอบพระคุณมากค่ะ

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Tue Nov 23, 2010 1:03 pm
by snasui
:D ค่อย ๆ ถาม-ตอบกันไปนะครับ

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

หัว Filed ควรมีบรรทัดเดียว และเก็บข้อมูลลงด้านล่างเรื่อย ๆ ซึ่งตัวนี้เราจะใช้สรุปข้อมูลแบบต่าง ๆ ตามต้องการ

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

เราสามารถสรุปได้ว่า ยกมา บวก ยอดรับ หัก ยอดจ่าย เป็นยอดคงเหลือเท่าไร ไม่ว่าจะด้วยสูตรหรือด้วย PivotTable ครับ สามารถสรุปได้เป็น วัน เดือน ปี หรืองวดใด ๆ ตามที่เราต้องการ

ปกติเราจะทำหน้ากากเพื่อรับข้อมูลแล้วบันทึกลงในตารางตามด้านบน ซึ่งต้องอาศัย VBA มาเป็นตัวช่วย ทั้งนี้เพราะข้อมูลจะมีเข้ามาเรื่อย ๆ หน้ากากที่ว่านี้ปกติจะมีหัวคอลัมน์เหมือนกับตารางเก็บข้อมูลครับ ให้ลองทำหน้ากากการกรอกข้อมูลมา ผมจะเขียน VBA เพื่อบันทึกข้อมูลลงฐานข้อมูล ส่วนการสรุปข้อมูลตามความต้องการนั้นค่อยทำตามมาทีหลังครับ

สำหรับ Char(255) ปกติจะหมายถึงอักขระตัวสุดท้าย การนำมาใช้กับ Lookup จะหมายถึง ให้หาเซลล์สุดท้ายในช่วงข้อมูลที่กำหนดที่พบว่าเป็นตัวอักษรครับ :mrgreen:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Tue Nov 23, 2010 7:02 pm
by suka
อาจารย์คะ ไม่แน่ใจว่าเข้าใจถูกมั้ย จากไฟล์แนบเราต้องทำ 2 ฐานข้อมูล
1.ฐานข้อมูลเก็บรายละเอียดสินค้า เช่น รายการสินค้า การบรรจุ ต้นทุน
2.ฐานข้อมูลเก็บความเคลื่อนไหวสินค้า คลังสินค้า ผลิต เบิก ปรับปรุง

ทำหน้ากากเพื่อรับข้อมูลแล้วบันทึกลงในตารางตาม ถ้าเป็นต้นทุนจะบันทึกที่ ฐานข้อมูล 1 ถ้าการผลิตจะบันทึกที่ ฐานข้อมูล 2

ขอบพระคุณมากค่ะ

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Tue Nov 23, 2010 7:15 pm
by snasui
:D เข้าใจถูกต้องแล้วครับ :mrgreen:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Mon Nov 29, 2010 10:29 pm
by suka
อาจารย์คะ ขอถามที่หน้ากากเพื่อรับข้อมูลแล้วบันทึกลงในตาราง ได้ถามที่ไฟล์แนบค่ะ

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

ขอบพระตุณมากค่ะ

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Mon Nov 29, 2010 11:13 pm
by snasui
:D จากที่ถามมา
อาจารย์คะ หน้ากากเพื่อรับข้อมูลแล้วบันทึกลงในตาราง
จะเป็นไปได้มั้ยคะถ้าคอลัมน์ G เลือก ลัง ให้คูณจำนวนตามรายการที่ pack
ถ้าคอลัมน์ G เลือก กล่อง ให้คูณจำนวนตามรายการที่ ubpack
ลองตามนี้ครับ

ที่ชีท Enterthedata เซลล์ H4 คีย์

=IF(G4<>"",INDEX(INDEX(Products!$D$2:$E$15,0,MATCH(G4,{"ลัง","กล่อง"},0)),MATCH(E4,Product_Name,0)),"")

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

ผมเขียน Code สำหรับบันทึกรายการให้แล้วพร้อมทั้งทำตัวอย่างชีท Database ที่จะรับข้อมูลให้ด้วย ลองดูตามไฟล์แนบครับ :mrgreen:

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Tue Nov 30, 2010 9:12 am
by suka
อาจารย์คะ มาขอรับไฟล์ตัวอย่างไปศึกษาดูก่อนนะคะ

ขอบพระคุณมากค่ะ

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Thu Dec 02, 2010 5:31 pm
by suka
อาจารย์คะ ขอถามเพิ่มจากที่อาจารย์แนะนำค่ะ

ที่ชีท Enterthedata เซลล์ H4 คีย์

=IF(G4<>"",INDEX(INDEX(Products!$D$2:$E$15,0,MATCH(G4,{"ลัง","กล่อง"},0)),MATCH(E4,Product_Name,0)),"")

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

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

ขอบพระตุณมากค่ะ

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Thu Dec 02, 2010 5:51 pm
by snasui
:D เป็นปัญหาของตัวอย่างไม่เป็นตัวแทนของข้อมูลจริงครับ :lol:

การปรับสูตรให้ตรงกับช่วงข้อมูลจริง ให้ปรับที่ผมทำสีไว้ครับ

=IF(G4<>"",INDEX(INDEX(Products!$D$2:$E$15,0,MATCH(G4,{"ลัง","กล่อง"},0)),MATCH(E4,Product_Name,0)),"")

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Thu Dec 02, 2010 7:42 pm
by suka
อาจารย์คะ ยากจังพยายามแล้วไม่ได้ค่ะ

=IF(G8<>"",INDEX(INDEX(Products!$D$2:$F$15,0,MATCH(G8,{"ลัง","กล่อง","ตัว","กุรุส","โหล","ชุด","กิโล"},0)),MATCH(E5,Product_Name,0)),"")

ที่ (Products!$D$2:$E$15,ไม่ทราบว่าจะปรับอย่างไร อาจารย์แนะนำหน่อยนะคะ

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Thu Dec 02, 2010 7:46 pm
by snasui
:D แล้วข้อมูลจริงเป็นอย่างไรครับ ทำตัวอย่างให้เหมือนที่จะใช้จริงแล้วแนบมาอีกทีครับ จะได้ดูว่าช่วงข้อมูลควรจะปรับเป็นอย่างไร :)

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Thu Dec 02, 2010 7:53 pm
by suka
ค่ะไว้ทำตัวอย่างเรียบร้อยแล้ว จะส่งมาให้อาจารย์ช่วยปรับให้นะคะ

ขอบคุณค่ะ

Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน

Posted: Thu Dec 09, 2010 4:00 pm
by suka
อาจารย์คะ ยังทำตัวอย่างให้เหมือนที่จะใช้จริงยังไม่เสร็จสมบูรณ์ มาขอคำแนะนำเพิ่มค่ะ

ที่ชีท Enterthedata
1.Company Name คอลัมน์ E2 เลือกชื่อร้านค้าแล้วที่คอลัมน์ E1 ให้แสดงรหัสของร้านนั้น
2. คอลัมน์ B เลือก Group แล้วที่คอลัมน์ E มีกลุ่มสินค้าให้เลือก ที่คอลัมน์ C จะแสดงรหัสสินค้านั้น
เกิดไปไม่ถูกค่ะถ้าเลือก Grou จจ ที่ Drop Down List ต้องมี 3 รายการให้เลือก แต่ตัวอย่างมีแค่ 2 รายการค่ะ
3.ที่ชีท Products มีคำถามว่าจำนวนบรรจุลังละ 20 กล่อง ๆ ละ200 ตัว เราต้องทำรายละเอียดสินค้าอย่างไร ให้ง่ายต่อการเขียน Code คะ
4.ได้เพิ่มชีท Other เพื่อใช้ทำ Drop Down List ให้ผู้กรองข้อมูลเลือกที่ Transaction และ ที่ Unit

ต้องขออภัยล่วงหน้านะคะ ถ้าคำถามไม่สือให้เข้าใจ แต่ก็ลองส่งมาให้อาจารย์ช่วยดูให้ก่อนนะคะ