Excel จะคำนวณหาคำตอบได้เร็วขึ้น เมื่อแยกส่วนที่ต้องใช้ซ้ำออกมาให้คิดเพียงครั้งเดียวครับ เช่น ถ้าต้องสร้างสูตร 1+2 แบบนี้ลงไปในหลายๆเซลล์ Excel ต้องเสียเวลาคำนวณ 1+2 ซ้ำตั้ง 3 ครั้ง
=1+2+3
=1+2+4
=1+2+5
แทนที่จะทำแบบนี้ ให้แยกส่วนที่ต้องคิดซ้ำออกมาใส่ลงไปในเซลล์หนึ่ง เช่น A1 =1+2 เพื่อให้ Excel คิดเพียงครั้งเดียว จากนั้นจึงลิงก์ไปสร้างสูตร
=A1+3
=A1+4
=A1+5
วิธีนี้ Excel จะคำนวณเร็วขึ้นมาก
ทำนองเดียวกัน ถ้าสร้างสูตร Index ซ้อนกับ Match แบบนี้ จะทำให้ Excel เสียเวลาคิดสูตร Match ซ้ำ
=Index(DataRange1, Match(Id, IdRange,0))
=Index(DataRange2, Match(Id, IdRange,0))
=Index(DataRange3, Match(Id, IdRange,0))
ถ้าต้องการให้ Excel คำนวณเร็วขึ้น ให้แยก Match ออกมาให้คิดเพียงครั้งเดียวแล้วลิงก์ผลลัพธ์ไปใช้ต่อใน Index แบบนี้
A1 =Match(Id, IdRange,0) แล้วลิงก์ไปใช้กับ Index
=Index(DataRange1, A1)
=Index(DataRange2, A1)
=Index(DataRange3, A1)
การสร้างแบบนี้แหละครับที่ผมเรียกว่า Match+Index (ไม่ใช่ Index+Match) ซึ่งย่อมคำนวณเร็วกว่า XLookup เพราะ XLookup แต่ละสูตรต้องเสียเวลาไปเทียบหาตำแหน่งซ้ำก่อนเสมอแล้วจึงนำไปเทียบหาค่าจากพื้นที่คำตอบที่ต้องการ
หลักนี้มีอยู่ว่า "อย่านำของกลางไปใช้ส่วนตัว" ครับ
ให้ใช้หลักนี้กับการคำนวณทุกอย่าง ไม่ใช่แค่ Match Index นี้เท่านั้น บางครั้งของกลางอาจต้องใช้ทั้งตาราง หรือทั้งชีท หรือทั้งแฟ้มที่มีสูตรยาวเหยียดหลายเซลล์เพื่อหาผลลัพธ์ จากนั้นจึงลิงก์ผลที่ได้ไปใช้ต่อ
ดูคำแนะนำของไมโครซอฟท์ได้จาก https://learn.microsoft.com/en-us/office/vba/excel/concepts/excel-performance/excel-improving-calculation-performance