Page 1 of 1

ลองทำ Matching ไม่ได้ตามตัวอย่าง ช่วยด้วยคะ

Posted: Wed Aug 11, 2010 10:57 am
by pimna
อาจารย์ คะ
มีข้อสงสัย ตามตัวอย่าง ดังนี้

1. ลองใช้ Fuction ตามตัวอย่างที่แนบแต่ทำไมไม่ได้ตามค่าที่ต้องการ
2. ตาม File ที่ test ต้องการให้แสดงค่าของ Item ที่ระบุ ตามบรรทัดที่ต้องการ

รบกวนด้วยคะ พยายามหลายครั้งแล้ว

Re: ลองทำ Matching ไม่ได้ตามตัวอย่าง ช่วยด้วยคะ

Posted: Wed Aug 11, 2010 1:49 pm
by snasui
:D ลองตามนี้ครับ

ที่ไฟล์ test.xls, Sheet Form, Cell C3 คีย์

=INDEX(Database!$B$3:$G$3,MATCH(B3,INDEX(Database!$B$4:$G$19,MATCH(A3,Database!$A$4:$A$19,0),0),0))

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

เนื่องจากข้อมูลในตารางใน Sheet Database ไม่ได้เรียงไปทางขวาแบบน้อยไปหามาก ฟังก์ชั่น Match ในสูตรด้านบนต้องเติมส่วนประกอบสุดท้ายเป็น 0 เสมอครับ

Re: ลองทำ Matching ไม่ได้ตามตัวอย่าง ช่วยด้วยคะ

Posted: Wed Aug 11, 2010 3:23 pm
by pimna
ขอบคุณคะ

Re: ลองทำ Matching ไม่ได้ตามตัวอย่าง ช่วยด้วยคะ

Posted: Wed Aug 11, 2010 3:30 pm
by pimna
ถามเพิ่มเติมอีกนะคะ ว่า
1. ถ้าเรียงจากมากไปน้อย ต้องเติมอย่างไร
2. ทำอย่างไรกรณี เพิ่มข้อมูลบรรทัดต่อไป แล้วสูตร Copy มาอัติโนมัติคะ
ขอบคุณคะ

Re: ลองทำ Matching ไม่ได้ตามตัวอย่าง ช่วยด้วยคะ

Posted: Wed Aug 11, 2010 3:57 pm
by snasui
pimna wrote:ถามเพิ่มเติมอีกนะคะ ว่า
1. ถ้าเรียงจากมากไปน้อย ต้องเติมอย่างไร
2. ทำอย่างไรกรณี เพิ่มข้อมูลบรรทัดต่อไป แล้วสูตร Copy มาอัติโนมัติคะ
ขอบคุณคะ
:D หากข้อมูลที่ต้องการ Match เรียงจากมากไปน้อย ฟังก์ชั่น Match ควรเติมส่วนประกอบสุดท้ายเป็น -1 ครับ

สำหรับ Match นั้นมีส่วนประกอบสุดท้ายเพื่อใช้หาข้อมูลใน 3 แบบคือ

1. ข้อมูลเรียงจากน้อยไปหามาก ใช้ 1 หรือ ปล่อยว่าง
2. ข้อมูลไม่เรียง ใช้ 0
3. ข้อมูลเรียงจากมากไปหาน้อย ใช้ -1

แบบที่ 1 และ 3 คำนวณได้รวดเร็วมาก เพราะไม่ได้ Match แบบตัวต่อตัว แต่เป็นการ Match ที่เรียกว่า Binary Search คร่าว ๆ เท่านี้ก่อนครับ

ส่วนการเพิ่ม Data แล้วต้องการให้สูตร Copy เองอัตโนมัตินั้น ให้กำหนดพื้นที่เป้าหมาย (สมมุติทำที่ Sheet Form) เป็น List ครับ โดยลองตามนี้ครับ

คลิกลงในเซลล์ A3 > คลิกขวา > Create List > ทำเครื่องหมายที่ My list has headers > OK

จากนั้นเมื่อเพิ่มหรือลดข้อมูล สูตรจะเพิ่มให้อัตโนมัติ