02 December 2025

ยุค VLookup ต้องใช้ False จึงจะหาค่าถูกต้อง ทำไมยุค XLookup เลิกใช้ False ไปแล้ว

สูตร VLookup ต้องใส่ False หรือเลข 0 ต่อท้ายในสูตร จึงจะหาค่าแบบ Exact Match ถูกต้องตามแบบนี้

=VLookup( ค่าที่ใช้หา, พื้นที่ตารางข้อมูล, เลขที่ Column, False)
.
ทำนองเดียวกัน ยุคนั้นสูตร Match ก็ใช้หลักทำงานแบบเดียวกัน
.
ปรากฏว่ามีการใช้สูตรนี้ผิดพลาดเยอะไปหมดเพราะไม่ได้ใส่ False ทำให้สูตร VLookup หรือ Match หาค่าอื่นมาให้แทนแม้ค่าที่ใช้หานั้นไม่มีอยู่ก็ตาม
.
เพื่อแก้ปัญหาการใช้สูตรหาค่าผิดได้ง่ายๆ ไมโครซอฟท์จึงเปลี่ยนแนวทางการคิดของสูตรค้นหาค่าเสียใหม่ว่า ไม่จำเป็นต้องใช้ False ใส่ลงไปแล้วก็จะหาค่าแบบ Exact match ให้ทันที เช่น
.
=XLookup( ค่าที่ใช้หา, พื้นที่แถวที่เก็บค่าที่ใช้หา, พื้นที่แถวของคำตอบที่ต้องการ)
.
สูตร XMatch ก็เปลี่ยนแนวคิดมาเป็นแบบ XLookup เช่นกัน
.
การเปลี่ยนแปลงนี้ถือว่าเป็นการเปลี่ยนแปลงที่ยิ่งใหญ่มากครับ นานมาแล้วที่ไมโครซอฟท์ไม่ได้เปลี่ยนหลักการคิด เรียกง่ายๆว่า จากนี้ไปถ้าหาค่าไม่เจอ ไม่มีค่าที่ใช้หาก็ให้คืนค่าเป็น error NA ไว้ก่อนปลอดภัยกว่า
.
ขอให้พวกเราจับหลักความแตกต่างของ 2 ยุคนี้ไว้ให้ดี
.
💡 หลักคิดที่เปลี่ยนไป
.
• ยุคเก่า: “ถ้าไม่เจอ ก็เดาให้ใกล้เคียง” → เสี่ยงผิดพลาด
• ยุคใหม่: “ถ้าไม่เจอ ก็คืน error ไปเลย” → ปลอดภัยกว่า, ผู้ใช้ควบคุมได้เอง

++++++++++++++++++++++++++++++++++++  

Copilot อธิบายตามนี้
.
XLOOKUP ถูกออกแบบให้ *default* เป็นการค้นหาแบบ **Exact Match** (ไม่ต้องเรียงลำดับ) เพราะสะท้อนพฤติกรรมการใช้งานจริงของผู้ใช้ Excel ส่วนใหญ่ ที่ต้องการหาค่าตรงเป๊ะมากกว่าการหาค่าใกล้เคียง ซึ่งต่างจากยุค VLOOKUP/MATCH ที่ default เป็น Approximate Match และทำให้เกิดความสับสนบ่อยครั้ง
.
---
.
### 🔎 เหตุผลที่ Microsoft เปลี่ยนแนวคิด
.
- **พฤติกรรมผู้ใช้จริง:**
ส่วนใหญ่ใช้ VLOOKUP/MATCH เพื่อหาค่าที่ตรงกัน เช่น รหัสสินค้า → ราคา, รหัสนักเรียน → ชื่อ
แต่สูตรเก่า default เป็น Approximate Match ซึ่งต้องใช้ตารางเรียงลำดับ และทำให้เกิด error หรือผลลัพธ์ผิดพลาดโดยไม่รู้ตัว
.
- **ลดความผิดพลาด:**
ผู้ใช้จำนวนมากลืมใส่ `FALSE` หรือ `0` ใน VLOOKUP/MATCH เพื่อบังคับ Exact Match → ผลลัพธ์ผิดพลาดแบบเงียบ ๆ
XLOOKUP จึงกลับด้าน default ให้เป็น Exact Match เพื่อความปลอดภัยในการใช้งาน
.
- **ความยืดหยุ่นใหม่:**
.
XLOOKUP มี argument `match_mode` ที่ให้เลือกได้ชัดเจน เช่น
- `0` = Exact Match (default)
- `-1` = Approximate Match หาค่าที่น้อยที่สุดที่มากกว่า/เท่ากับ
- `1` = Approximate Match หาค่าที่มากที่สุดที่น้อยกว่า/เท่ากับ
ทำให้ผู้ใช้ควบคุมได้ตรงตามความต้องการ โดยไม่ต้องพึ่งการเรียงตารางเสมอไป
.
- **สอดคล้องกับการออกแบบสมัยใหม่:**
Microsoft ต้องการให้ Excel “predictable by default” → ค่าที่ได้ต้องตรงกับสิ่งที่ผู้ใช้คาดหวังมากที่สุด
Exact Match จึงเป็นค่าเริ่มต้นที่สอดคล้องกับการใช้งานในโลกจริง
.
---

### 📊 เปรียบเทียบ Default Behavior

| ฟังก์ชัน | Default | ต้องเรียงตาราง? | ปัญหาที่พบบ่อย |
|----------|----------|-----------------|----------------|
| VLOOKUP | Approximate Match | ใช่ | ผลลัพธ์ผิดพลาดถ้าลืมใส่ FALSE |
| MATCH | Approximate Match | ใช่ | ต้องใส่ 0 เพื่อ Exact |
| LOOKUP | Approximate Match | ใช่ | ใช้ยากและ error บ่อย |
| **XLOOKUP** | **Exact Match** | ไม่จำเป็น | ปลอดภัยกว่า, ตรงกับพฤติกรรมจริง |
.

---
.
### 💡 มุมมองเชิง “การสอน”

.การเปลี่ยน default ของ XLOOKUP คือการ “แก้ exception” ที่ผู้ใช้เจอมาตลอดใน VLOOKUP/MATCH — เหมือนการออกแบบ workflow ใหม่ที่ไม่บังคับให้ผู้ใช้จำว่า “ต้องใส่ FALSE ทุกครั้ง” แต่กลับทำให้สูตรตรงกับ *mental model* ของผู้ใช้ทันที
.
ถ้าเอาไปสอนนักเรียนหรือทำ infographic:
.
- ใช้ metaphor ว่า VLOOKUP เหมือน “เครื่องคิดเลขที่ตั้งค่า default เป็นการปัดเศษ” → ต้องกดปุ่มพิเศษเพื่อให้ได้ค่าตรง
- ส่วน XLOOKUP เหมือน “เครื่องคิดเลขรุ่นใหม่ที่ default เป็นการคำนวณตรงเป๊ะ” → ถ้าอยากปัดเศษค่อยเลือกเอง
.
---