Excel ความเร็วแสง
หากมนุษยชาติมีภารกิจจะต้องเดินทางไปยังดวงดาวในอวกาศอันไกลโพ้น… พวกเขาจะทำอย่างไร?
เหล่านักบินอวกาศมีทางเลือกหลายทาง ตั้งแต่
- เดินทางไปเลย เตรียมเสบียงไปเต็มที่ กำลังใจมาเต็ม ซักวันคงเดินทางถึง!
- ตัดใจ ยอมแพ้กับภารกิจ อยู่บ้านเฉยๆ ดีกว่า
- พัฒนาวิธีเดินทางด้วยความเร็วแสงให้ได้!
ถ้าทำได้ทุกคนคงอยากจะเลือก ข้อ 3 จริงมั้ยครับ?
ในชีวิตของการใช้งาน Excel ก็เช่นกัน… หลายครั้งเราทำงานกับข้อมูลจำนวนมหาศาล
เปรียบได้กับภารกิจการเดินทางอันแสนไกลของนักบินอวกาศ…
เช่น ต้องใช้ VLOOKUP Map ข้อมูลที่มีหลายหมื่น หลายแสนบรรทัด คุณจะทำอย่างไร?
- นั่งรอไป ซักวันนึง เจ้า % Calculate จะกระดิกไปถึง 100% ในที่สุด พร้อมกับพลังในตัวของคุณที่หมดลง
- ไม่ยุ่งกับข้อมูลเยอะๆ เด็ดขาด
- เรียนรู้วิธีใช้เทคนิค Excel ความเร็วแสง!
Excel ความเร็วแสง คือเทคนิคหลายอย่างที่ผมจะรวบรวมไว้เป็น series เรื่องการทำงานใน Excel ให้เร็วขึ้นโดยเฉพาะ
แล้ววันนี้ผมจะนำเสนอเทคนิคเด็ด นั่นคือ วิธีการใช้ VLOOKUP ความเร็วแสงครับ ซึ่งแม้จะเคย Post เรื่อง VLOOKUP เร็ว 100 เท่า มาแล้ว แต่ขอเอามาขัดเกลาให้อ่านง่ายขึ้นอีกครั้ง อันนี้อ่าน 5-10 นาทีจบ ทำได้เลยแน่นอนครับ!
เทคนิค VLOOKUP ความเร็วแสง
เทคนิคในบทความนี้จะเน้นว่ากันด้วยวิธีปฏิบัติล้วนๆ ทฤษฎีใส่ให้บางๆ เท่านั้ย หากอยากเข้าใจที่มาที่ไปแบบละเอียด สามารถไปอ่านใน Post เก่าได้นะครับ
เอาล่ะ จะ VLOOKUP ให้เร็วขึ้นทำได้ยังไง? ก่อนอื่น ต้องเข้าใจว่า VLOOKUP มี 2 แบบ คือ
- แบบ Approximate Match (เลือก Range Lookup เป็น TRUE หรือ 1) ซึ่งทำงานเร็วมาก และสามารถให้ผลลัพธ์ที่ไม่ตรงกับ Lookup_Value มาได้ด้วย ข้อควรระวังคือ คอลัมน์แรกของตารางอ้างอิงต้องเรียงจากน้อยไปมากเท่านั้น
- แบบ Exact Match (เลือก Range Lookup เป็น FALSE หรือ 0) ซึ่งทำงานช้ามาก แต่ให้ผลลัพธ์แม่นยำ
เรื่องของเรื่องคือ เวลาคนส่วนใหญ่ Map ข้อมูลแบบต้องให้ผลลัพธ์เป๊ะๆ ก็จะใช้แบบ Exact Match นี่แหละ (เพราะมันแม่น) แต่ผมจะบอกว่าถ้าข้อมูลมีเยอะมาก คุณควรใช้แบบ Approximate Match แทนครับ!
หลักการคือ
- เรียงข้อมูลในตารางอ้างอิง ให้คอลัมน์แรก (ที่เอา Lookup Value ไปหา) เรียงจากน้อยไปมากก่อน (สำคัญสุดๆ!!!)
- เขียนสูตร VLOOKUP แบบ Approx. เพื่อดึงค่าคอลัมน์ที่ต้องการกลับมา
- เขียนว่า =VLOOKUP(คำค้นหา,ตารางอ้างอิง,คอลัมน์ที่ต้องการ,TRUE)
ผลลัพธ์จะคำนวณร็วมาก แต่บางบรรทัดจะผิด คือ ควรจะเป็น #N/A แต่ให้ค่าเกินมา
- เขียนว่า =VLOOKUP(คำค้นหา,ตารางอ้างอิง,คอลัมน์ที่ต้องการ,TRUE)
- เราแก้จุดผิด โดยการใช้ VLOOKUP แบบ Approx. ดึงค่าคอลัมน์แรกกลับมาเช็คกับ Lookup Value มาตรงกันหรือไม่?
โดยใช้ IF มาช่วยเช็คว่าถ้าตรงกันแสดงว่าเป็นค่าที่เชื่อถือได้ ถ้าไม่ตรงกันแสดงว่าไม่ควรใช้- เขียนดึงคอลัมน์แรก =VLOOKUP(คำค้นหา,ตารางอ้างอิง,1,TRUE)
- เช็คว่าตรงกับ Lookup Value หรือไม่? ว่า =VLOOKUP(คำค้นหา,ตารางอ้างอิง,1,TRUE)=คำค้นหา
- ถ้าตรงเชื่อได้ ถ้าไม่ตรงเชื่อไม่ได้
- เชื่อได้ ต้องเอาค่าคอลัมน์ที่ต้องการกลับมา =VLOOKUP(คำค้นหา,ตารางอ้างอิง,คอลัมน์ที่ต้องการ,TRUE)
- เชื่อไม่ได้ ให้เป็น #N/A โดย =NA()
สรุปสูตรสุดท้าย
=IF(VLOOKUP(คำค้นหา,ตารางอ้างอิง,1,TRUE)=คำค้นหา,VLOOKUP(คำค้นหา,ตารางอ้างอิง,คอลัมน์ที่ต้องการ,TRUE),NA())
ตัวอย่าง
ในช่อง B11 ผมเขียนสูตรได้ว่า
=IF(VLOOKUP(คำค้นหา,ตารางอ้างอิง,1,TRUE)=คำค้นหา,VLOOKUP(คำค้นหา,ตารางอ้างอิง,คอลัมน์ที่ต้องการ,TRUE),NA())
=IF(VLOOKUP(A11,$A$1:$B$6,1,TRUE)=A11,VLOOKUP(A11,$A$1:$B$6,2,TRUE),NA())
จะได้ผลลัพธ์เป็น สมกอตต์ ถูกต้องครับ! และถ้าเป็น B10 ก็จะต้อง #N/A ถูกต้อง เช่นกัน เพราะไม่มีค่า p002x ในตารางอ้างอิง
ก่อนจากกัน
เป็นยังไงบ้างครับกับเทคนิค VLOOKUP เร็วความเร็วแสง หากมีตรงไหนไม่เข้าใจก็ถามได้ครับ
และหากถูกใจ อย่าลืมบอกเพื่อนๆ ให้มาวิ่งไปสู่จุดหมายด้วยความเร็วแสงด้วยกันนะครับ !!
Warp !!