รู้หรือไม่ว่า บางเรื่องแม้ดูเหมือนง่าย และน่าจะเป็นไปตาม Common Sense ของเรา ในความเป็นจริง Excel อาจไม่ได้ทำงานแบบที่เราคิดก็ได้ จนในที่สุดก็ทำให้เกิดความผิดพลาดได้…

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

หลายๆ เรื่องในนี้ผมเคยสรุปไว้ให้ในหนังสือ Excel Level Up! ไปแล้ว (บางเรื่องก็ยังไม่เคยพูด) ก็เลยขอนำมาพูดสรุปให้อีกทีแล้วกันครับ ^^

เรื่องที่ 1 : ตัวพิมพ์ใหญ่ = ตัวพิมพ์เล็ก

strange01fix

เรื่องนี้หลายคนอาจไม่ได้สังเกต เพราะดูเป็นเรื่องง่ายๆ แค่ใช้เครื่องหมายเท่ากับ ซึ่งตามหลัก Common Sense แล้ว เครื่องหมายเท่ากับก็เอาไว้เช็คว่าสองช่องมันเท่ากันรึเปล่า… ไม่ใช่เหรอไง?

แต่คำว่าเท่ากันของ Excel มันกลับมองว่าตัวพิมพ์ใหญ่ตัวพิมพ์เล็กไม่มีผลครับ ดังนั้นมันจึงมองคำว่า Dog และ dog ว่าเท่ากันด้วยเครื่องหมายเท่ากับซะงั้น! (ตามรูปให้ผลเป็น TRUE)

ทางแก้ หากเราต้องการเช็คว่ามันท่ากันเป๊ะๆ รึเปล่า แบบสนใจตัวพิมพ์เล็กพิมพ์ใหญ่ด้วย เราต้องใช้ฟังก์ชั่น EXACT มาช่วยครับ ซึ่งตามรูปจะได้ผลเป็น FALSE

เรื่องที่ 2 : เมื่อ 50 อาจไม่เท่ากับ 50

strange02fix

บางทีสิ่งที่เราเห็น อาจไม่ใช่สิ่งที่เป็นจริง เลข 50 เหมือนกันแท้ๆ กลับสามารถให้ผลลัพธ์เป็น FALSE ซึ่งบ่งบอกว่าไม่เท่ากันได้ด้วย

สาเหตุมาจากทั้งสองช่องนี้มีประเภทของข้อมูลที่ต่างกันนั่นเอง ซึ่งวิธีเช็คประเภทของข้อมูลที่ดีที่สุดคือใช้ฟังก์ชั่น TYPE มาช่วยเช็คครับ

เรื่องที่ 3 : ฟังก์ชั่น NPV ห้ามใส่ Cashflow ปีที่0

หลายๆ คนที่เคยผ่านวิชาทางด้านการเงินมา น่าจะคุ้นๆ กับคำศัพธ์ที่มีชื่อเท่ๆว่า NPV (Net Present Value) มาบ้างแล้วล่ะ แต่สำหรับคนที่ไม่รู้จัก ผมก็อยากจะลองแนะนำให้ไปศึกษาดูนะครับ เพราะมันเป็นตัวสามารถช่วยบอกได้ว่าโปรเจคหรือการลงทุนที่เรากำลังสนใจนั้น น่าลงทุนหรือไม่? ซึ่งมีประโยชน์มั่กๆ

โดยวิธีการตีความคือ ถ้า NPV มีค่ามากกว่า 0 ถือว่าน่าสนใจ (ภายใต้ Discount Rate หรืออัตราค่าเสียโอกาสของเงินที่กำหนด) แต่ประเด็นไม่ใช่ตรงนี้ครับ

strange03

ประเด็นที่ควรระวังคือ เจ้าฟังก์ชั่น NPV ใน Excel เนี่ย เวลาลากช่วง Cashflow ห้ามใส่ Cashflow ปีที่ 0 เข้าไปด้วยเด็ดขาด โดยเมื่อคำนวณด้วยฟังก์ชั่น NPV เสร็จแล้ว ให้เอาค่าที่ได้มาบวกด้วย Cashflow ปีที่ 0 อีกที ถึงจะได้ NPV ที่ตรงกับตำราทางการเงินครับ

