Dynamic Range 6 แบบด้วยสูตร Offset

สูตร Offset ช่วยหาพื้นที่ตารางที่ยืดได้ หดได้ และขยับย้ายที่ได้ เป็นสูตรที่ใช้หาค่าทั้งตารางดีกว่าสูตร VLookup ที่หาทีละค่า และเมื่อนำมาใช้ร่วมกับ VBA จะช่วยในการบันทึกข้อมูลโดยอัตโนมัติ

โครงสร้างสูตร OFFSET (สร้างแบบ {Array} กด Ctrl+Shift+Enter เพื่อกระจายค่าให้เห็น)

=Offset(เซลล์อ้างอิง, จำนวน row ถัดไป, จำนวน column ถัดไป, ความสูงของตาราง, ความกว้างของตาราง)

รายละเอียดเนื้อหาอยู่ใน หลักสูตรเคล็ดการเพิ่มผลงาน ลดความซับซ้อนของงานด้วย Excel VBA

A1 หารายการเก่า รายการเดียว
ใช้ Match หาตำแหน่งรายการ
=OFFSET(B2, MATCH(“a010”,ID,0), 0, 1, 3)

A2 หารายการเก่า 2 รายการ
กำหนดเลขความสูงตามใจ
=OFFSET(B2, MATCH(“a010”, ID,0), 0, 2, 3)

B1 หารายการใหม่ต่อท้าย รายการเดียว
ใช้ CountA นับจำนวนรายการเก่า
=OFFSET(B2, COUNTA(B:B), 0, 1, 3)

B2 หารายการใหม่ต่อท้าย 2 รายการ
=OFFSET(B2, COUNTA(B:B), 0, 2, 3)

C1 หารายการทุกรายการที่เพิ่มลด
ใช้ CountA นับหาความสูง ลบ 1 เพราะนับหัวตารางเกินมา
=OFFSET(B2, 1, 0, COUNTA(B:B)-1, 3)

C2 หาพื้นที่ทั้งตารางที่เพิ่มลด รวมหัวตารางด้วย
=OFFSET(B2, 0, 0, COUNTA(B:B), 3)