Thep Excel

OFFSET – อ้างอิงเซลล์แบบยืดหยุ่น

สร้าง Reference ไปยังเซลล์หรือช่วงเซลล์อื่น

OFFSET เป็นฟังก์ชันที่คืนค่าเป็น Reference ทำให้ยืดหยุ่นมาก สามารถสร้าง Dynamic Range ที่ปรับขนาดได้เอง มักใช้ร่วมกับฟังก์ชันอื่น เช่น SUM, AVERAGE เพื่อคำนวณในช่วงข้อมูลที่เปลี่ยนแปลงไปเรื่อยๆ

=OFFSET(reference, rows, cols, [height], [width])

By ThepExcel AI Agent
30 November 2025

Syntax & Arguments

=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 ความกว้างของช่วงข้อมูลใหม่ที่ต้องการ (จำนวนคอลัมน์)

How it works

หาผลรวม 5 วันย้อนหลัง

ใช้ OFFSET(วันสุดท้าย, -5, 0, 5, 1) เพื่อสร้างช่วงข้อมูล 5 วันก่อนหน้าแล้ว SUM

สร้างกราฟแบบ Dynamic

กำหนด Source Data ของกราฟด้วย OFFSET เพื่อให้กราฟอัปเดตเองเมื่อเพิ่มข้อมูล

ดึงข้อมูลแถวสุดท้าย

ใช้ร่วมกับ COUNTA เพื่อหาแถวที่มีข้อมูลสุดท้าย แล้วดึงค่านั้นออกมา

Examples

ตัวอย่างที่ 1: เลื่อนจากเซลล์อ้างอิง

สมมติว่า StartCell อ้างอิงถึงเซลล์เริ่มต้น (เช่น A1)
– สูตรจะเลื่อนจาก StartCell ลงมา 2 แถว
– แล้วเลื่อนไปทางขวา 3 คอลัมน์
– ผลลัพธ์คือค่าในเซลล์ที่เลื่อนไปนั้น
Excel Formula:

=OFFSET(StartCell, 2, 3)

Result:

ค่าในเซลล์ที่เลื่อนไป (เช่น D3)

ตัวอย่างที่ 2: เลื่อนและกำหนดขนาดของช่วงข้อมูล

สมมติว่า ReportStart คือเซลล์เริ่มต้นของรายงาน (เช่น A1)
– สูตรจะเลื่อนจาก ReportStart ลง 1 แถว ขวา 1 คอลัมน์ (ไปที่ B2)
– จากนั้นสร้างช่วงข้อมูลที่มีความสูง 3 แถว และความกว้าง 2 คอลัมน์ (นับจาก B2)
– สุดท้าย SUM จะรวมค่าทั้งหมดในช่วงข้อมูลที่ OFFSET สร้างขึ้นมานี้
Excel Formula:

=SUM(OFFSET(ReportStart, 1, 1, 3, 2))

Result:

ผลรวมของช่วงที่เลื่อนและกำหนดขนาด

ตัวอย่างที่ 3: ดึงข้อมูลแถวสุดท้ายแบบ Dynamic

สมมติว่า DataStart คือเซลล์แรกของข้อมูลในคอลัมน์ (เช่น A1) และ DataColumn คือช่วงของคอลัมน์ข้อมูล (เช่น A:A)
– COUNTA(DataColumn) จะนับจำนวนเซลล์ที่มีข้อมูลทั้งหมดใน DataColumn
– ลบ 1 เพื่อปรับตำแหน่ง (เพราะ OFFSET นับ 0 เป็นเซลล์ปัจจุบัน)
– OFFSET จะเลื่อนจาก DataStart ลงมายังแถวสุดท้ายที่มีข้อมูลใน DataColumn แล้วดึงค่าออกมา
Excel Formula:

=OFFSET(DataStart, COUNTA(DataColumn)-1, 0)

Result:

ค่าในเซลล์สุดท้ายที่มีข้อมูลในคอลัมน์นั้น

FAQs

OFFSET เป็น Volatile Function ใช่ไหม?

ใช่ครับ OFFSET เป็น Volatile Function ซึ่งจะคำนวณใหม่ทุกครั้งที่มีการเปลี่ยนแปลงใดๆ ใน Worksheet แม้จะไม่มีผลกับสูตรโดยตรง ซึ่งอาจทำให้ไฟล์ช้าลงได้

ถ้าอ้างอิงเกินขอบเขต Sheet จะเกิดอะไรขึ้น?

จะขึ้น Error #REF! เพราะสูตรพยายามอ้างอิงไปยังเซลล์ที่ไม่มีอยู่จริง

Resources & Related

Additional Notes

ฟังก์ชัน OFFSET ใช้สำหรับสร้างการอ้างอิง (Reference) ไปยังเซลล์หรือช่วงเซลล์ใหม่ โดยนับจากเซลล์อ้างอิงตั้งต้น (Reference) เป็นจำนวนแถวและคอลัมน์ที่กำหนด และยังสามารถกำหนดขนาดของช่วงเซลล์ที่ต้องการได้ด้วย

Leave a Reply

Your email address will not be published. Required fields are marked *