คุณไม่ได้อ่านผิดหรอกครับ

คนเก่ง Excel ทำงานช้า !

อืมม์.. ผมอาจจะเขียนตกไปนิด

ถ้าให้ถูกจริงๆ ต้องเขียนว่า

คนเก่ง Excel ทำงาน (ที่เคยทำครั้งแรก) ช้า

14308078_s.jpg

เวลาคนเก่งเอ็กเซลทำงานอะไรที่ทำครั้งแรก เค้าจะใช้เวลามากกว่าคนที่ไม่เก่งเอ็กเซลทำเสียอีก

จนหลายคนอดคิดในใจ(ดังๆ)ไม่ได้ว่า..

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

ที่มันนาน เพราะเค้าจะเขียนสูตรอะไรไม่รู้ตั้งเยอะแยะ สร้างตารางอ้างอิงอีกหลายตาราง ลิงค์สูตรนู่นนั่นนี่ เพิ่มขั้นตอนจุ๊กจิ๊กจิปาถะ

นั่นเป็นเพราะ ผลพวงจากคำถาม 4 ข้อ ที่ประกอบด้วยคำว่า “ถ้า” และ “พรุ่งนี้” แบบนี้ครับ

1 ถ้าพรุ่งนี้ข้อมูลเพิ่มขึ้นล่ะ?

เค้าจะคิดว่า วันนี้มีข้อมูลแค่ 20 แถว อาจเขียนสูตรครอบคลุมแค่แถวที่ 20 ได้

แล้วถ้าพรุ่งนี้ข้อมูลเพิ่มขึ้นเป็น 20,000 แถวล่ะ ต้องเขียนสูตรใหม่หรือเปล่า?

ด้วยคำถามนี้เอง เค้าจึงเขียนสูตรแบบไดนามิกส์เพื่อรองรับข้อมูลที่เพิ่มขึ้น เช่น

  • ตั้งชื่อช่วงข้อมูลโดยใช้ Defined Name และนำฟังก์ชั่น OFFSET กับ INDIRECT มาช่วย เพื่อให้มันอัตโนมั๊ติ อัตโนมัติ
  • เปลี่ยนฟอร์แมตให้เป็น Table (Format as table, Ctrl+T) จนทำให้ข้อมูลแต่ละแถวมีลายสลับ (Banded Row) แบบนี้

Banded Row

ครั้งหน้า ต่อให้ข้อมูลมีเป็น 100,000 บรรทัดก็ไม่ต้องเขียนสูตรใหม่แล้วครับ ^_^

อ้อ! ถ้าไม่จำเป็น ผมไม่แนะนำให้เขียนสูตรอ้างอิงข้อมูลทั้งคอลัมน์ เช่น =VLOOKUP(J5,$A:$E,3,0) นะครับ เพราะทำให้คำนวณช้า(มาก)

ยิ่งถ้าข้อมูลหากันไม่เจอ ยิ่งทำให้ช้ายกกำลังสอง

2 ถ้า “ค่าคงที่” ของพรุ่งนี้ไม่เหมือนเดิมล่ะ?

ถ้าสรุปข้อมูลวันนี้ คำว่า “ปีนี้” คือ ปี 2017

แต่ถ้าสรุปข้อมูลพรุ่งนี้ คำว่า “ปีนี้” คือ ปี 2018

แปลว่าใส่ตัวเลข 2017 ลงไปในสูตรไม่ได้!

เพราะไม่งั้น พอเปลี่ยนปี ก็ต้องแมนวลเปลี่ยนตัวเลขทุกครั้งร่ำไป

แล้วถ้าลืมขึ้นมาล่ะ…

ซวยอี๊ก!

ในทางเดียวกัน “ปีที่แล้ว” ของปีนี้คือปี 2016

แต่ “ปีที่แล้ว” ของปีหน้า จะกลายเป็นปี 2017 (2018-1)

แปลว่าไม่สามารถใส่ค่า 2016 ให้เป็น “ปีที่แล้ว” ในสูตรได้

ต้องนำฟังก์ชั่นที่เกี่ยวกับการอ้างอิงมาช่วย เช่น

  • VLOOKUP
  • INDEX + MATCH

สูตรอาจจะยาวขึ้น แต่เชื่อเถอะครับว่าคุ้มค่าในระยะยาวแน่นอน ^__^

3 ถ้าพรุ่งนี้ขออะไรเพิ่ม(อีก)ล่ะ?

วันนี้ขอดูข้อมูลเป็นรายเดือนก็จริง

