ตัวอย่างที่ 1: เลื่อนจากเซลล์อ้างอิง
– สูตรจะเลื่อนจาก StartCell ลงมา 2 แถว
– แล้วเลื่อนไปทางขวา 3 คอลัมน์
– ผลลัพธ์คือค่าในเซลล์ที่เลื่อนไปนั้น
=OFFSET(StartCell, 2, 3)
ค่าในเซลล์ที่เลื่อนไป (เช่น D3)
สร้าง Reference ไปยังเซลล์หรือช่วงเซลล์อื่น
OFFSET เป็นฟังก์ชันที่คืนค่าเป็น Reference ทำให้ยืดหยุ่นมาก สามารถสร้าง Dynamic Range ที่ปรับขนาดได้เอง มักใช้ร่วมกับฟังก์ชันอื่น เช่น SUM, AVERAGE เพื่อคำนวณในช่วงข้อมูลที่เปลี่ยนแปลงไปเรื่อยๆ
=OFFSET(reference, rows, cols, [height], [width])
=OFFSET(reference, rows, cols, [height], [width])
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| reference | Reference | Yes | เซลล์ตั้งต้นที่ใช้อ้างอิง | |
| rows | Number | Yes | จำนวนแถวที่จะเลื่อนลง/ขึ้น (บวก=ลง, ลบ=ขึ้น) | |
| cols | Number | Yes | จำนวนคอลัมน์ที่จะเลื่อนขวา/ซ้าย (บวก=ขวา, ลบ=ซ้าย) | |
| height | Number | Optional | Reference Height | ความสูงของช่วงข้อมูลใหม่ที่ต้องการ (จำนวนแถว) |
| width | Number | Optional | Reference Width | ความกว้างของช่วงข้อมูลใหม่ที่ต้องการ (จำนวนคอลัมน์) |
ใช้ OFFSET(วันสุดท้าย, -5, 0, 5, 1) เพื่อสร้างช่วงข้อมูล 5 วันก่อนหน้าแล้ว SUM
กำหนด Source Data ของกราฟด้วย OFFSET เพื่อให้กราฟอัปเดตเองเมื่อเพิ่มข้อมูล
ใช้ร่วมกับ COUNTA เพื่อหาแถวที่มีข้อมูลสุดท้าย แล้วดึงค่านั้นออกมา
=OFFSET(StartCell, 2, 3)
ค่าในเซลล์ที่เลื่อนไป (เช่น D3)
=SUM(OFFSET(ReportStart, 1, 1, 3, 2))
ผลรวมของช่วงที่เลื่อนและกำหนดขนาด
=OFFSET(DataStart, COUNTA(DataColumn)-1, 0)
ค่าในเซลล์สุดท้ายที่มีข้อมูลในคอลัมน์นั้น
ใช่ครับ OFFSET เป็น Volatile Function ซึ่งจะคำนวณใหม่ทุกครั้งที่มีการเปลี่ยนแปลงใดๆ ใน Worksheet แม้จะไม่มีผลกับสูตรโดยตรง ซึ่งอาจทำให้ไฟล์ช้าลงได้
จะขึ้น Error #REF! เพราะสูตรพยายามอ้างอิงไปยังเซลล์ที่ไม่มีอยู่จริง
ฟังก์ชัน OFFSET ใช้สำหรับสร้างการอ้างอิง (Reference) ไปยังเซลล์หรือช่วงเซลล์ใหม่ โดยนับจากเซลล์อ้างอิงตั้งต้น (Reference) เป็นจำนวนแถวและคอลัมน์ที่กำหนด และยังสามารถกำหนดขนาดของช่วงเซลล์ที่ต้องการได้ด้วย