Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> Office

เชี่ยวชาญฟังก์ชัน Lookup ใน Excel: กรอบงานที่พิสูจน์แล้วสำหรับการเลือกกลยุทธ์ที่ดีที่สุด

ฟังก์ชัน Lookup ทำให้การดึงข้อมูลมีประสิทธิภาพ Excel มีตัวเลือก Lookup หลายตัว และการเลือกกลยุทธ์ที่เหมาะสมอาจ棘手 การเลือกวิธีที่เหมาะสมที่สุดให้ผลลัพธ์ที่น่าเชื่อถือที่สุด ในบทช่วยสอนนี้ เราสร้างกรอบงาน Excel lookup function สำหรับเลือกกลยุทธ์ที่ถูกต้อง กรอบงานนี้ช่วยให้ผู้ใช้ระดับสูงตัดสินใจว่าวิธีไหนเหมาะสมที่สุดตามรูปร่างข้อมูล ขนาด และเจตนา

คุณสามารถปฏิบัติตามแผนภาพข้างต้นเพื่อเลือกกลยุทธ์ lookup ที่ถูกต้อง

XLOOKUP: เหมาะสำหรับ One-to-One Lookup (Excel สมัยใหม่)

ก่อนอื่น ตัดสินใจว่าคุณกำลังค้นหาอะไร คุณกำลังดึงเรคคอร์ดที่ตรงกันเพียงตัวเดียว หรือคุณต้องการเรคคอร์ดทั้งหมดที่ตรงกับเกณฑ์ของคุณ?

ใช้ XLOOKUP เมื่อคุณต้องการผลลัพธ์เดียว สูตรที่อ่านง่าย และการจัดการ "not found" แบบ optional

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

Lookup UnitPrice เข้า Orders:

=XLOOKUP(D2, Products!$A$2:$A$7, Products!$D$2:$D$7, "Not found")

สูตรคล้ายกันในรูปแบบ Table:

=XLOOKUP(Orders[@SKU], Products[SKU], Products[UnitPrice], "SKU not found")

ค้นหา CustomerName ใน Orders:

=XLOOKUP(Orders[@CustomerID], Customers[CustomerID], Customers[CustomerName], "Customer not found")

สูตรเหล่านี้ค้นหาค่าในตารางต่างๆ และคืนเรคคอร์ดที่ตรงกันเพียงตัวเดียว XLOOKUP สามารถเป็นตัวเลือกเริ่มต้นของคุณสำหรับ one-to-one lookups ใน Excel สมัยใหม่ มันเสนอ:

  • Syntax สะอาด อ่านง่าย พร้อม error handling ผ่านอาร์กิวเมนต์ if_not_found
  • รองรับ leftward และ bidirectional lookups โดยเนทีฟ
  • Exact และ approximate match modes โดยไม่ต้องใช้พารามิเตอร์ match-type ที่ลึกลับ

ใช้ XLOOKUP เมื่อคุณมี Microsoft 365 หรือ Excel 2021+ และต้องการการดึงค่าเดี่ยวที่ตรงไปตรงมา

INDEX/MATCH: เหมาะสำหรับความเข้ากันได้และยังทรงพลัง

เลือก INDEX/MATCH ถ้าไฟล์ของคุณต้องทำงานใน Excel รุ่นเก่า หรือเมื่อมาตรฐานของทีมคือ INDEX/MATCH

UnitPrice ผ่าน INDEX/MATCH:

=INDEX(Products[UnitPrice], MATCH(Orders[@SKU], Products[SKU], 0))

สูตรนี้ยังคงเป็นตัวเลือกที่มั่นคงสำหรับรุ่นเก่า แต่อ่านยากกว่าและบำรุงรักษายากกว่า XLOOKUP สำหรับทีมหลายทีม

FILTER: เหมาะสำหรับ One-to-Many Results (Spilled Lists)

เลือก FILTER เมื่อคุณต้องการรายการเรคคอร์ดที่ไดนามิกซึ่งอัปเดตอัตโนมัติ มันดึงชุดย่อยของข้อมูลตามเกณฑ์และเก็บผลลัพธ์ไว้อัปเดตเสมอ FILTER สร้างขึ้นมาเพื่อ one-to-many retrieval:

  • คืนแถวที่ตรงกันทั้งหมดเป็น dynamic spill array
  • จัดการหลายเกณฑ์ด้วย Boolean AND/OR logic
  • ขยายและหดตัวอัตโนมัติเมื่อข้อมูลต้นทางเปลี่ยน
  • ผสานรวมกับฟังก์ชัน dynamic array อื่นๆ ได้อย่างราบรื่น

แสดงคำสั่งซื้อทั้งหมดสำหรับ CustomerID:

=FILTER(Orders, Orders[CustomerID]=H2, "No orders found")

คำสั่งซื้อ West Region ทั้งหมดสำหรับ SKU P-101:

