Page 1 of 2

รบกวนถาม เรื่องการสร้างฐานข้อมูลด้วย Excel หน่อยครับ

Posted: Wed May 02, 2012 11:55 am
by Phrut.witt
พี่ๆครับ ผมเป็นนักศึกษากำลังฝึกงานอยู่!! ตอนนี้ผมได้รับงานทำแบบตรวจตลาดอยู่ครับมีรายละเอียดดังนี้ครับ (คือต้องทำกับ Excel อย่างเดียวด้วยอ่ะครับ ต้องใช้งานในเครื่องออฟฟิต)

1 ผมสร้าง Sheet Input data ขึ้นมาอันนึงไว้กรอกข้อมูล ผมสร้างปุ่ม Clear เป็นแมโครไว้เคลียร์ข้อมูลที่กรอกไว้ กับปุ่ม save เพื่อเซฟข้อมูลไปวางใน Sheet database

2 ผมสร้าง Sheet ถัดมาเป็น All data ไว้แสดงค่าที่กรอกใน Sheet Input data

3 ผมสร้าง Sheet ถัดมาเป็น Database ผมสร้างหัวข้อแล้วกดสร้าง table แล้วกดเลือกให้มีส่วนหัวของตารางไว้ด้วย คือตอนเเรกเข้าใจว่าข้อมูลมันจะเลื่อนลงล่างทบไปเรื่อยๆ
*แต่ข้อมูลผมมี 400 ชุดครับแล้วเราจะตั้งค่าหรือมีวิธีทำยังไง เพื่อจะเก็บข้อมูลลงใน Database ถ้าพอกดปุ่มเซฟให้มันมาวางข้อมูลทบๆไปเรื่อยๆอ่ะครับ*

4 ผมสร้าง Sheet สุดท้ายเป็น Summary ไว้สรุปผล ผลรวม หาค่าเฉลี่ยของแต่ละตัว ของแต่ละกลุ่มไว้ครับ

ตอนนี้ก็มีปัญหาตรงที่การกดsaveข้อมูลให้มันลงไปทบๆกันเป็นชุดๆทั้ง400ชุดในหน้า Database ครับ ขอความช่วยเหลือด้วยครับบบบ ^O^

Re: รบกวนถาม เรื่องการสร้างฐานข้อมูลด้วย Excel หน่อยครับ

Posted: Wed May 02, 2012 12:04 pm
by bank9597
:D ทำได้ถูกทางแล้วครับ

ลองแนบมาไฟล์มาดูครับ แล้วจะช่วยดูให้อีกแรง

Re: รบกวนถาม เรื่องการสร้างฐานข้อมูลด้วย Excel หน่อยครับ

Posted: Wed May 02, 2012 1:15 pm
by Phrut.witt
ขอบคุณครับพี่ แนบไฟล์มาให้แล้วครับ ขอความช่วยเหลือด้วยครับ ซื้อหนังสือมาอ่านแล้วมันก้ยังงงๆครับ

Re: รบกวนถาม เรื่องการสร้างฐานข้อมูลด้วย Excel หน่อยครับ

Posted: Wed May 02, 2012 1:41 pm
by bank9597
:D ค่อยๆถามไปครับ

อธิบายปัญหาแรกที่ต้องการแก้มาดูครับ ว่าติดตรงไหน เพราะว่าถ้าไม่บอกให้ทราบ ผมคงไม่สามารถรู้ได้ว่าตอนนี้ติดปัญหาใดอยู่ครับ

Re: รบกวนถาม เรื่องการสร้างฐานข้อมูลด้วย Excel หน่อยครับ

Posted: Wed May 02, 2012 1:54 pm
by Phrut.witt
1 ติดตรงเรื่อง แมโครที่ปุ่ม save ครับพี่ ผมใช้วิธีการบันทึกแมโครทำครับ คือเลือกช่วงใน All data แล้วก๊อบไปวางใน Database แต่มันจะเป็นมาวางแค่ชุดเดียว

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

คือผมคิดไว้แบบนี้ หรือพี่มีวิธีที่ดีกว่ารึเปล่าครับ

2 แล้วเราจะมีวิธีการไหนที่ทำให้เราสามารถกรอกข้อมูลพร้อมๆกันหลายคนไหมครับพี่? อ่านในหนังสือเห็นมีการประกาศใน Excel services ครับ

Re: รบกวนถาม เรื่องการสร้างฐานข้อมูลด้วย Excel หน่อยครับ

