INDEX MATCH ใน Google ชีต – อีกวิธีสำหรับการค้นหาในแนวตั้ง

  • แบ่งปันสิ่งนี้
Michael Brown

เมื่อคุณต้องการหาข้อมูลในแผ่นงานของคุณที่ตรงกับบันทึกสำคัญๆ ก็มักจะเป็น VLOOKUP ของ Google ชีต แต่คุณไปแล้ว: VLOOKUP ตบคุณด้วยข้อจำกัดแทบจะในทันที นั่นเป็นเหตุผลที่คุณควรเพิ่มทรัพยากรสำหรับงานโดยการเรียนรู้ INDEX MATCH

INDEX MATCH ใน Google ชีตคือการรวมกันของสองฟังก์ชัน: INDEX และ MATCH เมื่อใช้ควบคู่กัน จะทำหน้าที่เป็นทางเลือกที่ดีกว่าสำหรับ Google ชีต VLOOKUP มาดูความสามารถของพวกเขาด้วยกันในบล็อกโพสต์นี้ แต่ก่อนอื่น ฉันอยากจะแนะนำคุณคร่าวๆ เกี่ยวกับบทบาทของตนเองในสเปรดชีต

    ฟังก์ชัน MATCH ของ Google ชีต

    ฉันอยากจะเริ่มต้นด้วย Google Sheets MATCH เพราะมันง่ายมาก โดยจะสแกนข้อมูลของคุณเพื่อหาค่าเฉพาะและส่งกลับตำแหน่ง:

    =MATCH(search_key, range, [search_type])
    • search_key คือบันทึกที่คุณกำลังมองหา จำเป็น
    • ช่วง คือแถวหรือคอลัมน์ที่ต้องการค้นหา จำเป็น

      หมายเหตุ MATCH ยอมรับอาร์เรย์หนึ่งมิติเท่านั้น: แถวหรือคอลัมน์

    • search_type เป็นตัวเลือกและกำหนดว่าการจับคู่ควรเป็นแบบตรงทั้งหมดหรือเป็นค่าประมาณ หากละเว้น ค่านี้จะเป็น 1 โดยค่าเริ่มต้น:
      • 1 หมายถึงช่วงนั้นจัดเรียงจากน้อยไปหามาก ฟังก์ชันได้รับค่ามากที่สุดน้อยกว่าหรือเท่ากับ search_key ของคุณ
      • 0 จะทำให้ฟังก์ชันค้นหาค่าที่ตรงกันในกรณีที่ช่วงของคุณไม่ใช่เรียงลำดับ
      • -1 คำแนะนำว่าเรกคอร์ดได้รับการจัดอันดับโดยใช้การเรียงลำดับจากมากไปน้อย ในกรณีนี้ ฟังก์ชันจะได้รับค่าที่น้อยที่สุดซึ่งมากกว่าหรือเท่ากับ คีย์การค้นหา ของคุณ

    ตัวอย่างต่อไปนี้: เพื่อให้ได้ตำแหน่งของค่าหนึ่ง berry ในรายการผลเบอร์รี่ทั้งหมด ฉันต้องการสูตร MATCH ต่อไปนี้ใน Google ชีตของฉัน:

    =MATCH("Blueberry", A1:A10, 0)

    ฟังก์ชัน INDEX ของ Google ชีต

    ในขณะที่ MATCH แสดงตำแหน่งที่จะค้นหาค่าของคุณ (ตำแหน่งในช่วง) ฟังก์ชัน INDEX ของ Google ชีตจะดึงค่าเองตามการชดเชยแถวและคอลัมน์:

    =INDEX(reference, [row], [column])
    • reference คือช่วงที่ต้องการค้นหา
    • แถว คือจำนวนแถวที่จะชดเชยจากเซลล์แรกของช่วงของคุณ . ระบุหรือไม่ใส่ก็ได้ 0 หากละไว้
    • คอลัมน์ เช่นเดียวกับ แถว คือจำนวนคอลัมน์ออฟเซ็ต นอกจากนี้ ยังระบุหรือไม่ใส่ก็ได้ 0 หากละเว้น

    หากคุณระบุทั้งอาร์กิวเมนต์ที่ไม่บังคับ (แถวและคอลัมน์) Google ชีต INDEX จะส่งคืนบันทึกจากเซลล์ปลายทาง:

    =INDEX(A1:C10, 7, 1) <3

    ข้ามหนึ่งในอาร์กิวเมนต์เหล่านั้นและฟังก์ชันจะให้ทั้งแถวหรือคอลัมน์ตามนั้น:

    =INDEX(A1:C10, 7)

    วิธีใช้ INDEX MATCH ใน Google ชีต — ตัวอย่างสูตร

    เมื่อใช้ INDEX และ MATCH ร่วมกันในสเปรดชีต จะใช้ได้อย่างมีประสิทธิภาพที่สุด พวกเขาสามารถแทนที่ VLOOKUP ของ Google ชีตได้อย่างสมบูรณ์และดึงข้อมูลที่จำเป็นจากตารางตามค่าคีย์ของคุณ

    สร้างสูตร INDEX MATCH แรกของคุณสำหรับ Google ชีต

    สมมติว่าคุณต้องการรับข้อมูลสต็อกของแครนเบอร์รี่จากตารางเดียวกันกับที่ฉันใช้ด้านบน ฉันสลับเฉพาะคอลัมน์ B และ C เท่านั้น (คุณจะพบว่าทำไมในภายหลัง)

    1. ตอนนี้ผลเบอร์รี่ทั้งหมดแสดงอยู่ในคอลัมน์ C ฟังก์ชัน MATCH ของ Google ชีตจะช่วยคุณค้นหาแถวที่ถูกต้องของ แครนเบอร์รี่: 8

      =MATCH("Cranberry", C1:C10, 0)

    2. ใส่สูตร MATCH ทั้งหมดลงในอาร์กิวเมนต์ แถว ในฟังก์ชัน INDEX:

      =INDEX(A1:C10, MATCH("Cranberry", C1:C10, 0))

      อันนี้จะส่งกลับทั้งแถวด้วยแครนเบอร์รี่ในนั้น

    3. แต่เนื่องจากสิ่งที่คุณต้องมีก็แค่ข้อมูลหุ้น ระบุหมายเลขของคอลัมน์ค้นหาด้วย: 3

      =INDEX(A1:C10, MATCH("Cranberry", C1:C10,0), 2)

    4. Voila !

    5. คุณสามารถไปต่อและเลิกใช้ตัวบ่งชี้คอลัมน์สุดท้าย ( 2 ) คุณไม่จำเป็นต้องใช้เลยหากคุณใช้เฉพาะคอลัมน์การค้นหา ( B1:B10 ) แทนที่จะใช้ทั้งตาราง ( A1:C10 ) เป็นอาร์กิวเมนต์แรก:

      =INDEX(B1:B10, MATCH("Cranberry", C1:C10, 0))

      เคล็ดลับ วิธีที่สะดวกกว่าในการตรวจสอบความพร้อมของผลเบอร์รี่ต่างๆ คือวางไว้ในรายการแบบเลื่อนลง ( E2 ) และอ้างอิงฟังก์ชัน MATCH ของคุณไปยังเซลล์ที่มีรายการดังกล่าว:

      =INDEX(B1:B10, MATCH(E2, C1:C10, 0))

      เมื่อคุณเลือกผลเบอร์รี่ ค่าที่เกี่ยวข้องจะเปลี่ยนตาม:

    ทำไม INDEX MATCH ใน Google ชีตจึงดีกว่า VLOOKUP

    คุณรู้อยู่แล้วว่า Google ชีต INDEX MATCH จะค้นหาค่าของคุณในตารางและส่งคืนบันทึกอื่นที่เกี่ยวข้องจากรายการเดียวกันแถว. และคุณรู้ไหมว่า Google ชีต VLOOKUP ก็ทำเช่นเดียวกัน แล้วทำไมต้องกังวล

    ประเด็นก็คือ INDEX MATCH มี ข้อดีที่สำคัญบางประการ เหนือ VLOOKUP:

    1. ด้านซ้าย การค้นหาเป็นไปได้ . ฉันเปลี่ยนตำแหน่งคอลัมน์ก่อนหน้านี้เพื่อแสดงสิ่งนี้: ฟังก์ชัน INDEX MATCH ใน Google ชีตสามารถและดูทางด้านซ้ายของคอลัมน์ค้นหาได้ VLOOKUP จะค้นหาคอลัมน์แรกของช่วงเสมอและมองหารายการที่ตรงกันทางด้านขวา มิฉะนั้นจะได้รับเฉพาะข้อผิดพลาด #N/A:

    2. ไม่มีปัญหา อ้างอิงเมื่อเพิ่มคอลัมน์ใหม่และย้ายคอลัมน์ที่มีอยู่ หากคุณเพิ่มหรือย้ายคอลัมน์ INDEX MATCH จะแสดงการเปลี่ยนแปลงโดยอัตโนมัติโดยไม่เข้าไปยุ่งกับผลลัพธ์ เนื่องจากคุณใช้การอ้างอิงคอลัมน์ Google ชีตจึงปรับเปลี่ยนทันที:

      ดำเนินการต่อและลองทำสิ่งนี้ด้วย VLOOKUP: ต้องใช้หมายเลขคำสั่งซื้อแทนการอ้างอิงเซลล์สำหรับคอลัมน์ค้นหา ดังนั้น คุณจะได้ค่าที่ผิดเพราะคอลัมน์อื่นอยู่ในตำแหน่งเดียวกัน — คอลัมน์ 2 ในตัวอย่างของฉัน:

    3. พิจารณาตัวพิมพ์ข้อความ เมื่อจำเป็น (เพิ่มเติมด้านล่าง)
    4. สามารถใช้สำหรับการค้นหาในแนวตั้งโดยอิงจากหลายเกณฑ์

    ขอเชิญคุณดู ในรายละเอียดสองจุดสุดท้ายด้านล่าง

    V-lookup ที่คำนึงถึงตัวพิมพ์เล็กและใหญ่ด้วย INDEX MATCH ใน Google ชีต

    INDEX MATCH เป็นวิธีที่ใช้เมื่อพูดถึงตัวพิมพ์เล็กและใหญ่ความไว

    สมมติว่าผลเบอร์รี่ทั้งหมดถูกขายในสองวิธี — แบบหลวม (ชั่งน้ำหนักที่เคาน์เตอร์) และบรรจุในกล่อง ดังนั้นจึงมีเหตุการณ์ 2 ครั้งของผลเบอร์รี่แต่ละรายการที่เขียนในกรณีต่างๆ กันในรายการ โดยแต่ละรายการจะมี ID ของตัวเองที่แตกต่างกันไปในแต่ละกรณี:

    แล้วคุณจะค้นหาได้อย่างไร ข้อมูลสต็อกเกี่ยวกับผลไม้เล็ก ๆ ที่ขายด้วยวิธีใดวิธีหนึ่ง? VLOOKUP จะส่งคืนชื่อที่พบไม่ว่าจะกรณีใดก็ตาม

    โชคดีที่ INDEX MATCH สำหรับ Google ชีตสามารถทำได้อย่างถูกต้อง คุณจะต้องใช้ฟังก์ชันเพิ่มเติมเพียงฟังก์ชันเดียว — FIND หรือ EXACT

    ตัวอย่างที่ 1. FIND สำหรับ Vlookup ที่คำนึงถึงตัวพิมพ์เล็กและใหญ่

    FIND เป็นฟังก์ชันที่คำนึงถึงตัวพิมพ์เล็กและใหญ่ใน Google ชีต ซึ่งทำให้มันยอดเยี่ยม สำหรับการค้นหาแนวตั้งที่คำนึงถึงตัวพิมพ์เล็กและใหญ่:

    =ArrayFormula(INDEX(B2:B19, MATCH(1, FIND(E2, C2:C19)), 0))

    มาดูกันว่าเกิดอะไรขึ้นในสูตรนี้:

    1. FIND สแกนคอลัมน์ C ( C2:C19 ) สำหรับบันทึกจาก E2 ( cherry ) โดยพิจารณาจากตัวอักษร เมื่อพบแล้ว สูตรจะ "ทำเครื่องหมาย" เซลล์นั้นด้วยตัวเลข — 1 .
    2. MATCH ค้นหาเครื่องหมายนี้ — 1 — ในคอลัมน์เดียวกัน ( C ) และส่งจำนวนแถวให้กับ INDEX
    3. INDEX ลงมาที่แถวนั้นในคอลัมน์ B ( B2:B19 ) และดึงข้อมูลที่จำเป็นมาให้คุณ
    4. เมื่อคุณสร้างสูตรเสร็จแล้ว ให้กด Ctrl+Shift+Enter เพื่อเพิ่ม ArrayFormula ที่จุดเริ่มต้น จำเป็นเพราะหากไม่มี FIND จะไม่สามารถค้นหาในอาร์เรย์ (ในเซลล์มากกว่าหนึ่งเซลล์) หรือคุณสามารถพิมพ์' ArrayFormula ' จากแป้นพิมพ์ของคุณ

    ตัวอย่างที่ 2. EXACT สำหรับ Vlookup ที่คำนึงถึงตัวพิมพ์เล็กและใหญ่

    หากคุณแทนที่ FIND ด้วย EXACT ตัวหลังจะค้นหาระเบียน ด้วยอักขระเดียวกันทุกประการ รวมถึงตัวพิมพ์ด้วย

    ข้อแตกต่างเพียงอย่างเดียวคือ EXACT "ทำเครื่องหมาย" ที่ตรงกับ TRUE แทนที่จะเป็นตัวเลข 1 ดังนั้น อาร์กิวเมนต์แรกสำหรับ MATCH ควรเป็น TRUE :

    =ArrayFormula(INDEX(B2:B19, MATCH(TRUE, EXACT(E2, C2:C19), 0)))

    Google ชีต INDEX MATCH ที่มีหลายเกณฑ์

    จะเกิดอะไรขึ้นหากมีหลายเงื่อนไขตามที่คุณต้องการดึงบันทึก

    มาตรวจสอบราคาของ เชอร์รี่ ที่ขายใน ถัง PP และ ใกล้จะหมดแล้ว :

    ฉันจัดเรียงเกณฑ์ทั้งหมดในรายการแบบเลื่อนลงในคอลัมน์ F และมันคือ Google ชีต INDEX MATCH ที่รองรับหลายเกณฑ์ ไม่ใช่ VLOOKUP นี่คือสูตรที่คุณต้องใช้:

    =ArrayFormula(INDEX(B2:B24, MATCH(CONCATENATE(F2:F4), A2:A24&C2:C24&D2:D24, 0),))

    อย่าตกใจ! :) ตรรกะของมันค่อนข้างง่ายจริงๆ:

    1. CONCATENATE(F2:F4) รวมระเบียนทั้งสามจากเซลล์ที่มีเกณฑ์เป็นสตริงเดียวดังนี้:

      CherryPP bucket กำลังจะหมด

      นี่คือ search_key สำหรับ MATCH หรืออีกนัยหนึ่งคือสิ่งที่คุณกำลังมองหาในตาราง

    2. A2:A24&C2:C24&D2:D24 เป็น ช่วง สำหรับฟังก์ชัน MATCH ที่จะพิจารณา เนื่องจากเกณฑ์ทั้งสามนี้เกิดขึ้นใน สามคอลัมน์ที่แยกจากกัน วิธีที่คุณจะรวมเข้าด้วยกัน:

      CherryCardboard trayIn stock

      CherryFilm packagingOut of stock

      CherryPP bucketRunning out

      etc .

    3. อาร์กิวเมนต์สุดท้ายใน MATCH — 0 — ทำให้สามารถค้นหาค่าที่ตรงกันทั้งหมดสำหรับ CherryPP bucketRunning out จากแถวทั้งหมดของคอลัมน์ที่รวมกัน อย่างที่คุณเห็น มันอยู่ในแถวที่ 3
    4. จากนั้น INDEX ก็ทำสิ่งนั้น: ดึงข้อมูลระเบียนจากแถวที่ 3 ของคอลัมน์ B
    5. ArrayFormula ใช้เพื่ออนุญาตให้ฟังก์ชันอื่นๆ ทำงานกับอาร์เรย์

    เคล็ดลับ หากสูตรของคุณไม่พบข้อมูลที่ตรงกัน ระบบจะส่งกลับข้อผิดพลาด เพื่อหลีกเลี่ยงปัญหานี้ คุณสามารถรวมสูตรทั้งหมดนี้ใน IFERROR (กำหนดให้เป็นอาร์กิวเมนต์แรก) และป้อนสิ่งที่คุณต้องการดูในเซลล์แทนข้อผิดพลาดเป็นอาร์กิวเมนต์ที่สอง:

    =IFERROR(ArrayFormula(INDEX(B2:B27, MATCH(CONCATENATE(F2:F4), A2:A27&C2:C27&D2:D27, 0),)), "Not found")

    ทางเลือกที่ดีกว่าสำหรับ INDEX MATCH ใน Google ชีต — การจับคู่ VLOOKUP หลายรายการ

    ไม่ว่าคุณต้องการฟังก์ชันการค้นหาแบบใด VLOOKUP หรือ INDEX MATCH ก็มีทางเลือกอื่นที่ดีกว่าสำหรับทั้งคู่

    หลายรายการ VLOOKUP Matches เป็นส่วนเสริมพิเศษสำหรับ Google ชีตที่ออกแบบมาเพื่อ:

    • ค้นหาโดยไม่มีสูตร
    • ค้นหาในทุกทิศทาง
    • ค้นหาตามเงื่อนไขที่หลากหลายสำหรับประเภทข้อมูลที่แตกต่างกัน : ข้อความ ตัวเลข วันที่ เวลา ฯลฯ
    • ดึงข้อมูลที่ตรงกันหลายรายการ มากเท่าที่คุณต้องการ (หากมีจำนวนมากในตารางของคุณ)

    อินเทอร์เฟซตรงไปตรงมา คุณจึงไม่ต้องสงสัยว่าคุณกำลังทำอยู่หรือไม่ทุกอย่างถูกต้อง:

    1. เลือกช่วงแหล่งที่มา
    2. กำหนดจำนวนการจับคู่และคอลัมน์ที่จะส่งคืน
    3. ปรับแต่งเงื่อนไขอย่างละเอียดโดยใช้ตัวดำเนินการที่กำหนดไว้ล่วงหน้า ( มี, =, ไม่ว่าง , ระหว่าง เป็นต้น)

    คุณยังสามารถ:

    • ดูตัวอย่างผลลัพธ์
    • ตัดสินใจว่าจะวางที่ใด
    • และอย่างไร: เป็นสูตรหรือเพียงแค่ค่า

    อย่าพลาดโอกาสในการตรวจสอบส่วนเสริมนี้ ดำเนินการต่อและติดตั้งจาก Google Workspace Marketplace หน้าบทช่วยสอนจะอธิบายรายละเอียดทุกตัวเลือก

    เรายังเตรียมวิดีโอแนะนำพิเศษ:

    แล้วพบกันในความคิดเห็นด้านล่างหรือในบทความหน้า ;)

    Michael Brown เป็นผู้ที่ชื่นชอบเทคโนโลยีโดยเฉพาะและมีความหลงใหลในการทำให้กระบวนการที่ซับซ้อนง่ายขึ้นโดยใช้เครื่องมือซอฟต์แวร์ ด้วยประสบการณ์กว่าทศวรรษในอุตสาหกรรมเทคโนโลยี เขาได้ฝึกฝนทักษะของเขาใน Microsoft Excel และ Outlook รวมถึง Google ชีตและเอกสาร บล็อกของ Michael ทุ่มเทให้กับการแบ่งปันความรู้และความเชี่ยวชาญของเขากับผู้อื่น โดยให้คำแนะนำและแบบฝึกหัดที่ทำตามได้ง่ายเพื่อปรับปรุงผลิตภาพและประสิทธิภาพ ไม่ว่าคุณจะเป็นมืออาชีพที่ช่ำชองหรือมือใหม่ บล็อกของ Michael นำเสนอข้อมูลเชิงลึกอันมีค่าและคำแนะนำที่เป็นประโยชน์สำหรับการใช้ประโยชน์สูงสุดจากเครื่องมือซอฟต์แวร์ที่จำเป็นเหล่านี้