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
เนื่องจากสูตรในการให้ชื่อยังไม่ถูกต้องครับ แก้ให้ถูกต้องโดย
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 ครับ
ในไฟล์แนบผมปรับแก้ให้ค่อนข้างเยอะ ลองค่อย ๆ ศึกษาครับ
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
ถ้าทำ 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
ถ้าจะแนะนำก็ควรทำข้อมูลให้เป็น Database ครับจะได้นำมาใช้ง่าย ๆ หัวคอลัมน์ควรมีบรรทัดเดียวและมีหัวคอลัมน์ทุกคอลัมน์ การทำ Database นั้นไม่ควรมีสูตรอยู่ใน Database (ฐานข้อมูล)
ปกติจะมีหน้ารับข้อมูลเมื่อคีย์เสร็จแล้วถึงจะทำการบันทึก เมื่อบันทึกข้อมูลจะวิ่งลงฐานข้อมูล ลักษณะนี้ต้องอาศัย VBA ในเบื้องต้นก็ทำตามย่อหน้าแรกก่อนก็ได้ครับ ทั้งนี้เพื่อความสะดวกในการสรุปข้อมูลแบบ PivotTable ซึ่งอำนวยความสะดวกได้มาก หากจะมีสูตรอยู่ในฐานข้อมูลบ้างก็คงจะไม่เป็นไร แต่ถ้ามีสูตรอยู่มากก็ทำให้ไฟล์ช้าถึงช้ามาก ยิ่งใช้ Vlookup จำนวนมาก ๆ แล้ว จะยิ่งช้าหนักเข้าไปอีกครับ ค่อย ๆ ศึกษาไปเรื่อย ๆ ครับ
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
ค่อย ๆ ถาม-ตอบกันไปนะครับ
ควรออกแบบตารางเก็บข้อมูลตามตัวอย่างที่ผมทำไว้ตามไฟล์แนบ สามารถเพิ่มคอลัมน์อื่น ๆ ที่จำเป็นตามต้องการครับ
หัว Filed ควรมีบรรทัดเดียว และเก็บข้อมูลลงด้านล่างเรื่อย ๆ ซึ่งตัวนี้เราจะใช้สรุปข้อมูลแบบต่าง ๆ ตามต้องการ
ยอดยกมา ยอดยกไป ยอดคงเหลือไม่ต้องเก็บเข้ามาในตารางนี้ครับ ให้เก็บเฉพาะรายการรับ จ่ายออก จะรวมยอดยกมาด้วยก็ได้ แต่ยอดยกมานั้นควรจะยกมาครั้งเดียวในตอนเริ่มเก็บข้อมูลเท่านั้น ไม่ต้องทำยอดยกมาทุกปีหรือทุกงวด
เราสามารถสรุปได้ว่า ยกมา บวก ยอดรับ หัก ยอดจ่าย เป็นยอดคงเหลือเท่าไร ไม่ว่าจะด้วยสูตรหรือด้วย PivotTable ครับ สามารถสรุปได้เป็น วัน เดือน ปี หรืองวดใด ๆ ตามที่เราต้องการ
ปกติเราจะทำหน้ากากเพื่อรับข้อมูลแล้วบันทึกลงในตารางตามด้านบน ซึ่งต้องอาศัย VBA มาเป็นตัวช่วย ทั้งนี้เพราะข้อมูลจะมีเข้ามาเรื่อย ๆ หน้ากากที่ว่านี้ปกติจะมีหัวคอลัมน์เหมือนกับตารางเก็บข้อมูลครับ ให้ลองทำหน้ากากการกรอกข้อมูลมา ผมจะเขียน VBA เพื่อบันทึกข้อมูลลงฐานข้อมูล ส่วนการสรุปข้อมูลตามความต้องการนั้นค่อยทำตามมาทีหลังครับ
สำหรับ Char(255) ปกติจะหมายถึงอักขระตัวสุดท้าย การนำมาใช้กับ Lookup จะหมายถึง ให้หาเซลล์สุดท้ายในช่วงข้อมูลที่กำหนดที่พบว่าเป็นตัวอักษรครับ
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
เข้าใจถูกต้องแล้วครับ
Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน
Posted: Mon Nov 29, 2010 10:29 pm
by suka
อาจารย์คะ ขอถามที่หน้ากากเพื่อรับข้อมูลแล้วบันทึกลงในตาราง ได้ถามที่ไฟล์แนบค่ะ
รบกวนอาจารย์ช่วยแนะนำด้วยนะคะ อันไหนควรเพิ่มหรือลด ถ้าพอใช้ได้ยังไงจะได้มั่นใจทำต่อค่ะ
ขอบพระตุณมากค่ะ
Re: ได้แรงบันดาลใจจาก "เทคนิคการทำ Validation แบบสัมพันธ์กัน
Posted: Mon Nov 29, 2010 11:13 pm
by snasui
จากที่ถามมา
อาจารย์คะ หน้ากากเพื่อรับข้อมูลแล้วบันทึกลงในตาราง
จะเป็นไปได้มั้ยคะถ้าคอลัมน์ 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 ที่จะรับข้อมูลให้ด้วย ลองดูตามไฟล์แนบครับ
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
เป็นปัญหาของตัวอย่างไม่เป็นตัวแทนของข้อมูลจริงครับ
การปรับสูตรให้ตรงกับช่วงข้อมูลจริง ให้ปรับที่ผมทำสีไว้ครับ
=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
แล้วข้อมูลจริงเป็นอย่างไรครับ ทำตัวอย่างให้เหมือนที่จะใช้จริงแล้วแนบมาอีกทีครับ จะได้ดูว่าช่วงข้อมูลควรจะปรับเป็นอย่างไร
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
ต้องขออภัยล่วงหน้านะคะ ถ้าคำถามไม่สือให้เข้าใจ แต่ก็ลองส่งมาให้อาจารย์ช่วยดูให้ก่อนนะคะ