=FILTER(Orders, (Orders[Region]=H9)*(Orders[SKU]=H7), "No matches")

สูตรเหล่านี้ต่างจาก XLOOKUP เพราะ FILTER ไม่คืนค่าเดียว—มันคืนคำตอบรูปตารางที่ spill ออกมา นั่นคืองานที่ต่างจาก XLOOKUP/INDEX-MATCH

Power Query: เหมาะเมื่อ Lookup จริงๆ แล้วคือ "Join" (Data Modeling)

Power Query กลายเป็นตัวเลือกที่ดีกว่าเมื่อคุณต้องทำการแปลงข้อมูลบนผลลัพธ์ที่กรองแล้ว ใช้เมื่อ:

  • ข้อมูลมีขนาดใหญ่
  • ข้อมูลมาจากแหล่งภายนอกและต้อง refresh
  • คุณต้องการ transformation pipeline ที่ทำซ้ำได้
  • คุณต้องการสร้างตารางรวมที่สะอาดสำหรับ PivotTables/แดชบอร์ด

มาสร้างตารางที่รวมคอลัมน์ Product และ Customer (UnitPrice, Product, CustomerName, Segment)

ขั้นตอน (Merge/Join):

  • แปลงช่วงเป็นตาราง (กด CTRL+T) ข้อมูลของเราอยู่ในรูปแบบตารางแล้ว
  • ไปที่แท็บ Data >> เลือก Get Data >> เลือก From Table/Range (เริ่มจาก Orders)
  • ใน Power Query Editor: Home >> เลือก Merge Queries
    • Merge Orders กับ Products table
    • เลือก Orders[SKU] และ Products[SKU]
    • Join kind: เลือก Left Outer (เก็บ Orders ทั้งหมด)
    • คลิก OK
    • คลิกไอคอน Expand >> เลือก Product, Category, และ UnitPrice
    • คลิก OK
  • Merge Orders กับตาราง Customers
    • จับคู่ Orders[CustomerID] กับ Customers[CustomerID]
    • คลิกไอคอน Expand >> เลือก CustomerName, Segment
    • คลิก OK
  • คลิก Close & Load เพื่อโหลดข้อมูลใน Excel

นี่คือตาราง Orders ที่เพิ่มรายละเอียด product และ customer ใหม่

คุณ merge หนึ่งครั้ง refresh ได้ทุกเมื่อ และหลีกเลี่ยงการ lookup ซ้ำๆ ข้ามหลายพันแถวและหลายคอลัมน์

การเลือกระหว่าง FILTER และ Power Query สำหรับ One-to-Many

FILTER และ Power Query ทั้งคู่ให้ผลลัพธ์ขั้นสูง อัตโนมัติ บางครั้งผู้ใช้ลังเลเมื่อเลือกหนึ่งสำหรับ one-to-many

  • เลือก FILTER เมื่อต้องการประสบการณ์ชีทแบบโต้ตอบ เปลี่ยนเซลล์เกณฑ์ และรายการอัปเดตทันที เหมาะสำหรับแดชบอร์ดโต้ตอบ
  • เลือก Power Query เมื่อต้องการชุดข้อมูลที่ refresh ได้เพื่อรายงาน (PivotTables, charts, model tables) โดยเฉพาะกับข้อมูลใหญ่

เคล็ดลับและเทคนิค

  • ถ้าผลลัพธ์เป็นเซลล์เดียว ให้เลือก XLOOKUP (หรือ INDEX/MATCH สำหรับความเข้ากันได้)
  • ถ้าผลลัพธ์เป็นรายการ/ตารางที่ควรโตอัตโนมัติ ให้เลือก FILTER
  • ถ้างานพื้นฐานคือการ join ชุดข้อมูลและต้อง refresh/scale ได้ ให้ใช้ Power Query
  • ถ้าคุณทำ lookup เดียวกันข้ามหลายคอลัมน์ (ราคา หมวดหมู่ ชื่อ segment…) เราแนะนำ Power Query merge แทนการซ้ำสูตร

สรุป

แผนภาพกระบวนการในบทช่วยสอนนี้ช่วยให้คุณเลือกกลยุทธ์ lookup ที่ถูกต้อง ตัดสินใจก่อนว่าข้อมูลของคุณต้องการ lookup ประเภทไหน ไม่มี lookup function "ที่ดีที่สุด" สากล—บริบทกำหนดวิธีที่เหมาะสมที่สุด เก่งกรอบงาน ไม่ใช่แค่ฟังก์ชัน และกลยุทธ์ lookup ของคุณจะปรับขนาดได้ตามความต้องการ พัฒนาสense กลยุทธ์ในการเลือกวิธี lookup ที่ถูกต้อง และโซลูชันของคุณจะเร็วกว่าในการสร้าง ง่ายกว่าในการบำรุงรักษา และทนทานกว่าเมื่อความต้องการพัฒนาไป