แต่ถ้าพรุ่งนี้ขอดูข้อมูลเป็นรายไตรมาสล่ะ?

ถ้าพรุ่งนี้ขอข้อมูลสะสมจากต้นปีถึงเดือนนี้ (Year-to-date, YTD) ล่ะ?

ถ้าพรุ่งนี้ขอดูข้อมูลย้อนหลัง 5 ปี ล่ะ?

ถ้าพรุ่งนี้ขอข้อมูลเปรียบเทียบข้อมูลกับปีที่แล้วล่ะ?

คนเก่ง Excel เค้าจะคิดในหัวแล้วว่า

งั้นทำเผื่อไว้เลยดีไหม?

ออกแบบเป็น Pivot Table เลยดีไหม?

หรือ อาจถึงขั้นออกแบบการเก็บข้อมูลอินพุตใหม่ เพื่อรองรับความต้องการที่อาจเพิ่มขึ้นในอนาคต แล้วก็สร้างตารางอ้างอิงเพิ่มขึ้นอีกหลายตาราง ลิงค์กันอุตลุต ชุลมุนวุ่นวาย

เรียกได้ว่า มีงานเพิ่มขึ้นอีกเป็นกอง

แต่เร็วกว่ามานั่งทำใหม่ทุกครั้งแน่นอน ^__^

4 ถ้าพรุ่งนี้ต้องทำแบบเดิมอีกล่ะ?

ถ้ามีขั้นตอนทำงานที่ต้องแมนวลสเต็ปเดิมๆซ้ำๆ เค้าจะ “ขี้เกียจ” ทำแบบนั้นอีกครั้งครับ

เค้าจะหาทางเปลี่ยนวิธีจาก อัตโนมือ เป็น อัตโนมัติ ด้วยการเขียนคำสั่ง VBA

ครั้งแรกอาจใช้เวลาหลายชั่วโมง หรือหลายวัน

แต่ครั้งหน้า ใช้เวลาแค่ไม่กี่วินาทีก็เสร็จครับ ^__^

.

ถ้าไม่มีเจ้า 4 คำถามนี้ การทำแมนวลอาจเร็วกว่าก็ได้

แต่ส่วนใหญ่แล้วมันจะมีน่ะสิ

แถมมีหลายข้อด้วย !

(ฮั่นแน! แอบพยักหน้าเลยนะ ^^)

เพราะฉะนั้น การเขียนสูตรอะไรที่ดูเหมือนวุ่นวาย การสร้างตารางอ้างอิงนู่นนั่นนี่ที่ดูเหมือนเป็นการเพิ่มขั้นตอน

นั่นคือการ “ลงทุน” ของคนๆนั้น เพราะเค้าคิดว่าคุ้มค่าในระยะยาวแน่นอน

.

สำหรับผมเอง ผมก็มักจะ “ลงทุน” ครับ

เพราะตอนแรกก็บอกว่าขอครั้งเดียว

แต่พอได้ไปซักครั้งเท่านั้นล่ะ “ติดใจ” ขอใหม่ทุกเดือน

ไหนตอนแรกบอกขอแค่ครั้งเดียวไง!

อ่ะโด่.. ดีนะที่ไม่เชื่อ ^^

.

อย่างไรก็ตาม ก่อนจะลงทุน เราต้องตรวจสอบก่อนว่า

งานนี้มีโอกาสทำซ้ำอีกไหม?

งานนี้เป็นข้อมูลอ้างอิงให้งานอื่นๆได้ไหม?

การลงทุนบางครั้งอาจใช้เวลา 3 วัน ถ้าทำแมนวลมืออาจใช้เวลาแค่ 3 ชั่วโมง

ถ้าไม่มีโอกาสทำซ้ำเลย การลงทุน 3 วันเพื่อประหยัดเวลา 3 ชั่วโมง อาจไม่ใช่แนวทางที่ถูกต้องก็ได้

เพราะการ “ลงทุน” มีความเสี่ยง โปรดศึกษาข้อมูลก่อนตัดสินใจทุกครั้ง ^__^

.

หากคุณชอบบทความแนวนี้ สามารถอัพเดตบทความใหม่ๆโดยคลิก Like เฟสบุ๊คแฟนเพจ วิศวกรรีพอร์ต หรือคลิก ที่นี่

อย่าลืมแชร์ให้เพื่อนอ่านเพื่อเป็นกำลังใจให้คนเขียนด้วยนะครับ ^_^