ฟังก์ชัน INDIRECT ใน Excel เป็นฟังก์ชันที่ช่วยให้เราสามารถอ้างอิงเซลล์หรือช่วงข้อมูลจากข้อความ (text) ได้แบบ dynamic หรือพูดง่าย ๆ คือ เราสามารถสร้างการอ้างอิงแบบ “เปลี่ยนตามค่าที่เรากำหนด” โดยไม่ต้องแก้สูตรเอง เหมาะอย่างยิ่งเมื่อทำงานกับรายงานที่เปลี่ยนชื่อชีตหรือช่วงบ่อย ๆ
INDIRECT สามารถใช้ร่วมกับฟังก์ชันอื่น เช่น ADDRESS, ROW, COLUMN, VLOOKUP เพื่อสร้างสูตรที่มีความยืดหยุ่นสูง ช่วยลดการคัดลอกสูตรซ้ำ และเพิ่มความสามารถในการทำงานอัตโนมัติให้กับไฟล์ Excel
ประโยชน์ของฟังก์ชัน INDIRECT ใน Excel
- อ้างอิงเซลล์หรือช่วงข้อมูลแบบ dynamic จากข้อความ
- ใช้สร้างสูตรที่เปลี่ยนเองได้ตามการอัปเดตข้อมูล
- ช่วยจัดการข้อมูลข้ามชีตได้สะดวก
- ลดความซ้ำซ้อนของสูตรในรายงานขนาดใหญ่
- ใช้ร่วมกับฟังก์ชันอื่นเพื่อเพิ่มความยืดหยุ่นได้ดี
รูปแบบการใช้งาน (Syntax)
=INDIRECT(ref_text, [a1])
ref_text→ ข้อความที่ระบุตำแหน่งเซลล์หรือช่วงที่ต้องการอ้างอิง[a1]→ TRUE (ค่าเริ่มต้น) = ใช้รูปแบบ A1, FALSE = ใช้รูปแบบ R1C1
ตัวอย่างการประยุกต์ใช้งานฟังก์ชัน INDIRECT ใน Excel
ตัวอย่างที่ 1: อ้างอิงเซลล์จากข้อความ
โจทย์: ต้องการดึงค่าจากเซลล์ A2 โดยใช้ข้อความใน B1 ที่เขียนว่า “A2”
ข้อมูลตัวอย่าง
| A | B |
|---|---|
| 10 | A2 |
| 20 |
สูตร
=INDIRECT(B1)

ref_text→ กำหนดค่าB1ซึ่งมีข้อความ “A2”[a1]→ ไม่ได้ใส่ค่า (ใช้รูปแบบ A1)- INDIRECT → แปลง “A2” เป็นการอ้างอิงเซลล์ → คืนค่า 20
ผลลัพธ์
20

ตัวอย่างที่ 2: อ้างอิงช่วงข้อมูล dynamic ตามชื่อในเซลล์
โจทย์: ต้องการหาผลรวมของช่วงข้อมูลที่ระบุใน C1 (C1 มีค่า “A1:A3”)
ข้อมูลตัวอย่าง
| A | B | C |
|---|---|---|
| 10 | A1:A3 | |
| 20 | ||
| 30 |
สูตร
=SUM(INDIRECT(C1))

ref_text→ กำหนดค่าC1ซึ่งมีข้อความ “A1:A3”[a1]→ ไม่ได้ใส่ค่า (ใช้ A1 style)- INDIRECT → แปลง “A1:A3” เป็นการอ้างอิงช่วง
- SUM → รวมค่า 10 + 20 + 30
ผลลัพธ์
60

ตัวอย่างที่ 3: อ้างอิงข้ามชีตตามชื่อชีตที่เปลี่ยนได้
โจทย์: ต้องการดึงค่า A1 จากชีตที่ระบุใน A1
ข้อมูลในเซลล์ A1 ในชีต “สรุปยอด” คือ 5000
ข้อมูลในเซลล์ A1 ในชีตปัจจุบัน มีค่าเป็นคำว่า “สรุปยอด” ซึ่งสื่อถึงชื่อชีตที่จะดึงข้อมูล
สูตร
=INDIRECT("'" & A1 & "'!A1")

ref_text→ ประกอบข้อความ'สรุปยอด'!A1ด้วยA1→ “สรุปยอด” →'สรุปยอด'!A1[a1]→ ไม่ได้ใส่ค่า- INDIRECT → อ้างอิงไปยังเซลล์ A1 ในชีต “สรุปยอด” → คืนค่า 5000
ผลลัพธ์

ตัวอย่างที่ 4: ใช้ฟังก์ชัน INDIRECT ใน Excel ร่วมกับฟังก์ชัน ADDRESS เพื่ออ้างอิงแบบ dynamic
โจทย์: ต้องการดึงค่าจากตาราง A1:D4 ที่ตำแหน่งแถว 3, คอลัมน์ 2
ข้อมูลตัวอย่าง
| A | B | C | D |
|---|---|---|---|
| 10 | 20 | 30 | 40 |
| 50 | 60 | 70 | 80 |
| 90 | 100 | 110 | 120 |
| 130 | 140 | 150 | 160 |
สูตร
=INDIRECT(ADDRESS(3,2))

ADDRESS(3,2)→ สร้างข้อความ “B3” จากแถว 3, คอลัมน์ 2ref_text→ ใส่ค่าADDRESS(3,2)จะอ้างอิงไปที่เซลล์ “B3”[a1]→ ไม่ได้ใส่ค่า- INDIRECT → ดึงค่าเซลล์ B3
ผลลัพธ์
100

คำแนะนำเพิ่มเติมในการใช้งาน
- ชื่อชีตที่มีช่องว่างต้องใส่
'ครอบ เช่น'สรุปยอด'!A1 - ใช้กับชื่อ range ที่ตั้งชื่อไว้ (Named Range) ได้ เช่น
=INDIRECT("ยอดขาย") - ถ้าใช้กับไฟล์อื่น (external workbook) → ไฟล์นั้นต้องเปิดอยู่
- ใช้อย่างระมัดระวังในไฟล์ขนาดใหญ่ เพราะ INDIRECT ไม่อัปเดตแบบ automatic calculation อาจทำให้ไฟล์ทำงานช้า
สรุป
ฟังก์ชัน INDIRECT ใน Excel เป็นฟังก์ชันอ้างอิงที่ช่วยให้เราสามารถอ้างอิงเซลล์ ช่วงข้อมูล หรือชีตอื่น ๆ ผ่านข้อความแบบ dynamic ได้ เพิ่มความยืดหยุ่นในการสร้างรายงานและสูตรที่ซับซ้อน ฟังก์ชันนี้มักถูกใช้ร่วมกับฟังก์ชัน ADDRESS, MATCH, ROW, COLUMN หรือแม้แต่ Named Range เพื่อสร้างสูตรที่ตอบสนองต่อการเปลี่ยนแปลงของข้อมูลและโครงสร้างไฟล์ การเข้าใจการทำงานของ INDIRECT ช่วยยกระดับทักษะ Excel ไปสู่ระดับที่มืออาชีพใช้กันอย่างแพร่หลาย
ข้อมูลอ้างอิง: INDIRECT function
