อ้างอิงช่วงข้อมูลที่เลื่อนจากตำแหน่งเริ่มต้น สร้าง dynamic range ได้
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| reference | required | Yes | ตำแหน่งเริ่มต้น (cell หรือ range) ที่จะเลื่อนออกมา | |
| rows | required | Yes | จำนวนแถวที่จะเลื่อน (บวก = ลง, ลบ = ขึ้น) | |
| cols | required | Yes | จำนวนคอลัมน์ที่จะเลื่อน (บวก = ขวา, ลบ = ซ้าย) | |
| height | optional | Yes | ความสูงของช่วง (จำนวนแถว) – ถ้าไม่ระบุ ใช้ความสูงเดิม | |
| width | optional | Yes | ความกว้างของช่วง (จำนวนคอลัมน์) – ถ้าไม่ระบุ ใช้ความกว้างเดิม |
ใช้ OFFSET ใน Named Range เพื่อให้กราฟสามารถปรับช่วงข้อมูลได้เองโดยอัตโนมัติเมื่อมีการเพิ่มข้อมูลใหม่ ทำให้ไม่ต้องมาแก้ไข Chart Source Data ซ้ำๆ
ใช้ OFFSET ร่วมกับ COUNTA หรือ MATCH เพื่อดึงข้อมูลจากแถวหรือคอลัมน์สุดท้ายที่มีข้อมูลอยู่เสมอ เหมาะสำหรับรายงานที่ต้องการแสดงค่าล่าสุด
OFFSET(A1,1,1)=OFFSET(A1,1,1)
25 (ค่าจากเซลล์ B2)
SUM(OFFSET(A1,1,0,5,1))=SUM(OFFSET(A1,1,0,5,1))
ผลรวมของ A2 ถึง A6
AVERAGE(OFFSET(D31,-6,0,7,1))=AVERAGE(OFFSET(D31,-6,0,7,1))
ค่าเฉลี่ยของ 7 วันล่าสุด (D25:D31)
SUM(OFFSET(A1,1,0,COUNTA(A:A)-1,1))=SUM(OFFSET(A1,1,0,COUNTA(A:A)-1,1))
ผลรวมข้อมูลทั้งหมด A2:A(สุดท้าย) โดยอัตโนมัติ
OFFSET(E5,-2,-1)=OFFSET(E5,-2,-1)
ค่าจากเซลล์ D3
OFFSET เลื่อนจากตำแหน่งเฉพาะ ส่วน INDIRECT ใช้ข้อความเพื่อสร้างอ้างอิง เช่น INDIRECT(‘A’&1) ใช้ตัวเลขในเซลล์ A1 เพื่อสร้างอ้างอิง OFFSET นั้นเหมาะเมื่อต้องการ ‘เลื่อน’ ไปจากตำแหน่งที่รู้จัก INDIRECT เหมาะเมื่อต้องการสร้างอ้างอิงจากข้อความ
OFFSET คืนค่าช่วง (range) หรือเซลล์เดี่ยว ไม่ใช่ค่าตัวเลข ถ้าต้องการค่า ต้องใช้กับฟังก์ชันอื่น เช่น SUM, AVERAGE, MAX เป็นต้น
ใช่ OFFSET เป็น volatile function ซึ่งหมายความว่ามันจะถูก recalculate ทุกครั้งที่มีการเปลี่ยนแปลงใน worksheet แม้เป็นการเปลี่ยนแปลงที่ไม่เกี่ยวข้อง ถ้าใช้มากเกินไปในไฟล์ขนาดใหญ่ อาจทำให้ Excel ช้า
OFFSET ไม่เป็น dynamic array formula แต่สามารถใช้กับฟังก์ชันเช่น SUMPRODUCT, SUM array formulas โดยการ press Ctrl+Shift+Enter (Excel 2019 ขึ้นไป)
จะคืนค่า #REF! error ถ้าการเลื่อนออกไปนอกขอบเขตของ worksheet ต้องตรวจสอบว่าตำแหน่งหรือขนาดไม่ลงตัวกับพื้นที่ worksheet
OFFSET เป็นฟังก์ชันที่ช่วยคุณ ‘เลื่อน’ ไปยังช่วงข้อมูลใหม่โดยอ้างอิงจากตำแหน่งเดิม ลองนึกภาพคุณชี้ไปที่เซลล์ A1 แล้วพูดว่า ‘เลื่อนลง 3 แถว ขวา 2 คอลัมน์’ – นั่นคือสิ่งที่ OFFSET ทำ 😎
ทำไมต้องใช้ OFFSET? เพราะมันทำให้สูตรของคุณ ‘อัจฉริยะ’ – เมื่อข้อมูลเพิ่มขึ้น สูตรจะปรับตัวเองโดยอัตโนมัติ ไม่ต้องแก้มือ
=OFFSET(reference, rows, cols, [height], [width])
OFFSET ทำงานได้ 2 ขั้น:
เคล็ดลับ: เลขบวก = ลง/ขวา, เลขลบ = ขึ้น/ซ้าย ง่ายมาก!