เรื่องที่ 4 : WORKDAY + NETWORKDAYS <> End Date

strange04

คราวนี้เป็นเรื่องของฟังก์ชั่นเกี่ยวกับวันที่บ้างครับ ซึ่งมีฟังก์ชั่น 2 ตัวที่ทำหน้าที่เกี่ยวกับเรื่องจำนวนวันทำงาน โดยมันทั้ง 2 ทำงานเหมือนเป็นพี่น้องกัน คือ

  • NETWORKDAYS ใช้เมื่อรู้วันเริ่ม และ รู้วันจบ อยากหาจำนวนวันทำการ
  • WORKDAY ใช้เมื่อรู้วันเริ่ม และระยะเวลาวันทำการ เอาไว้หาวันจบ

แต่ที่แปลกคือ ถ้าลองเอา WORKDAY มาใช้วันเริ่มเดียวกันกับ NETWORKDAYS แต่บวกจำนวนวันทำการที่ได้จาก NETWORKDAYS เข้าไป มันกลับได้วันจบเป็นคนละวันกันซะงั้น!

สาเหตุเพราะว่า ไอ้ฟังก์ชั่น 2 ตัวนี้ ดันมีเกณฑ์การนับวันไม่เหมือนกัน โดย NETWORKDAYS จะนับวันเริ่มด้วยเสมอ ส่วน WORKDAY ไม่นับวันเริ่มนั่นเอง

เรื่องที่ 5 : ระวัง Calculated Field ใน Grand Total ของ PivotTable ให้ดี

สมมติว่าผมอยากคำนวณค่า Commission 10% ของยอดขาย โดยมีเงื่อนไขว่าต้องทำยอดขายรวมทุกสินค้าได้มากกว่า 3000 บาท จึงจะได้รับเงินนี้ไป

หากผมใช้ Calculated Field ใน PivotTable ผมสามารถใส่สูตร IF ซ้อนลงไปได้ว่า เอาา ถ้าบอดขายมากกว่า 3000 ก็ให้เอายอดขายไปคูณ 10% นะ ไม่งั้นก็ให้เป็น 0 ไป

strange06-1

สิ่งที่ออกมานั้นดูดีเลยครับ คือ Sales ง ที่ยอดขายไม่เกิน 3000 ก็อด Commission ไป แต่สิ่งที่แปลกสุดๆ คือ เจ้า Grand Total ของ Commission มันดันให้ค่าที่ผิดพลาด โดยได้ค่าไม่เท่ากับผลรวมของ Commission ของ Sales ทุกคน

สาเหตุเพราะเวลาที่ Excel คำนวณ มันดันเอาค่ายอดขาย Grand Total ไปใส่ใน IF แล้วเทียบว่าเกิน 3000 เลยเอา 10% ไปคูณตรงๆ ซะงั้น!! ผิดไปเลยครับแบบนี้

strange06-2

วิธีแก้ของเรื่องนี้ คือ อย่าไปสนใจ Grand Total … แต่ถ้าทำไม่ได้ ก็ต้องไปใช้วิธีอื่นแทน เช่น เขียนสูตรลงไปในตารางข้อมูลก่อนจะเอามา Pivot เลยก็ได้ โดยอาจใช้พวก SUMIFS มาช่วย เพื่อหายอดขายรวมราย Sales แต่ละคนให้ได้ว่าเกิน 3000 หรือไม่ เป็นต้น

เรื่องที่ 6 : VLOOKUP พัง!

ปัญหาเรื่อง VLOOKUP พังนี่เกิดได้จากหลายสาเหตุมากๆ ครับ ดังนี้

