Page 1 of 1
การดึงข้อมูลนักเรียนจากหลายชีท
Posted: Tue Apr 24, 2012 8:54 pm
by spuangchang
เรียน อาจารย์และสมาชิกที่เคารพทุกท่าน
เพิ่งจะสมัครสมาชิกเมื่อเดือนนี้เอง หลังจากนั้นไดติดตามทุกวัน ได้ติดตามผลงานและปัญหาของสมาชิกทำให้ได้รับความรู้เป็นอย่างยิ่ง มีปัญหาจะเรียนถามถึงการดึงข้อมูลผลการเรียนของนักเรียน โดยแบ่งเป็นแผ่นงาน REPORT database 2552 2553 และ 2554 โดยในแผ่นงาน database เป็นรหัส และชื่อ สกุล ของนักเรียน 2552 2553 2554 เป็นแผ่นงานผลการเรียนของนักเรียน ความต้องการ เมื่อกรอกเลขรหัสนักเรียน ที่ a5 แล้วให้ดึงรายชื่อนักเรียนมาใส่ที่ b5 ที่ sheet report พร้อมกันนั้นให้ดึงข้อมูลจาก sheet 2552 2553 2554 ซึ่งเป็นผลการเรียนในแต่ละปีมาใส่ใน sheet report ให้ตรงกับรหัสของนักเรียนแต่ละคน เนื่องจากแต่ละปีมีนักเรียนต่างกัน
Re: การดึงข้อมูลนักเรียนจากหลายชีท
Posted: Tue Apr 24, 2012 9:23 pm
by snasui

สามารถใช้ Vlookup มาช่วยได้ครับ ศึกษา Vlookup ได้ที่
http://snasui.blogspot.com/2009/12/vlookup.html
สำหรับตามไฟล์แนบที่ชีท Report เซลล์ B6 คีย์
=VLOOKUP(A6,database!$A$2:$B$26,2,0)
Enter > Copy ลงด้านล่าง
ลองประยุกต์ดูกับเซลล์อื่น ๆ ติดตรงไหนสามารถถามมาได้เรื่อย ๆ ครับ
Re: การดึงข้อมูลนักเรียนจากหลายชีท
Posted: Tue Apr 24, 2012 10:46 pm
by spuangchang
ขอบคุณอาจารย์มากครับ ทำได้แล้วครับ แต่อยากจะสอบถามอาจารย์ว่า สมมุติเวลามีแผ่นงาน 2 sheet แผ่น a เป็นข้อมูลนักเรียน แผ่น b เป็นแบบ ปพ. ใช้สูตรเป็น vlookup ทั้ง 2 sheet ทำไมเวลา vlookup จากแผ่น b มายังแผ่น a จึงใช้ไม่ได้ครับ
Re: การดึงข้อมูลนักเรียนจากหลายชีท
Posted: Tue Apr 24, 2012 10:53 pm
by snasui

ลองแนบไฟล์ตัวอย่างมาดูครับ จะได้เห็นว่าเขียนสูตรอย่างไรและน่าจะต้องปรับเป็นอย่างไรเพื่อให้ได้คำตอบที่ต้องการครับ
Re: การดึงข้อมูลนักเรียนจากหลายชีท
Posted: Tue Apr 24, 2012 11:17 pm
by spuangchang
ขอบพระคุณอาจารย์มากครับ ผมขอเวลาเคลียไฟล์ก่อนครับเนื่องจากไฟล์ลิงค์เชื่อมโยงกันเป็นทอดๆ เดีํยวพรุ่งนี้ผมจะแนบไฟล์มาให้อาจารย์ช่วยแก้ไขครับ
Re: การดึงข้อมูลนักเรียนจากหลายชีท
Posted: Wed Apr 25, 2012 11:23 am
by spuangchang
อาจารย์ครับผมได้พบข้อผิดพลาดที่ว่าแผ่นงาน b vlookup ไปยังแผ่นงาน b ไม่ได้ เนื่องมาจาก file data student ที่ส่งมาให้อาจารย์เขียนสูตรให้นั้น พอใส่สูตรที่ b6 อย่างที่อาจารย์บอกไว้ ปรากฏว่าเซลล์ไม่เปลี่ยนแปลงใดๆ แต่ขึ้นข้อความ #NA ก็เลยสงสัยว่าทำไมเป็นเช่นนั้น เลยลองกลับไปแก้เลขรหัสนักเรียนที่ database จากที่คัดลอกมาวางไว้โดยลบตัวเลขแล้วลองพิมพ์เข้าไปใหม่ แล้วไปดูที่ sheet report มีรายชื่อนักเรียนปรากฏตามสูตร เลยคิดได้ว่า ข้อมูลของนักเรียนที่คัดลอกมาวางไว้ที่ sheet database นั้น คัดลอกมาจาก text file ของโปรแกรม smis ที่น่าจะเป็นปัญหาในเรื่องตัวเลขหรือเปล่าก็ไม่ทราบ อาจารย์ลองตรวจสอบตัวเลขที่ไฟล์แนบที่ส่งมาแล้วนั้นก็ได้ครับ ขอบพระคุณมากครับ
Re: การดึงข้อมูลนักเรียนจากหลายชีท
Posted: Wed Apr 25, 2012 2:41 pm
by snasui

เนื่องจากตัวเลขใน Database นั้นเป็น Text ไม่ใช่เป็น Number ดังนั้น หากต้องการจะทำ Vlookup ให้คีย์ตัวเลขรหัสให้เป็น Text หรือ กำหนด Format ของช่องที่จะคีย์รหัสให้เป็น Text โดย
- คลิกขวาเซลล์ที่ใช้กรอกรหัสนักเรียน
- เลือก Format cells
- แถบ Number เลือก Text
- คีย์รหัสนักเรียนที่ต้องการแล้วสังเกตดูผล
Re: การดึงข้อมูลนักเรียนจากหลายชีท
Posted: Wed Apr 25, 2012 3:59 pm
by bank9597

แถมอีกสูตรครับ
Vlookup จะทำงานช้าเมื่อข้อมูลมากขึ้น ลองเปลี่ยนมาใช้ Index+Match ดูครับ
ที่ B6 คีย์ =IFERROR(INDEX(database!$B$2:$B$26,MATCH(A6,database!$A$2:$A$26,0)),"") คัดลอกลงมา
ส่วนเซลล์ที่เหลือก็ปรับตามสูตรนี้ดูครับ
Re: การดึงข้อมูลนักเรียนจากหลายชีท
Posted: Wed Apr 25, 2012 6:32 pm
by spuangchang
ขอบคุณมากครับ