ฟังก์ชัน INDIRECT ใน Excel

ฟังก์ชัน 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”

ข้อมูลตัวอย่าง

AB
10A2
20

สูตร

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

ผลลัพธ์

20

ผลลัพธ์จากการดึงค่าจากเซลล์ A2

ตัวอย่างที่ 2: อ้างอิงช่วงข้อมูล dynamic ตามชื่อในเซลล์

โจทย์: ต้องการหาผลรวมของช่วงข้อมูลที่ระบุใน C1 (C1 มีค่า “A1:A3”)

ข้อมูลตัวอย่าง

ABC
10A1:A3
20
30

สูตร

=SUM(INDIRECT(C1))
ใช้ฟังก์ชัน INDIRECT ใน Excel หาผลรวมของช่วงข้อมูลที่ระบุใน C1
  • ref_text → กำหนดค่า C1 ซึ่งมีข้อความ “A1:A3”
  • [a1] → ไม่ได้ใส่ค่า (ใช้ A1 style)
  • INDIRECT → แปลง “A1:A3” เป็นการอ้างอิงช่วง
  • SUM → รวมค่า 10 + 20 + 30

ผลลัพธ์

60

ผลลัพธ์จากการหาผลรวมของช่วงข้อมูลที่ระบุใน C1

ตัวอย่างที่ 3: อ้างอิงข้ามชีตตามชื่อชีตที่เปลี่ยนได้

โจทย์: ต้องการดึงค่า A1 จากชีตที่ระบุใน A1

ข้อมูลในเซลล์ A1 ในชีต “สรุปยอด” คือ 5000

ข้อมูลในเซลล์ A1 ในชีตปัจจุบัน มีค่าเป็นคำว่า “สรุปยอด” ซึ่งสื่อถึงชื่อชีตที่จะดึงข้อมูล

สูตร

=INDIRECT("'" & A1 & "'!A1")
ใช้ฟังก์ชัน INDIRECT ใน Excel ดึงค่า A1 จากชีตที่ระบุใน A1
  • ref_text → ประกอบข้อความ 'สรุปยอด'!A1 ด้วย A1 → “สรุปยอด” → 'สรุปยอด'!A1
  • [a1] → ไม่ได้ใส่ค่า
  • INDIRECT → อ้างอิงไปยังเซลล์ A1 ในชีต “สรุปยอด” → คืนค่า 5000

ผลลัพธ์

ตัวอย่างที่ 4: ใช้ฟังก์ชัน INDIRECT ใน Excel ร่วมกับฟังก์ชัน ADDRESS เพื่ออ้างอิงแบบ dynamic

โจทย์: ต้องการดึงค่าจากตาราง A1:D4 ที่ตำแหน่งแถว 3, คอลัมน์ 2

ข้อมูลตัวอย่าง

ABCD
10203040
50607080
90100110120
130140150160

สูตร

=INDIRECT(ADDRESS(3,2))
ใช้ฟังก์ชัน INDIRECT ใน Excel ร่วมกับ ADDRESS เพื่ออ้างอิงแบบ dynamic
  • ADDRESS(3,2) → สร้างข้อความ “B3” จากแถว 3, คอลัมน์ 2
  • ref_text → ใส่ค่า ADDRESS(3,2) จะอ้างอิงไปที่เซลล์ “B3”
  • [a1] → ไม่ได้ใส่ค่า
  • INDIRECT → ดึงค่าเซลล์ B3

ผลลัพธ์

100

ดึงค่าจากตาราง A1:D4 ที่ตำแหน่งแถว 3, คอลัมน์ 2

คำแนะนำเพิ่มเติมในการใช้งาน

  • ชื่อชีตที่มีช่องว่างต้องใส่ ' ครอบ เช่น 'สรุปยอด'!A1
  • ใช้กับชื่อ range ที่ตั้งชื่อไว้ (Named Range) ได้ เช่น =INDIRECT("ยอดขาย")
  • ถ้าใช้กับไฟล์อื่น (external workbook) → ไฟล์นั้นต้องเปิดอยู่
  • ใช้อย่างระมัดระวังในไฟล์ขนาดใหญ่ เพราะ INDIRECT ไม่อัปเดตแบบ automatic calculation อาจทำให้ไฟล์ทำงานช้า

สรุป

ฟังก์ชัน INDIRECT ใน Excel เป็นฟังก์ชันอ้างอิงที่ช่วยให้เราสามารถอ้างอิงเซลล์ ช่วงข้อมูล หรือชีตอื่น ๆ ผ่านข้อความแบบ dynamic ได้ เพิ่มความยืดหยุ่นในการสร้างรายงานและสูตรที่ซับซ้อน ฟังก์ชันนี้มักถูกใช้ร่วมกับฟังก์ชัน ADDRESS, MATCH, ROW, COLUMN หรือแม้แต่ Named Range เพื่อสร้างสูตรที่ตอบสนองต่อการเปลี่ยนแปลงของข้อมูลและโครงสร้างไฟล์ การเข้าใจการทำงานของ INDIRECT ช่วยยกระดับทักษะ Excel ไปสู่ระดับที่มืออาชีพใช้กันอย่างแพร่หลาย

ข้อมูลอ้างอิง: INDIRECT function

แชร์เรื่องนี้