สาเหตุที่มักพบบ่อย

  1. ประเภทข้อมูลของ Lookup Value กับ ค่าคอลัมน์แรกใน Table_Array ไม่ตรงกัน
    strange05-1
    ทางแก้คือ ต้องทำให้ประเภทข้อมูลตรงกัน ไม่แก้ที่ตารางอ้างอิง ก็ต้องแก้ที่ lookup_value ครับ
  2. ไม่ได้ Fix ตำแหน่งตารางอ้างอิง (Table_Array)
    strange05-2
  3. เผลอใช้โหมด Approximate Match แทน Exact Match โดยไม่ได้เจตนา
    (เพราะ Approximate Match คือโหมด Default ถ้าไม่ได้ระบุ Argument สุดท้ายให้เป็น 0 หรือ FALSE)
    strange05-3
    ทางแก้คือ ต้องฝึกใส่ Argument สุดท้ายให้เป็นนิสัย และอย่าลืมสังเกตว่ามี #N/A ขึ้นมาบ้างมั้ย? ถ้าไม่มีเลยแสดงว่าน่าสงสัยละ 555
  4. มีการแทรกคอลัมน์ใน Table_Array หลังเขียนสูตร VLOOKUP ไปแล้ว
    strange05-4
    ตัวนี้มีทางแก้ที่ดีคือ ใช้ MATCH มาช่วยในส่วนของ Col_Index_Num แทนครับ เวลาแทรกคอลัมน์จะไม่ทำให้สูตรพัง เพราะ MATCH จะคอยหาว่าตอนนี้เป็นคอลัมน์ลำดับที่เท่าไหร่แล้ว

เรื่องที่ 7 : ไม่ได้ Calculate

เรื่องสุดท้าย เป็นเรื่องที่ไม่น่าจะผิด แต่ผมเจอบ่อยพอสมควร นั่นคือ เผลอไปตั้งค่าการคำนวณให้เป็นแบบ Manual แล้วลืมกด F9 เพื่อ Calculate!

strange07

หลายคนเขียนสูตรแล้วก็งงว่าทำไมผลลัพธ์ไม่เปลี่ยน หรือ ถ้าผิดรุนแรงบางทีอาจเผลอบอกคำตอบคนอื่น หรือส่งงานแบบผิดๆ โดยที่ Excel ยังไม่ทันคำนวณอะไรเลยก็ได้!!

หลายคนสงสัยว่า เฮ้ย! ตัวเองไม่เคยไปกดเปลี่ยนโหมดในการ Calculate ให้เป็น Manual เลย แล้วมันจะเกิดเหตุการณ์นี้ได้ยังไง? ผมมีคำตอบให้ครับ

วิธีที่ Excel ใช้ตัดสินใจโหมดในการทำงาน

หลักการสำคัญคือ ทุกไฟล์ที่เปิดอยู่ต้องอยู่ในโหมดการคำนวณแบบเดียวกันทั้งหมด ซึ่งมีรายละเอียดดังนี้calculation-mode-fix

  • เมื่อเปิดไฟล์แรกขึ้นมา Excel จะยึดเอาโหมดการคำนวณจากไฟล์นั้น (ที่ Save ไว้ล่าสุด) มาเป็นโหมดการคำนวณในปัจจุบัน
  • ไฟล์ที่เปิดตามหลังมาทั้งหมดจะยึดโหมดการคำนวณจากไฟล์แรกที่เปิด (เพราะเป็นโหมดการคำนวณปัจจุบัน)
  • เวลาเปลี่ยนโหมด Cal ที่ไฟล์ใดไฟล์หนึ่ง จะเป็นการเปลี่ยนโหมดการคำนวณของทุกไฟล์ที่เปิดอยู่ทั้งหมด และเปลี่ยนทุกชีทด้วย
  • ถ้าปิดไฟล์ทั้งหมดลงแล้วสร้างไฟล์ใหม่ขึ้นมา มันจะยึดตามโหมดการคำนวณล่าสุด
  • ถ้ามีการ Save ไฟล์ มันจะบันทึกโหมดการคำนวณล่าสุด ณ ปัจจุบันลงในไฟล์นั้น

สรุปมาจาก https://support.microsoft.com/en-us/kb/214395

เอาล่ะครับ ก็จบไปแล้วกับ 7 ข้อควรระวังใน Excel ที่คุณอาจเผลอทำผิดโดยไม่รู้ตัว! หวังว่าเมื่อรู้ “เจ็ด”ข้อนี้แล้ว จะไม่ทำให้คุณ”เจ็บ”ในการทำงานนะครับ

ขอให้โชคดี ทำงานเสร็จรวดเร็วและไม่ผิดพลาดนะครับ!