INDIRECT แปลงข้อความเป็นการอ้างอิงเซลล์จริง ช่วยให้สามารถเปลี่ยนตำแหน่งเซลล์ได้ไดนามิกโดยใช้ตัวเลขหรือชื่อเซลล์
=INDIRECT(ref_text, [a1])
=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) |
เมื่อเลือกจังหวัดใน Dropdown List แรก (เช่น ชลบุรี) Dropdown List ที่สองจะแสดงเฉพาะอำเภอที่อยู่ในจังหวัดชลบุรีเท่านั้น โดยใช้ INDIRECT ดึงข้อมูลจาก Named Range ของแต่ละจังหวัด
สร้างกราฟที่ช่วงข้อมูลเปลี่ยนไปตามเงื่อนไข เช่น กราฟแสดงยอดขายของเดือนที่เลือก โดยใช้ INDIRECT ดึงข้อมูลจากช่วงที่อ้างอิงถึงเดือนนั้นๆ
INDIRECT("B"…=INDIRECT("B"&A1)
ค่าในเซลล์ B5 (ถ้า A1 = 5)
VLOOKUP(D2, INDIRECT(C2&"!A:D"), 4, FALSE)=VLOOKUP(D2, INDIRECT(C2&"!A:D"), 4, FALSE)
ค่าจากคอลัมน์ที่ 4 ของตาราง (ตามชื่อในเซลล์ C2)
SUM(INDIRECT("A"&B1&":A"…=SUM(INDIRECT("A"&B1&":A"&B2))
ผลรวมจากแถว B1 ถึง B2 ของคอลัมน์ A
INDIRECT("R"&ROW()&"C3", FALSE)=INDIRECT("R"&ROW()&"C3", FALSE)
ค่าจากคอลัมน์ C ของแถวปัจจุบัน
ข้อความที่เพิ่มคำไม่ใช่การอ้างอิงที่ถูกต้อง ลองใช้ Evaluate Formula (Formulas > Evaluate Formula) เพื่อดูว่า INDIRECT สร้างอะไร หรือชื่อเซลล์ไม่มีอยู่จริง
VLOOKUP ค้นหาค่าที่ตรงกับเงื่อนไข INDIRECT เปลี่ยนข้อความเป็นอ้างอิงเซลล์ VLOOKUP มีประสิทธิภาพดีกว่า ใช้ VLOOKUP ก่อน ถ้าใช้ไม่ได้ค่อยใช้ INDIRECT
ใช้เครื่องหมายคำพูดเดี่ยว เช่น =INDIRECT(“‘Sales Data’!A1”) ใส่ชื่อเซลล์ไว้ในคำพูดเดี่ยว
ได้ เพราะ INDIRECT เป็น volatile function ที่ Excel คำนวณใหม่ทุกครั้ง ใช้ให้น้อยที่สุดเท่าที่ทำได้ ในแดชบอร์ดขนาดใหญ่อาจใช้ VLOOKUP หรือ INDEX+MATCH แทนได้
INDIRECT คือฟังก์ชันที่ใช้แปลงข้อความเป็นการอ้างอิงเซลล์จริง ใช้เมื่อต้องการให้สูตรอ้างอิงเซลล์ต่างๆ โดยอิงจากค่าในเซลล์อื่น.
ตัวอย่างเช่น ถ้า A1 มีค่า 5 และเราใช้ =INDIRECT(“B”&A1) สูตรจะอ้างอิงไปยัง B5 แทนที่จะกำหนดตำแหน่งในสูตรเองไป.
อันนี้มีประโยชน์มากเวลาต้องสร้างแดชบอร์ดที่ผู้ใช้สามารถเลือกข้อมูลจากตารางต่างๆ หรือสร้างอ้างอิงแบบไดนามิกว่าอยากเอาข้อมูลจากแถวไหน ที่เจ๋งของ INDIRECT คือมันเปิดโอกาสให้เราสร้างสูตรที่ยืดหยุ่นขึ้นมาก แต่ต้องระวังเรื่องประสิทธิภาพ เพราะมันเป็น volatile function ที่ทำให้ Excel คำนวณใหม่ทุกครั้งที่มีการเปลี่ยนแปลง