
ต้องทำความเข้าใจอย่างหนึ่งครับว่า สูตร =OFFSET(itemmaster!$B$2,1,0,COUNTA(itemmaster!$B:$B)-1,1) ที่เราใช้ใน rangname นั้น ข้อมูลในชีท itemmaster จะต้องไม่มีช่องว่าง
เช่น มีข้อมูลจาก B2:B20 แต่มีช่องว่างที่เซลล์ B2 สูตรก็จะทำงานผิดพลาดทันทีครับ
เพราะสูตร Counta จะนับข้อมูลทั้งหมดก่อนว่ามีทั้งหมดเท่าไหร่ พอนับมาได้แล้ว มันก็จะกำหนดช่วงตามที่มันนับได้
ดังนั้น หากคุณบันทึกข้อมูลตั้งแต่ B2:B20 แต่ที่ B2 เป็นค่าว่าง สูตรมันจะนับค่าได้ทั้งหมด 19 ค่า มันจะกำหนดพื้นที่ขึ้นมาจาก B2:B19 เท่านั้น ซึ่งอันที่จริงแล้ว มีข้อมูลถึง B20 ต่างหาก
ดังนั้น การทำ RangeName แบบ Auto อย่าลืมจุดนี้ครับ การเก็บข้อมูลแบบ Database ต้องไม่มีช่องว่างในตารางเด็ดขาด ต้องมีค่าเสมอครับ
ผมดูที่ไฟล์แนบ เห็นข้อมูลลงมาอยู่ข้างล่าง โดยด้านบนเว้นว่างไว้ นั่นคือจุดผิดพลาดครับ
แนะนำอีกนิดครับ ไม่ควรใช้สูตร =IFERROR(VLOOKUP($B8,itemmaster!B:D,3,0)," ") โดยการอ้าง B:D ทั้งคอลัมน์ มันจะทำให้การทำงานสูตรช้า
ทางที่ดีหากใช้ Rangename แล้ว ก็ควรทำให้เหมือนกันทั้งหมด เปลี่ยนจากการใช้ Vlookup มาใช้ Index+match แทนครับ
ลองดูตัวอย่างตามไฟล์แนบครับ