ฟังก์ชัน INDIRECT และตัวอย่างการใช้งาน
หลายวันก่อน ไปพบคำถามในเว็บบอร์ดแห่งหนึ่ง ผู้ถามสงสัยว่าฟังก์ชัน INDIRECT ใช้ทำอะไร เห็นมีคนใช้กันเยอะ แต่ผู้ถามไม่เข้าใจความหมาย และวิธีการใช้งาน

ผมได้โพสคำตอบให้ไป แล้วก็เลยขอเอาเรื่องนี้ มาเก็บไว้ใน blog แห่งนี้ด้วย ดังนี้

.......................................

อธิบายง่ายๆ คือ INDIRECT จะเป็นการอ้างถึงสิ่งที่อยู่ในเซลล์ แทนที่จะอ้างอิงเซลล์ ตัวอย่างเช่น (ดูรูปประกอบ)



ถ้าในเซลล์ B6 เราพิมพ์สูตรว่า =A1+A2 ซึ่งจะได้ผลลัพธ์ 15 แต่ถ้าเราจะเปลี่ยนเป็น =A1+A3 หรือ A1+A4 เราก็ต้องมาทำการแก้ไขสูตรใหม่ ซึ่งจะเห็นว่า จากตัวอย่างข้างต้นนี้ เซลล์ A1 เป็นเซลล์หลักที่เราจะนำไปบวกกับ A2, A3 หรือ A4

ดังนั้น ถ้าจะให้ใช้งานสะดวกขึ้น โดยที่ไม่ต้องมาแก้ไขที่ตัวสูตร ผมจะเขียนสูตรใหม่เป็น =A1+INDIRECT(B1) แล้วใน B1 ผมก็จะใส่ข้อความว่า A2, A3 หรือ A4 (หรืออาจทำเป็น Drop down list โดยการใช้ Data > Validation > List ก็ได้) ซึ่งผลลัพธ์ใน B6 จะเปลี่ยนแปลงไป ขึ้นอยู่กับว่าเราพิมพ์อะไรในเซลล์ B1 โดยที่เราไม่ต้องไปแก้ไขสูตร และผลลัพธ์ที่ได้ ก็เหมือนกับที่ต้องการ

อีกสักตัวอย่างนะครับ (อ้างอิงจากรูปข้างบน)
สมมติว่าถ้าในเซลล์ B7 คุณต้องการพิมพ์สูตร =A1+เซลล์แถวสุดท้ายที่มีข้อมูลในคอลัมน์ A เช่น ถ้ามีข้อมูลถึง A4 สูตรก็คือ =A1+A4 หรือถ้ามีข้อมูลถึง A7 สูตรก็ต้องเปลี่ยนเป็น =A1+A7 เป็นต้น

ในกรณีนี้ เราสามารถใช้ INDIRECT มาช่วยได้ครับ โดยการพิมพ์สูตร =A1+INDIRECT("A"&COUNT(A:A)) โดยที่...
  1. COUNT(A:A) จะนับเซลล์ที่มีข้อมูลเป็นตัวเลขในคอลัมน์ A ว่ามีกี่รายการ ซึ่งผลลัพธ์ในที่นี้คือ 4

  2. "A"&COUNT(A:A) ก็เสมือนเป็นการเอาตัวอักษร "A" ไปเชื่อมต่อกับค่าตัวเลข ที่ได้จากการนับในข้อ 1 ดังนั้น "A"&COUNT(A:A) ก็คือ "A4"

  3. INDIRECT("A"&COUNT(A:A)) คำว่า "A4" ในข้อ 2 จะถือเป็นข้อความที่อยู่ในเซลล์ ซึ่งยังเอามาอ้างอิงในสูตรไม่ได้ ฟังก์ชัน INDIRECT จะแปลงค่าดังกล่าว ให้ใช้อ้างอิงได้ในสูตร

ดังนั้น =A1+INDIRECT("A"&COUNT(A:A)) จึงมีความหมายเหมือนกับ =A1+A4 นั่นเอง

เพื่อให้เกิดความเข้าใจมากขึ้น คุณลองสร้างข้อมูลตามรูปตัวอย่าง แล้วลองพิมพ์สูตรตามที่อธิบายไว้ จากนั้นให้ลองเพิ่มหรือลดข้อมูลในคอลัมน์ A ก็จะเห็นความแตกต่างครับ



Create Date : 06 พฤศจิกายน 2550
Last Update : 1 กุมภาพันธ์ 2552 10:26:23 น.
Counter : 8355 Pageviews.

4 comments
ทำมเวลาเราเขียนบทความออนไลน์จึงควรใส่คีย์เวิร์ดสำคัญลงไปด้วย สมาชิกหมายเลข 3008109
(27 พ.ค. 2568 00:23:46 น.)
Geoffrey Hinton ช่วยมาสิงร่างวันนี้หน่อยจ้า! peaceplay
(17 พ.ค. 2568 12:33:42 น.)
ทำ openvpn บน mikrotik แบบบ้านๆ remote จากไหนก็ได้เข้า office mrter2012
(29 เม.ย. 2568 11:53:43 น.)
หรือว่า HYROX ต้องมาแล้ว? peaceplay
(7 เม.ย. 2568 11:07:04 น.)
  
อีก 1 บล็อกที่มีประโยชน์ครับ ต่อๆไป จะได้ Search ได้อะไรๆที่มีสาระมากขึ้นครับ
โดย: mitrapap วันที่: 10 พฤศจิกายน 2550 เวลา:0:04:22 น.
  
สุดยอดเลยจริง ๆ
โดย: nan IP: 203.147.53.130 วันที่: 23 พฤศจิกายน 2550 เวลา:17:02:28 น.
  
โดย: Opey วันที่: 17 กุมภาพันธ์ 2551 เวลา:0:12:19 น.
  
ใจครับ
โดย: sek IP: 61.91.204.90 วันที่: 9 ธันวาคม 2551 เวลา:12:59:36 น.
ชื่อ :
Comment :
 *ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก
 

Samroeng.BlogGang.com

ครูเอก
Location :
กรุงเทพฯ  Thailand

[ดู Profile ทั้งหมด]
 ผู้ติดตามบล็อก : 112 คน [?]

บทความทั้งหมด