Tag: XMATCH

  • XMATCH

    TLDR สรุปสั้นๆ

    XMATCH ใช้ค้นหาตำแหน่งของข้อมูลในช่วงที่ระบุ ได้ยืดหยุ่นกว่า MATCH ปกติ

    คำอธิบาย

    ฟังก์ชัน XMATCH ใน Excel ช่วยในการค้นหาตำแหน่งของข้อมูลที่ต้องการในช่วงหรืออาร์เรย์ที่ระบุ และคืนค่าตำแหน่งของข้อมูลนั้น ซึ่งค้นหาได้ยืดหยุ่นกว่า MATCH ปกติ เช่น หาจากทิศืางใดก็ได้

    มีครั้งแรกในเวอร์ชันไหน

    2021

    รูปแบบคำสั่ง (Syntax)

    =XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])

    Arguments

    • lookup_value (Required – any)
      ค่าที่ต้องการค้นหา เช่น ตัวเลขหรือตัวอักษรที่ต้องการค้นหาในช่วงข้อมูล
    • lookup_array (Required – array)
      ช่วงหรืออาร์เรย์ที่ต้องการค้นหา เป็นแถวคอลัมน์ที่มีข้อมูลอยู่
    • match_mode (Optional – number) โหมดการจับคู่:
      • 0 = จับคู่แบบเป๊ะ (ค่าเริ่มต้น)
      • -1 = จับคู่แบบเป๊ะหรือข้อมูลตัวถัดไปที่เล็กกว่า
      • 1 = จับคู่แบบเป๊ะหรือข้อมูลตัวถัดไปที่ใหญ่กว่า
      • 2 = ใช้ wildcard (เครื่องหมาย * และ ? สำหรับสัญลักษณ์แทน)
    • search_mode (Optional – number) โหมดการค้นหา:
      • 1 = ค้นหาจากบนลงล่าง (ซ้ายไปขวา)
      • -1 = ค้นหาจากล่างขึ้นบน (ขวาไปซ้าย)
      • 2 = Binary Search (ค่า lookup_array ต้องเรียงลำดับน้อยไปมาก)
      • -2 = Binary Search (ค่า lookup_array ต้องเรียงลำดับมากไปน้อย)

    ตัวอย่างการใช้งาน (Examples)

    XMATCH 1
    • Formula:
      =XMATCH("TX0005", TxData[OrderID])
      Description: ค้นหาตำแหน่งของเลข TXID หมายเลข TX0005 ในคอลัมน์ TXID แบบ Exact Match (ค่า Default ของ match_mode ของ XMATCH คือ Exact Match)
      Result: 5 (เพราะ TX0005 อยู่ในลำดับที่ 5)
    • Formula:
      =XMATCH("SalesRep",TxData[#Headers])
      Description: ค้นหาตำแหน่งของหัวคอลัมน์ ที่มีชื่อว่า “SalesRep” ในตารางที่ชื่อ Txdata แบบ Exact Match (ค่า Default ของ match_mode ของ XMATCH คือ Exact Match)
      Result:4 เพราะ “SalesRep” เป็นคอลัมน์ที่ 4 ของตาราง TxData
    • Formula:
      =XMATCH(DATE(2025,2,15), TxData[Date], -1)
      Description: ต้องการค้นหา วันที่ที่ใกล้เคียงที่สุดและน้อยกว่าหรือเท่ากับ 15/02/2025 (ไม่จำเป็นต้องเรียงค่าในคอลัมน์ Date เหมือนกับ MATCH ปกติ)
      Result: ได้ลำดับ 3 ซึ่งมาจากการหาเจอวันที่ 03/02/2025 เพราะ เป็นวันที่ที่ใกล้เคียงที่สุดและน้อยกว่าหรือเท่ากับ 15/02/2025
    • Formula:
      =INDEX(TxData[SalesAmt], XMATCH("Monitor", TxData[Product Type]))
      Description: ค้นหายอดขาย (SalesAmt) ของ Monitor อันแรกที่เจอ โดยใช้ INDEX+XMATCH ในการช่วยดึงค่าที่ต้องการ
      Result: 2,500 (ยอดขายของ Monitor อันแรกที่เจอ จากบนลงล่าง)

    Tips & Tricks

    ใช้ wildcard เช่น * และ ? เพื่อค้นหาได้มากยิ่งขึ้น เช่น ค้นหาชื่อที่ขึ้นต้นด้วย ‘Pro’ ใช้ Pro* พร้อมกับตั้งค่า match_mode เป็น 2

    ข้อควรระวัง (Cautions)

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

    ฟังก์ชันที่เกี่ยวข้อง

    References

    ขอบคุณที่เข้ามาอ่านนะครับ ❤️