Posted: Wed May 02, 2012 2:40 pm
by bank9597
:lol: จริงๆแล้ว แก้เรื่องโค๊ดให้บันทึกต่อกันนั้น ไม่ได้ยากเท่าไร แต่ที่ยากคือ การออกแบบฐานข้อมูลให้ยืดหยุ่นครับ

:D ใน ชีท Input มีการสร้้างฟอร์มได้สับสนมากครับ ควรสร้างฟอร์มสำหรับกรอกข้อมูลไว้อย่างชัดเจน

มีตารางสินค้า ที่ระบุรหัสสินค้า ชื่อสินค้า ไว้พร้อม
มีตารางสาขา ที่ระบุชื่อแตละสาขา พร้อมรหัส
เหล่านี้เป็นต้น

ลองปรับในส่วนชีท Input ใหม่ได้ไหมครับ ลดความสับสนลงมาอีก เพราะผมเข้าไปดูแล้ว ยังไม่แน่ใจ
รวมทั้งข้อมูลในชีท Database ก็มีการบันทึกไม่ต่อเนื่องกัน ซึ่งโดยหลักการแล้วควรต่อเนื่องกัน ไม่ควรเว้นหรือข้ามบรรทัด

ชีท all data ให้เปลี่ยนชื่อเป็น Temp จะดีกว่าครับ ช่วยจำว่าเป็นส่วนที่เราจัดระเบียบข้อมูลก่อนบันทึกลง Database

เดี๋ยวผมจะลองปรับรูปแบบดูครับ

Re: รบกวนถาม เรื่องการสร้างฐานข้อมูลด้วย Excel หน่อยครับ

Posted: Wed May 02, 2012 3:51 pm
by Phrut.witt
1 ในหน้าของ Input,Temp,database ที่มีส่วนที่เว้นว่างไว้นั้นคือผมคิดว่าจะได้ให้พี่ที่ออฟฟิตใช้ได้ต่อ ตอนผมฝึกงานเสร็จไปแล้วน่ะครับ เขาจะได้เพิ่มหรือตัดสินค้าออกได้เลยโดยไม่ไปยุ่งกับสูตรครับพี่! เราใช้การซ่อนได้รึเปล่าครับหรือควรเอาออกไปเลย ?

2 ในหน้า Input มันควรปรับไปในแนวทางไหนครับพี่ ผมก็ว่าผมแยกส่วนสินค้าที่มีชื่อสินค้า รหัส และราคาไว้แล้ว พร้อมกับส่วนที่จะทำการลงข้อมูลไว้ในช่อง Facing,Onshelf,location,POP,TOP แล้วนิครับ ส่วนที่เป็นผู้กรอก,ชื่อสาขา,รหัสสาขา,วันที่ อีกส่วนหนึ่งแล้วนิครับ

3 ขอ Code ที่เขียนให้กดเซฟข้อมูลมาวางในหน้า Database ต่อๆกันได้ไหมครับพี่

4 แล้วในหน้า Summary ควรใช้สูตรพวก Dcount, Daverage ที่เป็นสูตรโดยตรงของฐานข้อมูลรึเปล่าครับ?

