MATCH เป็นฟังก์ชันที่ให้ผลลัพธ์เป็น "ตำแหน่งของข้อมูล" จากช่วงข้อมูลที่ตรงกับค่าที่ระบุ ตามลำดับการเรียงที่กำหนดไว้ เราใช้ฟังก์ชัน MATCH ในกรณีที่ต้องการหาตำแหน่ง หรือลำดับที่ ของรายการข้อมูลในช่วงใดช่วงหนึ่ง
โครงสร้างฟังก์ชัน
MATCH( lookup_value, lookup_array, match_type )
- lookup_value (ค่าที่ต้องการหา) ซึ่งตรงกับค่าในช่วงตาราง lookup_array โดยที่ lookup_value สามารถอยู่ในรูปตัวเลข ข้อความ หรือค่าตรรกะ หรือการอ้างอิงเซลล์ ก็ได้
- lookup_array (ช่วงเซลล์ที่ติดกัน) ซึ่งมีค่าที่ต้องการค้นหานั้นเก็บอยู่
- match_type (รูปแบบการค้นหา) แทนค่าด้วยตัวเลข -1, 0 หรือ 1 โดย....
- ถ้า match_type เป็น 1 หรือไม่ได้ใส่ค่าใดๆ จะค้นหาค่ามากสุด ซึ่งน้อยกว่าหรือเท่ากับ lookup_value โดย lookup_array จะต้องเรียงลำดับจากน้อยไปหามาก
- ถ้า match_type เป็น 0 จะค้นหาค่าที่เท่ากับ lookup_value เท่านั้น โดย lookup_array ไม่จำเป็นต้องเรียงลำดับ
- ถ้า match_type เป็น -1 จะค้นหาค่าน้อยสุด ซึ่งมากกว่าหรือเท่ากับ lookup_value โดย lookup_array จะต้องเรียงลำดับจากมากไปหาน้อย
- หมายเหตุ
- ฟังก์ชัน MATCH ไม่แยกความแตกต่างระหว่างตัวพิมพ์ใหญ่ และตัวพิมพ์เล็ก
- ถ้าค้นหาไม่พบค่าที่ตรงกัน จะแสดงค่าข้อผิดพลาด #N/A
- ถ้า match_type เป็น 0 และ lookup_value เป็นข้อความ สามารถใส่สัญลักษณ์ เช่น เครื่องหมายดอกจัน (*) และเครื่องหมายคำถาม (?) ไว้ใน lookup_value ได้
- เครื่องหมายดอกจัน (*) ใช้แทนอักษรอะไรก็ได้ จำนวนเท่าใดก็ได้
- เครื่องหมายคำถาม (?) ใช้แทนอักษรอะไรก็ได้ เพียงตัวเดียวเท่านั้น
รูปที่ 1 แสดงตัวอย่างการใช้ MATCH
ตัวอย่าง
- พิมพ์ชื่อเดือนลงในช่วง A1:A12 ดังรูปที่ 1
- พิมพ์ชื่อเดือนใดเดือนหนึ่งลงในเซลล์ C1 เช่น JUL
- ที่เซลล์ D1 พิมพ์สูตร =MATCH( C1, A1:A12, 0 )
- จะได้ผลลัพธ์เท่ากับ 7 หมายความว่า JUL เป็นค่าที่อยู่ในลำดับที่ 7 ของช่วงข้อมูล A1:A12
- ทั้งนี้ ถ้ามีการจัดเรียงตำแหน่งข้อมูลในช่วง A1:A12 ใหม่ ผลลัพธ์ที่ได้ ก็อาจจะแตกต่างกันออกไป
การประยุกต์ใช้งาน
ถ้าเราสร้างแบบฟอร์มเอกสาร และให้มีการกรอก วัน-เดือน-ปี แยกเซลล์ (ดังรูปที่ 1 ช่วง C4:D6) เมื่อเราต้องการนำค่าวันที่ดังกล่าวนี้ ไปใช้คำนวณในกรณีอื่นๆ เราต้องส่งข้อมูลไป ในรูปแบบวันที่ (Date Format) โดยใช้ฟังก์ชัน DATE ซึ่งประกอบด้วยอาร์กิวเมนต์ ปี เดือน และวัน
ดังนั้น ที่เซลล์ D8 พิมพ์สูตร =DATE( D4, D5, D6 )
แต่เนื่องจากฟังก์ชัน DATE จะรับค่าอาร์กิวเมนต์ ปี-เดือน-วัน "เป็นตัวเลข" แต่ค่าเดือนในเซลล์ D5 ที่อ้างถึงนั้นเป็น "ข้อความ" จึงทำให้ผลลัพธ์ออกมาเป็น #VALUE! หรือเป็นค่า ความผิดพลาด
เราต้องแปลงค่าเดือนซึ่งเป็นข้อความ (ที่อ้างถึงในเซลล์ D5) ให้เป็นตัวเลข ก่อนส่งไปยังฟังก์ชัน DATE โดยการใช้ฟังก์ชัน MATCH ค้นหาค่าในเซลล์ D5 เพื่อไปเปรียบเทียบกับช่วงข้อมูล A1:A12 แล้วส่งผลลัพธ์กลับมายังฟังก์ชัน DATE อีกครั้ง
ดังนั้นสูตรในเซลล์ D8 จึงได้รับการแก้ไขใหม่เป็น =DATE( D4, MATCH( D5, A1:A12, 0 ), D6 )
รูปที่ 2 แสดงตัวอย่างการประยุกต์ใช้ MATCH
หมายเหตุ
ในบางกรณีที่ใช้ในงานจริงนั้น ถ้าเราไม่ได้มีการสร้างช่วงข้อมูล A1:A12 ไว้ล่วงหน้าดังตัวอย่าง เราสามารถใส่ช่วงข้อมูล (ที่จะให้ฟังก์ชัน MATCH ทำการค้นหา) ลงไปในสูตรได้เลย เช่น
=DATE(D4, MATCH(D5,{"JAN","FEB","MAR","APR","MAY", "JUN","JUL","AUG","SEP","OCT","NOV","DEC"},0), D6)
แต่ถ้ามีรายการที่จะเปรียบเทียบเป็นจำนวนมาก วิธีการนี้อาจจะไม่สะดวก และการเขียนสูตรก็จะยาวขึ้น จึงต้องพิจารณาในการประยุกต์ใช้ในแต่ละงานด้วย
0 ความคิดเห็น:
แสดงความคิดเห็น