---
title: ฟังก์ชัน OFFSET ใน Excel
url: https://www.thepexcel.com/functions/excel/lookup-and-reference/offset/
type: function-explainer
program: Excel
date: 2025-11-30
updated: 2025-12-20
scores:
  popularity: 7
  difficulty: 6
  usefulness: 8
---

# ฟังก์ชัน OFFSET ใน Excel

> อ้างอิงช่วงข้อมูลที่เลื่อนจากตำแหน่งเริ่มต้น สร้าง dynamic range ได้

## คำอธิบาย

อ้างอิงช่วงข้อมูลที่เลื่อนจากตำแหน่งเริ่มต้น สร้าง dynamic range ได้

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| reference | Yes | required |  | ตำแหน่งเริ่มต้น (cell หรือ range) ที่จะเลื่อนออกมา |
| rows | Yes | required |  | จำนวนแถวที่จะเลื่อน (บวก = ลง, ลบ = ขึ้น) |
| cols | Yes | required |  | จำนวนคอลัมน์ที่จะเลื่อน (บวก = ขวา, ลบ = ซ้าย) |
| height | Yes | optional |  | ความสูงของช่วง (จำนวนแถว) - ถ้าไม่ระบุ ใช้ความสูงเดิม |
| width | Yes | optional |  | ความกว้างของช่วง (จำนวนคอลัมน์) - ถ้าไม่ระบุ ใช้ความกว้างเดิม |

## เคสการใช้งาน

### สร้าง Dynamic Chart Source

ใช้ OFFSET ใน Named Range เพื่อให้กราฟสามารถปรับช่วงข้อมูลได้เองโดยอัตโนมัติเมื่อมีการเพิ่มข้อมูลใหม่ ทำให้ไม่ต้องมาแก้ไข Chart Source Data ซ้ำๆ

_เหมาะกับ:_ dashboard

### ดึงข้อมูลแถว/คอลัมน์สุดท้าย

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

_เหมาะกับ:_ reporting

## ตัวอย่าง

### 1. ตัวอย่างพื้นฐาน: ดึงค่าจากเซลล์ที่เลื่อน

```excel
=OFFSET(A1,1,1)
```

**ผลลัพธ์:** `25 (ค่าจากเซลล์ B2)`

### 2. ตัวอย่างการใช้งาน: ผลรวมข้อมูลแบบ Dynamic

```excel
=SUM(OFFSET(A1,1,0,5,1))
```

**ผลลัพธ์:** `ผลรวมของ A2 ถึง A6`

### 3. ตัวอย่างขั้นสูง: ค่าเฉลี่ยเคลื่อนที่ (Moving Average)

```excel
=AVERAGE(OFFSET(D31,-6,0,7,1))
```

**ผลลัพธ์:** `ค่าเฉลี่ยของ 7 วันล่าสุด (D25:D31)`

### 4. ตัวอย่างการใช้งาน: Dynamic Named Range

```excel
=SUM(OFFSET(A1,1,0,COUNTA(A:A)-1,1))
```

**ผลลัพธ์:** `ผลรวมข้อมูลทั้งหมด A2:A(สุดท้าย) โดยอัตโนมัติ`

### 5. ตัวอย่างการใช้งาน: ดึงค่าจากตำแหน่งที่เลื่อนขึ้น

```excel
=OFFSET(E5,-2,-1)
```

**ผลลัพธ์:** `ค่าจากเซลล์ D3`

## หมายเหตุเพิ่มเติม

- ใช้ OFFSET กับ named range เพื่อสร้าง dynamic ranges ที่ขยายตัวเองตามข้อมูล

- ผสม OFFSET กับ COUNTA() เพื่อให้ช่วงข้อมูลปรับตามจำนวนแถว เช่น =SUM(OFFSET(A1,0,0,COUNTA(A:A),1))

- ใช้ OFFSET ในแผนภูมิเพื่อสร้าง dynamic chart ที่ขยายตัวตามข้อมูลใหม่

- หลีกเลี่ยงการใช้ OFFSET เมื่อสามารถใช้ INDEX+MATCH ได้ เพราะ INDEX+MATCH ไม่ใช่ volatile