( คือผมก็มือใหม่หัดทำ หัดใช้ตามหนังสือน่ะครับ - -" )

Re: รบกวนถาม เรื่องการสร้างฐานข้อมูลด้วย Excel หน่อยครับ

Posted: Wed May 02, 2012 3:54 pm
by Phrut.witt
5 ที่พี่บอกว่าเราควรสร้างฟอร์มที่ไว้กรอกข้อมูลอย่างชัดเจนนั้น เราต้องไปสร้างฟอร์มใน VB เลยรึเปล่าครับ ถ้าอย่างนั้นงานช้างสำหรับผมเลย T^T

Re: รบกวนถาม เรื่องการสร้างฐานข้อมูลด้วย Excel หน่อยครับ

Posted: Wed May 02, 2012 4:14 pm
by bank9597
:D ครับ งานฐานข้อมูลที่ดีก็ควรจะมีลักษณะเช่นนั้นครับ

ผมทำระบบด้วยเอ้กเซลล์ทั้งหมดด้วยเช่นกันครับ และก็ทำหลายระบบ ทำหลายครั้ง จนพอจะทราบว่าควรออกแบบมาลักษณะไหนถึงจะเหมาะกับงานนั้นๆ ทั้งนี้ขึ้นอยู่กับการฝึกครับว่ามากหรือน้อย ถ้ามากหน่อยก็จะมองเห็นปัญหาและออกแบบได้ยืดหยุ่นครับ

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

Re: รบกวนถาม เรื่องการสร้างฐานข้อมูลด้วย Excel หน่อยครับ

Posted: Wed May 02, 2012 4:23 pm
by Phrut.witt
ขอบพระคุณครับพี่ ขอนำไปศึกษาก่อนนะครับ :P

Re: รบกวนถาม เรื่องการสร้างฐานข้อมูลด้วย Excel หน่อยครับ

Posted: Wed May 02, 2012 4:55 pm
by Phrut.witt
1 ผมไม่เข้าใจตรง Prod_Temp มันมีหน้าที่ทำอะไรเหรอครับพี่?

Re: รบกวนถาม เรื่องการสร้างฐานข้อมูลด้วย Excel หน่อยครับ

Posted: Wed May 02, 2012 5:02 pm
by bank9597
:D มีหน้าที่จัดเรียงข้อมูลที่จะนำไปบันทึกลงในชีท Product ครับ

ผมย่อให้ชื่อสั้นลง เพื่อง่ายต่อการจำและเขียนโค๊ดในโอกาสต่อไป

คำว่า Prod มาจาก Product ครับ
คำว่า Temp มาจาก Template ครับ

Re: รบกวนถาม เรื่องการสร้างฐานข้อมูลด้วย Excel หน่อยครับ

Posted: Wed May 02, 2012 5:25 pm
by Phrut.witt
:D พี่ครับแล้วในหน้า Summary ที่จะคำนวณเพื่อวิเคราะห์ค่า เราควรใช้สูตรพวก Dcount, Daverage ที่เป็นสูตรโดยตรงของฐานข้อมูลรึเปล่าครับ?

Re: รบกวนถาม เรื่องการสร้างฐานข้อมูลด้วย Excel หน่อยครับ

Posted: Wed May 02, 2012 5:43 pm
by bank9597
:tt: สูตรจำพวกนั้น ผมไม่เคยได้ใช้ครับ ซึ่งจะเป็นสูตรสำเร็จรูปมาแล้ว หลักการการใช้งานนั้นก็ไม่น่าจะยากครับ ลองศึกษาดูครับ

สำหรับเรื่องสูตรนั้น สามารถสอบถามอาจารย์คนควนได้ครับ ซึ่งอาจารย์จะมีความรู้ในเรื่องนี้เป็นอย่างดี รวมถึง VBA ครับ

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

ผมยังไม่ได้ดูใน Summary ให้เลยครับ ต้องการให้แสดงข้อมูลแบบไหน ลองตั้งคำถามมาดูครับ

Re: รบกวนถาม เรื่องการสร้างฐานข้อมูลด้วย Excel หน่อยครับ

Posted: Thu May 03, 2012 8:54 am
by Phrut.witt
1 ผมก็ใช้สูตรธรรมดาๆเหมือนกันครับ แต่อ่านหนังสือแล้วเจอเลยถามดูครับผม :lol:

*** 2 ส่วนสูตรในหน้า Summary นั้นตอนเเรกก็จะรวมค่าของทั้ง Database ก่อนเป็นตัวๆไปครับ แล้วก็จะเอามาหารหาค่าเฉลี่ยออกอีกตารางหนึ่งครับ
แต่พอมาเห็นสูตรพวก Dcount, Daverage แล้วเลยอยากใช้ดูจะได้ลดขนาดและความซ้ำซ้อนไปน่ะครับ

3 ในหน้า From (Input ของผม) ถ้าจะยืนรูปแบบหน้าเดิมเพราะต้องการความรวดเร็ว ถ้าต้องมากรอกชื่อสินค้ารายตัวก่อนในจำนวนเยอะและ 400 ชุดด้วยเกรงว่าจะเสียเวลามากไปครับ แล้วถ้ายืนหน้าเดิมเราจะใช้วิธียังไงให้มันสามารถเพิ่มตัวรายการหรือลดรายการได้ไหมครับ? เพราะคนใช้เป็นแค่ User จริงๆ

ขอให้พี่ๆช่วยดูให้หน่อยนะครับ :D

Re: รบกวนถาม เรื่องการสร้างฐานข้อมูลด้วย Excel หน่อยครับ

Posted: Thu May 03, 2012 9:18 am
by bank9597
ในหน้า From (Input ของผม) ถ้าจะยืนรูปแบบหน้าเดิมเพราะต้องการความรวดเร็ว ถ้าต้องมากรอกชื่อสินค้ารายตัวก่อนในจำนวนเยอะและ 400 ชุดด้วยเกรงว่าจะเสียเวลามากไปครับ
:D แบบฟอร์มเดิมผมไม่แน่ใจว่าจะช่วยได้ไหม เพราะว่าตารางมันจะไม่อยู่ในแนวเดียวกัน ทำให้การดึงข้อมูลไปจัดรูปแบบในชีท All Data นั้นทำค่อนข้างลำบากครับ

สำหรับชีท Form ที่ผมออกแบบไปให้นั้น อาจจะช้าในส่วนที่เลือกรายการ แต่เราสามารถแก้ในส่วนนี้ได้โดยการทำ Validation คือการคีย์อักขระแล้วให้แสดงรายการที่ต้องการ เช่น คีย์คำว่า ไก่ โปรแกรมก็จะแสดงรายการที่มีคำว่า ไก่ ขึ้นมาให้เลือก
แล้วถ้ายืนหน้าเดิมเราจะใช้วิธียังไงให้มันสามารถเพิ่มตัวรายการหรือลดรายการได้ไหมครับ? เพราะคนใช้เป็นแค่ User จริงๆ
สามารถทำได้ครับ เนื่องจากผมได้สร้างฟอร์มเพิ่มรายการสินค้าไว้แล้ว คุณสามารถสร้างปุ่มเชื่อมโยงไปยังหน้านั้นได้เลยครับ

สำหรับการลดจำนวนสินค้านั้น ก็สามารถทำได้เช่นกันครับ แต่อย่างไรก็ลองเขียนโค๊ดมาก่อนครับ สามารถศึกษาได้จากกระทู้ในฟอรั่มแห่งนี้ครับ มีอยู่มากมายครับ

Re: รบกวนถาม เรื่องการสร้างฐานข้อมูลด้วย Excel หน่อยครับ

Posted: Thu May 03, 2012 9:37 am
by Phrut.witt
ใน from เดิมของผมมันจะส่งค่าจาก Temp (Alldata เดิม) ไปวางใน Database โดยเราไปจัดเรียงข้อมูลที่กรอกในหน้า Temp (Alldata เดิม) อีกทีหนึ่ง

แสดงว่าในส่วนที่เป็นค่าว่างไว้นั้นถ้าเราใช้การคำนวณแบบมีเงื่อนไข เช่น"รหัสสินค้า" พวกช่องว่างพวกนั้นจะไม่ถูกมาคำนวณใช่ไหมครับ?

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

...................." ในส่วนนี้ผมคิดถูกรึเปล่าครับ? "..............................

ถ้ายังไงรบกวนพี่อะธิบายวิธีทำ code ตรงส่วนที่ทำให้ข้อมุลมันเก็บค่าทบๆกันได้ไหมครับ ;)

