Contact
Line : comsiam
Contact
Line : comsiam

หลายคนใช้ Excel 365 แล้วเจออาการ พิมพ์ช้า กด Enter แล้วค้าง ไฟล์หน่วง CPU พุ่ง หรือเปิดไฟล์แล้วคิดงานนาน ทั้งที่จำนวนสูตรไม่ได้เยอะมาก สาเหตุลึก ๆ ที่คนมองข้ามบ่อยคือ Volatile Functions
ฟังก์ชันกลุ่มนี้จะ “คำนวณใหม่บ่อยกว่าปกติ” ทำให้ Workbook หนักทันทีเมื่อไฟล์เริ่มใหญ่ บทความนี้จะพาคุณรู้จักตัวการ และแก้ให้ไฟล์กลับมาเร็วขึ้น
คือฟังก์ชันที่ Excel จะคำนวณใหม่เมื่อมีการเปลี่ยนแปลงเกือบทุกครั้ง แม้ข้อมูลที่เกี่ยวข้องไม่ได้เปลี่ยนโดยตรง
แปลตรง ๆ คือ “ขยับนิดเดียว ก็คิดใหม่”
ถ้ามีจำนวนมาก ไฟล์จะช้าชัดเจน
เพราะสูตรธรรมดาจะคิดเฉพาะส่วนที่เกี่ยวข้อง แต่ Volatile จะสั่งคำนวณใหม่บ่อยมาก
เช่น ไฟล์มี
แค่แก้ค่า 1 จุด ก็มีโอกาสคิดใหม่จำนวนมาก
กด:
Ctrl + F
ค้นหาคำเหล่านี้ทีละคำ
TODAY(
NOW(
OFFSET(
INDIRECT(
RAND(
ถ้าเจอเยอะ แปลว่าน่าจะเป็นสาเหตุ
ใช้บ่อยกับวันหมดอายุ อายุงาน วันครบกำหนด
ตัวอย่าง:
=TODAY()-A2
ถ้ามีหลายพันแถว จะคำนวณใหม่ทุกครั้ง
ใส่วันที่ปัจจุบันไว้ 1 ช่อง เช่น B1 แล้วอ้างอิงแทน
=$B$1-A2
ตัวอย่าง:
=SUM(OFFSET(A1,0,0,100,1))
ใช้ INDEX หรือ Table แทน จะเร็วกว่า
ตัวอย่าง:
=INDIRECT("A"&B1)
ใช้ INDEX / XLOOKUP / CHOOSECOLS / Structured Reference แทนเมื่อทำได้
ถ้าไฟล์หนักมาก ให้ใช้วิธีนี้ก่อน
ไปที่:
Formulas > Calculation Options > Manual
เมื่อต้องการคำนวณ กด:
F9
ช่วยลดอาการหน่วงทันที
ตัวอย่างผิด
TODAY() ทุกแถว 10,000 แถว
ใส่ TODAY() แค่ 1 ช่อง แล้วทุกสูตรอ้างอิงช่องนั้น
จาก 10,000 สูตร เหลือ 1 สูตร
กด:
Ctrl + T
แล้วใช้สูตรแบบ Table Reference จะจัดการง่ายและลดสูตรมั่วในหลายกรณี
กด:
Ctrl + Shift + Esc
ดูว่า Excel ใช้ CPU สูงตอนพิมพ์หรือไม่ ถ้าสูงมาก มักเกี่ยวกับสูตรกลุ่มนี้
ถ้าใช้ไฟล์องค์กร ร้านแห้งดีอาหารแห้ง หรือระบบติดตามยอดขาย
ควรทำแบบนี้
ไม่ช้า แต่หลายพันสูตรเริ่มมีผล
ไม่ใช่ Volatile โดยตรง
ปลอดภัย แต่ต้องจำกด F9
ถ้า Excel 365 Workbook ช้าเพราะ Volatile Functions ให้ทำตามนี้
ส่วนใหญ่ความเร็วจะดีขึ้นชัดเจน
คุณสงสัยสูตรไหนในไฟล์ตอนนี้—TODAY(), OFFSET() หรือ INDIRECT()?