Excel ความเร็วแสง

หากมนุษยชาติมีภารกิจจะต้องเดินทางไปยังดวงดาวในอวกาศอันไกลโพ้น… พวกเขาจะทำอย่างไร?

เหล่านักบินอวกาศมีทางเลือกหลายทาง ตั้งแต่

  1. เดินทางไปเลย เตรียมเสบียงไปเต็มที่ กำลังใจมาเต็ม ซักวันคงเดินทางถึง!
  2. ตัดใจ ยอมแพ้กับภารกิจ อยู่บ้านเฉยๆ ดีกว่า
  3. พัฒนาวิธีเดินทางด้วยความเร็วแสงให้ได้!

ถ้าทำได้ทุกคนคงอยากจะเลือก ข้อ 3 จริงมั้ยครับ?

ในชีวิตของการใช้งาน Excel ก็เช่นกัน… หลายครั้งเราทำงานกับข้อมูลจำนวนมหาศาล
เปรียบได้กับภารกิจการเดินทางอันแสนไกลของนักบินอวกาศ…
เช่น ต้องใช้ VLOOKUP Map ข้อมูลที่มีหลายหมื่น หลายแสนบรรทัด คุณจะทำอย่างไร?

  1. นั่งรอไป ซักวันนึง เจ้า % Calculate จะกระดิกไปถึง 100% ในที่สุด พร้อมกับพลังในตัวของคุณที่หมดลง
  2. ไม่ยุ่งกับข้อมูลเยอะๆ เด็ดขาด
  3. เรียนรู้วิธีใช้เทคนิค Excel ความเร็วแสง!

Excel ความเร็วแสง คือเทคนิคหลายอย่างที่ผมจะรวบรวมไว้เป็น series เรื่องการทำงานใน Excel ให้เร็วขึ้นโดยเฉพาะ

แล้ววันนี้ผมจะนำเสนอเทคนิคเด็ด นั่นคือ วิธีการใช้ VLOOKUP ความเร็วแสงครับ ซึ่งแม้จะเคย Post เรื่อง VLOOKUP เร็ว 100 เท่า มาแล้ว แต่ขอเอามาขัดเกลาให้อ่านง่ายขึ้นอีกครั้ง อันนี้อ่าน 5-10 นาทีจบ ทำได้เลยแน่นอนครับ!

เทคนิค VLOOKUP ความเร็วแสง

เทคนิคในบทความนี้จะเน้นว่ากันด้วยวิธีปฏิบัติล้วนๆ ทฤษฎีใส่ให้บางๆ เท่านั้ย หากอยากเข้าใจที่มาที่ไปแบบละเอียด สามารถไปอ่านใน Post เก่าได้นะครับ

เอาล่ะ จะ VLOOKUP ให้เร็วขึ้นทำได้ยังไง? ก่อนอื่น ต้องเข้าใจว่า VLOOKUP มี 2 แบบ คือ

  1. แบบ Approximate Match (เลือก Range Lookup เป็น TRUE หรือ 1) ซึ่งทำงานเร็วมาก และสามารถให้ผลลัพธ์ที่ไม่ตรงกับ Lookup_Value มาได้ด้วย ข้อควรระวังคือ คอลัมน์แรกของตารางอ้างอิงต้องเรียงจากน้อยไปมากเท่านั้น
  2. แบบ Exact Match (เลือก Range Lookup เป็น FALSE หรือ 0) ซึ่งทำงานช้ามาก แต่ให้ผลลัพธ์แม่นยำ

เรื่องของเรื่องคือ เวลาคนส่วนใหญ่ Map ข้อมูลแบบต้องให้ผลลัพธ์เป๊ะๆ ก็จะใช้แบบ Exact Match นี่แหละ (เพราะมันแม่น) แต่ผมจะบอกว่าถ้าข้อมูลมีเยอะมาก คุณควรใช้แบบ Approximate Match แทนครับ!

หลักการคือ

  1. เรียงข้อมูลในตารางอ้างอิง ให้คอลัมน์แรก (ที่เอา Lookup Value ไปหา) เรียงจากน้อยไปมากก่อน (สำคัญสุดๆ!!!)
  2. เขียนสูตร VLOOKUP แบบ Approx. เพื่อดึงค่าคอลัมน์ที่ต้องการกลับมา
    • เขียนว่า =VLOOKUP(คำค้นหา,ตารางอ้างอิง,คอลัมน์ที่ต้องการ,TRUE)
      ผลลัพธ์จะคำนวณร็วมาก แต่บางบรรทัดจะผิด คือ ควรจะเป็น #N/A แต่ให้ค่าเกินมา
  3. เราแก้จุดผิด โดยการใช้ VLOOKUP แบบ Approx. ดึงค่าคอลัมน์แรกกลับมาเช็คกับ Lookup Value มาตรงกันหรือไม่?
    โดยใช้ IF มาช่วยเช็คว่าถ้าตรงกันแสดงว่าเป็นค่าที่เชื่อถือได้ ถ้าไม่ตรงกันแสดงว่าไม่ควรใช้

    • เขียนดึงคอลัมน์แรก =VLOOKUP(คำค้นหา,ตารางอ้างอิง,1,TRUE)
    • เช็คว่าตรงกับ Lookup Value หรือไม่? ว่า =VLOOKUP(คำค้นหา,ตารางอ้างอิง,1,TRUE)=คำค้นหา
  4. ถ้าตรงเชื่อได้ ถ้าไม่ตรงเชื่อไม่ได้
    1. เชื่อได้ ต้องเอาค่าคอลัมน์ที่ต้องการกลับมา =VLOOKUP(คำค้นหา,ตารางอ้างอิง,คอลัมน์ที่ต้องการ,TRUE)
    2. เชื่อไม่ได้ ให้เป็น #N/A โดย =NA()

สรุปสูตรสุดท้าย
=IF(VLOOKUP(คำค้นหา,ตารางอ้างอิง,1,TRUE)=คำค้นหา,VLOOKUP(คำค้นหา,ตารางอ้างอิง,คอลัมน์ที่ต้องการ,TRUE),NA())

ตัวอย่าง

vlookup100x

ในช่อง 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 !!