Re: รบกวนถาม เรื่องการสร้างฐานข้อมูลด้วย Excel หน่อยครับ

Posted: Thu May 03, 2012 10:00 am
by Phrut.witt
คือผมเขียนโค้ดเองไม่เป็นน่ะครับพี่ กดบันทึกเป็นอย่างเดียว จากCode ที่ผมบันทึกไว้ ตามนี้

Sub Save_data()
'
' Save_data áÁâ¤Ã
'

'
Sheets("Temp").Select
Range("A2:Q196").Select
Selection.Copy
Sheets("Database").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

End Sub

ต้องเพิ่มหรือแก้ไขยังไงเหรอครับให้มันไปวางค่าทบไล่ลำดับไป ใช่ .SpecialCells(xlCellTypeConstants).ClearContents หรือเปล่าครับ?

Re: รบกวนถาม เรื่องการสร้างฐานข้อมูลด้วย Excel หน่อยครับ

Posted: Thu May 03, 2012 10:01 am
by bank9597
:lol: ก็คงจะประมาณนั้นครับ

ส่วนโค๊ด หากจะให้อธิบายส่วนไหน ควรยกมาให้ดูด้วยครับ จะไำด้อธิบายได้ถูก

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

Re: รบกวนถาม เรื่องการสร้างฐานข้อมูลด้วย Excel หน่อยครับ

Posted: Thu May 03, 2012 10:17 am
by Phrut.witt
พี่ครับคือ อยากได้code ที่ส่งค่าจาก temp ไปยัง database ให้มันทบกันไปเรื่อยๆครับผม

การทำแบบนี้ยากรึเปล่าครับ? รบกวนพี่ช่วยดูcodeให้หน่อยครับ ตอนนี้ Code เป็นแบบนี้ครับ

Sub Save_data()
'
' Save_data áÁâ¤Ã
'

'
Sheets("Temp").Select
Range("A2:Q196").Select
Selection.Copy
Sheets("Database").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

End Sub

ต้องเพิ่มตรงไหนถึงจะทำให้ข้อมูลมันทบลงไปได้ครับ :D