Excel 365 Workbook ช้าเพราะ Volatile Functions แก้ยังไง

หลายคนใช้ Excel 365 แล้วเจออาการ พิมพ์ช้า กด Enter แล้วค้าง ไฟล์หน่วง CPU พุ่ง หรือเปิดไฟล์แล้วคิดงานนาน ทั้งที่จำนวนสูตรไม่ได้เยอะมาก สาเหตุลึก ๆ ที่คนมองข้ามบ่อยคือ Volatile Functions

ฟังก์ชันกลุ่มนี้จะ “คำนวณใหม่บ่อยกว่าปกติ” ทำให้ Workbook หนักทันทีเมื่อไฟล์เริ่มใหญ่ บทความนี้จะพาคุณรู้จักตัวการ และแก้ให้ไฟล์กลับมาเร็วขึ้น


① Volatile Functions คืออะไร

คือฟังก์ชันที่ Excel จะคำนวณใหม่เมื่อมีการเปลี่ยนแปลงเกือบทุกครั้ง แม้ข้อมูลที่เกี่ยวข้องไม่ได้เปลี่ยนโดยตรง

แปลตรง ๆ คือ “ขยับนิดเดียว ก็คิดใหม่”


② ฟังก์ชัน Volatile ที่พบบ่อย

  • NOW()
  • TODAY()
  • RAND()
  • RANDBETWEEN()
  • OFFSET()
  • INDIRECT()
  • CELL() (บางกรณี)
  • INFO() (บางกรณี)

ถ้ามีจำนวนมาก ไฟล์จะช้าชัดเจน


③ อาการที่พบบ่อย

  • พิมพ์ค่า 1 ช่อง แต่ทั้งไฟล์หน่วง
  • CPU สูงเมื่อแก้ข้อมูล
  • Save ช้า
  • เปิดไฟล์ช้า
  • กด Filter แล้วหน่วง
  • Scroll แล้วกระตุก

④ ทำไม Volatile Functions ทำให้ช้า

เพราะสูตรธรรมดาจะคิดเฉพาะส่วนที่เกี่ยวข้อง แต่ Volatile จะสั่งคำนวณใหม่บ่อยมาก

เช่น ไฟล์มี

  • TODAY() 5,000 ช่อง
  • OFFSET() 3,000 ช่อง
  • INDIRECT() 2,000 ช่อง

แค่แก้ค่า 1 จุด ก็มีโอกาสคิดใหม่จำนวนมาก


⑤ วิธีเช็กว่าไฟล์มี Volatile Functions ไหม

กด:

Ctrl + F

ค้นหาคำเหล่านี้ทีละคำ

TODAY(
NOW(
OFFSET(
INDIRECT(
RAND(

ถ้าเจอเยอะ แปลว่าน่าจะเป็นสาเหตุ


⑥ ตัวร้ายอันดับต้น ๆ : TODAY() และ NOW()

ใช้บ่อยกับวันหมดอายุ อายุงาน วันครบกำหนด

ตัวอย่าง:

=TODAY()-A2

ถ้ามีหลายพันแถว จะคำนวณใหม่ทุกครั้ง

วิธีแก้

ใส่วันที่ปัจจุบันไว้ 1 ช่อง เช่น B1 แล้วอ้างอิงแทน

=$B$1-A2

⑦ OFFSET() ทำให้ไฟล์ช้าบ่อยมาก

ตัวอย่าง:

=SUM(OFFSET(A1,0,0,100,1))

วิธีแก้

ใช้ INDEX หรือ Table แทน จะเร็วกว่า


⑧ INDIRECT() สะดวกแต่หนัก

ตัวอย่าง:

=INDIRECT("A"&B1)

วิธีแก้

ใช้ INDEX / XLOOKUP / CHOOSECOLS / Structured Reference แทนเมื่อทำได้


⑨ เปลี่ยนเป็น Manual Calculation

ถ้าไฟล์หนักมาก ให้ใช้วิธีนี้ก่อน

ไปที่:

Formulas > Calculation Options > Manual

เมื่อต้องการคำนวณ กด:

F9

ช่วยลดอาการหน่วงทันที


⑩ ลดจำนวนสูตรซ้ำซ้อน

ตัวอย่างผิด

TODAY() ทุกแถว 10,000 แถว

วิธีดีกว่า

ใส่ TODAY() แค่ 1 ช่อง แล้วทุกสูตรอ้างอิงช่องนั้น

จาก 10,000 สูตร เหลือ 1 สูตร


⑪ ใช้ Excel Table ช่วยได้

กด:

Ctrl + T

แล้วใช้สูตรแบบ Table Reference จะจัดการง่ายและลดสูตรมั่วในหลายกรณี


⑫ ถ้าไฟล์ยังช้า ให้ดู CPU

กด:

Ctrl + Shift + Esc

ดูว่า Excel ใช้ CPU สูงตอนพิมพ์หรือไม่ ถ้าสูงมาก มักเกี่ยวกับสูตรกลุ่มนี้


⑬ เทคนิคงานจริง

ถ้าใช้ไฟล์องค์กร ร้านแห้งดีอาหารแห้ง หรือระบบติดตามยอดขาย

ควรทำแบบนี้

  • TODAY() 1 จุดกลางไฟล์
  • หลีกเลี่ยง INDIRECT
  • ใช้ Power Query แทน OFFSET บางงาน
  • แยก Data กับ Dashboard

⑭ คำถามที่พบบ่อย

Q: TODAY() 1 สูตร ช้าไหม?

ไม่ช้า แต่หลายพันสูตรเริ่มมีผล

Q: XLOOKUP เป็น Volatile ไหม?

ไม่ใช่ Volatile โดยตรง

Q: Manual Calculation ปลอดภัยไหม?

ปลอดภัย แต่ต้องจำกด F9


⑮ สรุป

ถ้า Excel 365 Workbook ช้าเพราะ Volatile Functions ให้ทำตามนี้

  1. ค้นหา TODAY / NOW / OFFSET / INDIRECT
  2. ลดจำนวนสูตรซ้ำ
  3. ใช้ค่ากลาง 1 ช่องแทนหลายพันสูตร
  4. เปลี่ยน OFFSET เป็น INDEX
  5. เปลี่ยนเป็น Manual Calculation
  6. แยกไฟล์ใหญ่เป็นระบบ

ส่วนใหญ่ความเร็วจะดีขึ้นชัดเจน

คุณสงสัยสูตรไหนในไฟล์ตอนนี้—TODAY(), OFFSET() หรือ INDIRECT()?