ซ่อมคอมพิวเตอร์นอกสถานที่ บางกะปิ รามคำแหง

วันอาทิตย์ที่ 2 มีนาคม พ.ศ. 2557

ฟังก์ชัน INDIRECT และตัวอย่างการใช้งาน

มีคำถามว่า Indirect หมายความอย่างไร และ มีวิธีการใช้อย่างไร?


ผมขออธิบายง่ายๆ เกี่ยวกับ INDIRECT โดยอาศัยรูปข้างล่างนี้ประกอบ นั่นคือเป็นการอ้างถึง "สิ่งที่อยู่ในเซล" แทนที่จะ "อ้างอิงเซล" ดังตัวอย่างต่อไปนี้





ตัวอย่างที่1

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

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



ตัวอย่างที่2

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

ในกรณีนี้ เราก็สามารถใช้ INDIRECT มาช่วยได้เช่นกัน โดยการพิมพ์สูตร =A1+INDIRECT("A"&COUNT(A:A)) โดยที่...

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



ตัวอย่างที่3

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

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

0 ความคิดเห็น:

แสดงความคิดเห็น