ตัวอย่างที่ 1: อ้างอิงเซลล์จากข้อความ
=INDIRECT("B"&5)
ค่าในเซลล์ B5
แปลงข้อความเป็น Reference ที่ใช้งานได้จริง
INDIRECT แปลงข้อความให้เป็นการอ้างอิงเซลล์ที่ใช้งานได้จริง (Live Reference) ช่วยให้สร้างสูตรที่ดึงข้อมูลจาก Sheet หรือ Range Name ที่เปลี่ยนไปเรื่อยๆ ได้ เหมาะกับการทำ Dropdown แบบ Dependent หรือรวมข้อมูลจากหลาย Sheet
=INDIRECT(ref_text, [a1])
=INDIRECT(ref_text, [a1])
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| ref_text | Text | Yes | ข้อความที่ต้องการแปลงเป็น Reference (เช่น “A1”, “Sheet2!B5”, “MyRange”) | |
| a1 | Logical | Optional | TRUE | TRUE หรือละเว้น: ref_text เป็นแบบ A1 (A1, B2) FALSE: ref_text เป็นแบบ R1C1 (R1C1) |
สร้าง Dropdown List ให้เลือกชื่อ Sheet แล้วใช้ INDIRECT ดึงข้อมูลจาก Sheet ที่เลือกมาแสดง
เมื่อเลือกจังหวัดใน Dropdown แรก Dropdown ที่สองจะแสดงอำเภอของจังหวัดนั้นๆ เท่านั้น
ใช้ SUM(INDIRECT("A1:A"&COUNTA(A:A))) เพื่อรวมข้อมูลตั้งแต่ A1 จนถึงแถวสุดท้ายที่มีข้อมูล
=INDIRECT("B"&5)
ค่าในเซลล์ B5
=INDIRECT("Sales!B2")
ค่าในเซลล์ B2 ของ Sheet ชื่อ 'Sales'
=SUM(INDIRECT("MyData"))
ผลรวมของช่วงข้อมูล
ใช่ครับ INDIRECT เป็น Volatile Function ซึ่งจะคำนวณใหม่ทุกครั้งที่มีการเปลี่ยนแปลงใดๆ ใน Worksheet ทำให้ไฟล์ช้าลงได้เมื่อใช้จำนวนมาก
อาจเกิดจากข้อความใน ref_text ไม่ใช่การอ้างอิงเซลล์ที่ถูกต้อง หรือไฟล์ที่อ้างถึงถูกปิดอยู่ (ถ้าอ้างข้ามไฟล์)
ฟังก์ชัน INDIRECT ใช้สำหรับสร้างการอ้างอิง (Reference) ไปยังเซลล์หรือช่วงเซลล์ โดยการนำ “ข้อความ” มาแปลงเป็นการอ้างอิงที่ใช้งานได้จริง ทำให้สูตรมีความยืดหยุ่นสูง สามารถเปลี่ยนการอ้างอิงตามค่าในเซลล์ได้