
ครับไม่ต้องสงสัยอื่นใด หากเป็นเช่นที่บอกมาก็เป็นเพราะสูตรแหละครับ ยิ่งเป็นสูตร Array ด้วยก็จะเป็นตัวดึงให้ช้าลง
ปกติการใช้สูตรใด ๆ ก็ตามควรใช้ให้กระชับที่สุด ยกตัวอย่างเช่นขอบเขตข้อมูลมีแค่ไหนก็ใช้เท่านั้นและไม่ต้องลากสูตรเผื่อไว้ การกำหนดขอบเขตข้อมูลก็ควรจะใช้การให้ชื่อกับช่วงเซลล์เข้ามาช่วยเพื่อให้ช่วงข้อมูลในสูตรปรับเพิ่มลดตามจำนวนที่มี
กรณีการใช้สูตรแบบเผื่อช่วงข้อมูลกับการกำหนดช่วงข้อมูลเพียงเท่าที่มี ยกตัวอย่างอย่างเช่น
=Vlookup(A1,
A:Z,10,0) กับ Vlookup(A1,
A1:Z1000,10,0)
ให้ความเร็วที่ต่างกันอย่างมาก
นอกจากนี้การใช้สูตรซ้ำ ๆ กันควรแยกออกมาต่างหาก ยกตัวอย่างเช่น
=Index(A:A,Match(
Today()+B1,B:B,0)) แล้ว Copy ลงไปจำนวนมาก จะต่างกับ =Index(A:A,Match(
$C$1+B1,B:B,0)) ความเร็วจะต่างกันอย่างมากมายมหาศาล สำหรับกรณีที่สองเป็นการคี่ย์ Today() ไว้ที่ C1 แล้วค่อยนำไปใช้ ส่วนกรณีแรกเป็นการคีย์สูตร Today() ทุกสูตร
ฟังก์ชั่น Today และอื่น ๆ อีกมากมายเป็น Volatile Function คือถูกกระทบให้เปลี่ยนแปลงได้โดยง่าย แม้การขยับความกว้างเซลล์ใด ๆ ก็คำนวณทันที หากใช้จำนวนมากทำให้การคำนวณช้ามาก Volatile ฟังก์ชั่นสามารถดูเพิ่มเติมจากที่นี่ครับ
http://www.decisionmodels.com/calcsecretsi.htm