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

คนเก่งเอ็กเซลทำงานช้า

อืมม์.. ถ้าจะให้ถูก ต้องเขียนว่า

คนเก่งเอ็กเซลทำงาน (ที่เคยทำครั้งแรก) ช้า

14308078_s.jpg

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

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

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

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

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

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

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

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

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

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

Banded Row

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

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

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

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

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

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

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

แล้วถ้าลืมขึ้นมาล่ะ ซวยอี๊ก!

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

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

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

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

  • VLOOKUP
  • INDEX + MATCH

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.

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

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

แถมมีหลายข้อเสียด้วย ฮ่วย!

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

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

.

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

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

ตอนแรกบอกว่าขอแค่ครั้งเดียว ดีนะที่ไม่เชื่อ ^^

.

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

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

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

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

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

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

.

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

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