Thep Excel

INDIRECT – อ้างอิงเซลล์แบบไดนามิก

INDIRECT แปลงข้อความเป็นการอ้างอิงเซลล์จริง ช่วยให้สามารถเปลี่ยนตำแหน่งเซลล์ได้ไดนามิกโดยใช้ตัวเลขหรือชื่อเซลล์

=INDIRECT(ref_text, [a1])

By ThepExcel AI Agent
30 November 2025

Function Metrics


Popularity
7/10

Difficulty
6/10

Usefulness
8/10

Syntax & Arguments

=INDIRECT(ref_text, [a1])

Argument Type Required Default Description
ref_text Text Yes ข้อความที่แสดงการอ้างอิงเซลล์ เช่น ‘A1’ หรือ ‘Sheet2!B3’ ถ้าไม่ใช่การอ้างอิงที่ถูกต้อง จะคืนค่า #REF! error
a1 Logical Optional TRUE TRUE หรือละเว้น = ใช้รูปแบบ A1 (A1, B2, C3) | FALSE = ใช้รูปแบบ R1C1 (R1C1, R2C2)

How it works

สร้าง Dependent Dropdown List

เมื่อเลือกจังหวัดใน Dropdown List แรก (เช่น ชลบุรี) Dropdown List ที่สองจะแสดงเฉพาะอำเภอที่อยู่ในจังหวัดชลบุรีเท่านั้น โดยใช้ INDIRECT ดึงข้อมูลจาก Named Range ของแต่ละจังหวัด

ทำ Dynamic Chart

สร้างกราฟที่ช่วงข้อมูลเปลี่ยนไปตามเงื่อนไข เช่น กราฟแสดงยอดขายของเดือนที่เลือก โดยใช้ INDIRECT ดึงข้อมูลจากช่วงที่อ้างอิงถึงเดือนนั้นๆ

Examples

ตัวอย่างพื้นฐาน – อ้างอิงตามหมายเลขแถว
INDIRECT("B"…
เชื่อม "B" กับค่าใน A1 (ตัวเลข 5) ได้เป็น 'B5' แล้วเอาค่าจากเซลล์นั้นมา ตัวอย่างนี้ใช้เวลาต้องการสร้างสูตรที่อ้างอิงไปยังคอลัมน์เดียวกันแต่แถวต่างๆ
Excel Formula:

=INDIRECT("B"&A1)

Result:

ค่าในเซลล์ B5 (ถ้า A1 = 5)

ตัวอย่างจริง – ค้นหาข้อมูลจากตารางหลายตาราง
VLOOKUP(D2, INDIRECT(C2&"!A:D"), 4, FALSE)
ถ้า C2 = 'Vendor1' สูตรจะค้นหาค่า D2 ในตาราง Vendor1!A:D เป็นการสร้างแดชบอร์ดที่ผู้ใช้เลือกซัพพลายเออร์แล้วมันจะค้นหาข้อมูลจากแต่ละซัพพลายเออร์อัตโนมัติ
Excel Formula:

=VLOOKUP(D2, INDIRECT(C2&"!A:D"), 4, FALSE)

Result:

ค่าจากคอลัมน์ที่ 4 ของตาราง (ตามชื่อในเซลล์ C2)

ตัวอย่างขั้นสูง – ช่วงเซลล์แบบไดนามิก
SUM(INDIRECT("A"&B1&":A"…
ถ้า B1=5 และ B2=10 สูตรจะผลรวม A5:A10 อันนี้เจ๋งเพราะเราสามารถให้ผู้ใช้เลือกว่าอยากรวมจากแถวไหนถึงแถวไหน โดยไม่ต้องแก้สูตร
Excel Formula:

=SUM(INDIRECT("A"&B1&":A"&B2))

Result:

ผลรวมจากแถว B1 ถึง B2 ของคอลัมน์ A

ตัวอย่างการใช้ R1C1 style
INDIRECT("R"&ROW()&"C3", FALSE)
ROW() คืนค่าแถวปัจจุบัน ดังนั้น INDIRECT จึงอ้างอิงไปยัง C ของแถวเดียวกัน รูปแบบ R1C1 เป็นชื่อแบบเก่า แต่ยังใช้ได้ เข้าใจว่า R = row, C = column
Excel Formula:

=INDIRECT("R"&ROW()&"C3", FALSE)

Result:

ค่าจากคอลัมน์ C ของแถวปัจจุบัน

FAQs

INDIRECT ทำไมถึง #REF! error?

ข้อความที่เพิ่มคำไม่ใช่การอ้างอิงที่ถูกต้อง ลองใช้ Evaluate Formula (Formulas > Evaluate Formula) เพื่อดูว่า INDIRECT สร้างอะไร หรือชื่อเซลล์ไม่มีอยู่จริง

INDIRECT ต่างจาก VLOOKUP ยังไง?

VLOOKUP ค้นหาค่าที่ตรงกับเงื่อนไข INDIRECT เปลี่ยนข้อความเป็นอ้างอิงเซลล์ VLOOKUP มีประสิทธิภาพดีกว่า ใช้ VLOOKUP ก่อน ถ้าใช้ไม่ได้ค่อยใช้ INDIRECT

ชื่อเซลล์มีเว้นวรรค (เช่น 'Sales Data') ต้องทำไง?

ใช้เครื่องหมายคำพูดเดี่ยว เช่น =INDIRECT(“‘Sales Data’!A1”) ใส่ชื่อเซลล์ไว้ในคำพูดเดี่ยว

INDIRECT ทำให้ Excel ช้าลงได้ไหม?

ได้ เพราะ INDIRECT เป็น volatile function ที่ Excel คำนวณใหม่ทุกครั้ง ใช้ให้น้อยที่สุดเท่าที่ทำได้ ในแดชบอร์ดขนาดใหญ่อาจใช้ VLOOKUP หรือ INDEX+MATCH แทนได้

Resources & Related

Additional Notes

INDIRECT คือฟังก์ชันที่ใช้แปลงข้อความเป็นการอ้างอิงเซลล์จริง ใช้เมื่อต้องการให้สูตรอ้างอิงเซลล์ต่างๆ โดยอิงจากค่าในเซลล์อื่น.

ตัวอย่างเช่น ถ้า A1 มีค่า 5 และเราใช้ =INDIRECT(“B”&A1) สูตรจะอ้างอิงไปยัง B5 แทนที่จะกำหนดตำแหน่งในสูตรเองไป.

อันนี้มีประโยชน์มากเวลาต้องสร้างแดชบอร์ดที่ผู้ใช้สามารถเลือกข้อมูลจากตารางต่างๆ หรือสร้างอ้างอิงแบบไดนามิกว่าอยากเอาข้อมูลจากแถวไหน ที่เจ๋งของ INDIRECT คือมันเปิดโอกาสให้เราสร้างสูตรที่ยืดหยุ่นขึ้นมาก แต่ต้องระวังเรื่องประสิทธิภาพ เพราะมันเป็น volatile function ที่ทำให้ Excel คำนวณใหม่ทุกครั้งที่มีการเปลี่ยนแปลง

Leave a Reply

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