- ถ้าใช้ Excel 365 ลองใช้ XLOOKUP แทน เพราะมีประสิทธิภาพดีกว่าและไม่ volatile

## คำถามที่พบบ่อย

**Q: OFFSET ต่างจาก INDIRECT อย่างไร?**

OFFSET เลื่อนจากตำแหน่งเฉพาะ ส่วน INDIRECT ใช้ข้อความเพื่อสร้างอ้างอิง เช่น INDIRECT('A'&1) ใช้ตัวเลขในเซลล์ A1 เพื่อสร้างอ้างอิง OFFSET นั้นเหมาะเมื่อต้องการ 'เลื่อน' ไปจากตำแหน่งที่รู้จัก INDIRECT เหมาะเมื่อต้องการสร้างอ้างอิงจากข้อความ

**Q: OFFSET จะคืนค่าอะไร?**

OFFSET คืนค่าช่วง (range) หรือเซลล์เดี่ยว ไม่ใช่ค่าตัวเลข ถ้าต้องการค่า ต้องใช้กับฟังก์ชันอื่น เช่น SUM, AVERAGE, MAX เป็นต้น

**Q: OFFSET เป็น volatile function หรือไม่?**

ใช่ OFFSET เป็น volatile function ซึ่งหมายความว่ามันจะถูก recalculate ทุกครั้งที่มีการเปลี่ยนแปลงใน worksheet แม้เป็นการเปลี่ยนแปลงที่ไม่เกี่ยวข้อง ถ้าใช้มากเกินไปในไฟล์ขนาดใหญ่ อาจทำให้ Excel ช้า

**Q: OFFSET รองรับ dynamic array หรือไม่?**

OFFSET ไม่เป็น dynamic array formula แต่สามารถใช้กับฟังก์ชันเช่น SUMPRODUCT, SUM array formulas โดยการ press Ctrl+Shift+Enter (Excel 2019 ขึ้นไป)

**Q: ถ้า OFFSET เลื่อนออกนอก worksheet ขอบเขตจะเกิดอะไร?**

จะคืนค่า #REF! error ถ้าการเลื่อนออกไปนอกขอบเขตของ worksheet ต้องตรวจสอบว่าตำแหน่งหรือขนาดไม่ลงตัวกับพื้นที่ worksheet

## ฟังก์ชันที่เกี่ยวข้อง

- [INDIRECT – อ้างอิงเซลล์แบบไดนามิก](https://www.thepexcel.com/functions/excel/lookup-and-reference/indirect/)
- [INDEX – ดึงค่าจากตำแหน่งที่ระบุใน Range หรือ Array](https://www.thepexcel.com/functions/excel/lookup-and-reference/index/)
- [MATCH – ค้นหาตำแหน่งของค่าในรายการ](https://www.thepexcel.com/functions/excel/lookup-and-reference/match/)
- [XLOOKUP – ฟังก์ชันค้นหาข้อมูลแนวตั้งและแนวนอน](https://www.thepexcel.com/functions/excel/lookup-and-reference/xlookup/)
- [ฟังก์ชัน SUMPRODUCT ใน Excel](https://www.thepexcel.com/functions/excel/math-and-trigonometry/sumproduct/)
- [COUNTA – ฟังก์ชันนับเซลล์ที่ไม่ว่าง](https://www.thepexcel.com/functions/excel/statistical/counta/)

## แหล่งข้อมูลเพิ่มเติม

- [Microsoft Support - OFFSET Function](https://support.microsoft.com/en-us/office/offset-function-c8de19ae-dd79-4b9b-a14e-b4d906d11b66) _(official)_
- [ExcelJet - OFFSET Function](https://exceljet.net/functions/offset-function) _(guide)_
- [Microsoft Learn - Dynamic Named Ranges](https://learn.microsoft.com/en-us/office/vba/api/excel.range) _(official)_

---

_Source: [https://www.thepexcel.com/functions/excel/lookup-and-reference/offset/](https://www.thepexcel.com/functions/excel/lookup-and-reference/offset/)_
