Page 1 of 1

อยากทราบวิธีดึงข้อมูลทั้งหมดข้ามชีท แบบมีเงื่อนไข

Posted: Thu Aug 06, 2015 12:02 am
by Chana
สวัสดีครับ..
อยากสอบถามวิธีการดึงข้อมูลข้ามชีท แบบมีเงื่อนไขครับ
คือผมจะทำลักษณะคล้ายๆ ฐานข้อมูล เก็บข้อมูลทั้งหมดไว้ในชีทหนึ่ง
ในไฟล์ตัวอย่างคือชีท memberData ครับ
และจะมีแบบฟอร์ม (ชีท Form) สำหรับดึงข้อมูลมาจาก ชีทอื่นๆ ครับ
เช่น StudentID ก็จะนำ StudentID ทั้งหมดมาจาก memberData
โดยที่ให้มีการกรอง Field อื่นๆ ด้วย เช่น กรอง Age = ผู้ใหญ่
ชีท Form!StudentID ก็จะแสดง StudentID ทั้งหมด ที่ Age = ผู้ใหญ่
ลักษณะนี้ ควรใช้ฟังก์ชั่น หรือวิธีใดครับ?

และในไฟล์ตัวอย่างจะมีอีกหนึ่งปัญหาคืิอ ถ้าจะแยกชีทที่จะใช้เก็บบันทึกการเข้าเรียนในแต่ละเดือน
จะมีวิธีการอย่างไรให้สามารถนำข้อมูลทั้งหมดจาก memberData มาในชีทนี้
โดยที่ข้อมูลทั้งหมดจะแก้ไข/เปลี่ยนแปลง/ลบ ตาม memberData ได้
ในลักษณะนี้ควรใช้ฟังก์ชั่น หรือวิธีใดครับ?

ลักษณะแบบนี้คงจะคล้ายงานที่ต้องใช้ MS Access
ถ้าจะแนะนำให้ใช้ Access ก็ขอคำแนะนำด้วยครับ ไม่ค่อยถนัด Access
และกลัวควบคุมมันได้ไม่เท่า Excel ครับ

ตั้งกระทู้ครั้งแรก ผิดพลาดอย่างไร ขออภัยมา ณ ที่นี้ครับ
ขอบคุณครับ
Example.xlsx

Re: อยากทราบวิธีดึงข้อมูลทั้งหมดข้ามชีท แบบมีเงื่อนไข

Posted: Thu Aug 06, 2015 8:50 am
by DhitiBank
ไฟล์ตัวอย่างติด password ครับ

Re: อยากทราบวิธีดึงข้อมูลทั้งหมดข้ามชีท แบบมีเงื่อนไข

Posted: Thu Aug 06, 2015 9:20 am
by Chana
ต้องขอโทษด้วยครับ
ผมแนบไฟล์มาให้ใหม่แล้วครับ
ยังไงขอบคุณล่วงหน้าครับ

Re: อยากทราบวิธีดึงข้อมูลทั้งหมดข้ามชีท แบบมีเงื่อนไข

Posted: Thu Aug 06, 2015 11:25 am
by DhitiBank
ไม่แน่ใจว่าใช่แบบที่ต้องหรือเปล่า ลองแบบนี้ครับ (ผมไม่รู้จัก access ขออนุญาตเอา combobox ออกนะครับ)

ที่ B6 คีย์
=IFERROR(IF(COUNTA($V$6:$V$9)<>4,"",INDEX(Table_MemberDB.accdb[StudentID],SMALL(IF((Table_MemberDB.accdb[Age]=$V$6)*(Table_MemberDB.accdb[City]=$V$7)*(Table_MemberDB.accdb[Group]=$V$8)*(Table_MemberDB.accdb[Unit]=$V$9),ROW(Table_MemberDB.accdb[StudentID])-ROW(memberData_!$B$2)+1),ROWS(B$6:B6)))),"")
แล้วกด Ctrl+Shift แล้วกด Enter

จากนั้นคัดลอกสูตรไปเซลล์ C6 และ D6 แล้วแก้ไขตรงที่ไฮไลต์สีน้ำเงินไว้เป็น FullName และ Nickname ตามลำดับ โดย
คลิกที่เซลล์-->F2-->แก้ไข-->กด Ctrl+Shift+Enter
(ที่ต้องกด 3 ปุ่มพร้อมกันเพราะเป็นการคีย์สูตรแบบอาร์เรย์ครับ หากกดถูกจะเห็นเครื่องหมายปีกกาคร่อมสูตรอยู่)

แก้ไขเสร็จแล้วก็คัดลอกสูตรใน B6-D6 ลงด้านล่างครับ

วิธีใช้คือให้คีย์เงื่อนไข Age, City, Group, Unit ให้ครบ ข้อมูลถึงจะถูกดึงมาครับ (อาจทำเป็น drop down list ก็จะทำให้เลือกได้ง่ายขึ้น)

Re: อยากทราบวิธีดึงข้อมูลทั้งหมดข้ามชีท แบบมีเงื่อนไข

Posted: Thu Aug 06, 2015 4:17 pm
by Chana
ขอบคุณมากครับ..
สูตรซับซ้อนมากเลย ตอนทำเองนี่คิดไม่ออกเลยว่าจะทำยังไงดี
ขอบคุณอีกครั้งครับ