สารบัญ
บทช่วยสอน Excel INDIRECT นี้อธิบายไวยากรณ์ของฟังก์ชัน การใช้งานพื้นฐาน และแสดงตัวอย่างสูตรจำนวนมากที่สาธิตวิธีใช้ INDIRECT ใน Excel
มีฟังก์ชันมากมายใน Microsoft Excel บางอันเข้าใจง่าย บางอันต้องใช้ช่วงการเรียนรู้ที่ยาวนาน และอันแรกถูกใช้บ่อยกว่าอันหลัง และถึงกระนั้น Excel INDIRECT ก็เป็นหนึ่งในนั้น ฟังก์ชัน Excel นี้ไม่ได้ทำการคำนวณใดๆ และไม่ประเมินเงื่อนไขหรือการทดสอบเชิงตรรกะใดๆ
ถ้าอย่างนั้น ฟังก์ชัน INDIRECT ใน Excel คืออะไร และฉันใช้ฟังก์ชันนี้เพื่ออะไร นี่เป็นคำถามที่ดีมาก และหวังว่าคุณจะได้รับคำตอบที่ครอบคลุมในไม่กี่นาทีเมื่อคุณอ่านบทช่วยสอนนี้เสร็จแล้ว
ฟังก์ชัน Excel INDIRECT - ไวยากรณ์และการใช้งานพื้นฐาน
ตามชื่อที่แนะนำ Excel INDIRECT ใช้เพื่ออ้างอิงเซลล์ ช่วง แผ่นงานหรือสมุดงานอื่นๆ โดยอ้อม กล่าวอีกนัยหนึ่ง ฟังก์ชัน INDIRECT ช่วยให้คุณสร้างการอ้างอิงเซลล์หรือช่วงไดนามิกแทนการฮาร์ดโค้ด ด้วยเหตุนี้ คุณจึงเปลี่ยนการอ้างอิงภายในสูตรได้โดยไม่ต้องเปลี่ยนสูตรเอง นอกจากนี้ การอ้างอิงทางอ้อมเหล่านี้จะไม่เปลี่ยนแปลงเมื่อมีการแทรกแถวหรือคอลัมน์ใหม่ลงในเวิร์กชีตหรือเมื่อคุณลบรายการที่มีอยู่
ทั้งหมดนี้อาจเข้าใจง่ายขึ้นจากตัวอย่าง อย่างไรก็ตาม เพื่อให้สามารถเขียนสูตรได้ แม้แต่สูตรที่ง่ายที่สุด คุณจำเป็นต้องรู้โดยอัตโนมัติ วิธีแก้ไขคือใช้ฟังก์ชัน INDIRECT เช่น
=SUM(INDIRECT("A2:A5"))
เนื่องจาก Excel มองว่า "A1:A5" เป็นเพียงสตริงข้อความแทนที่จะเป็นการอ้างอิงช่วง จึงไม่สร้างใดๆ เปลี่ยนแปลงเมื่อคุณแทรกหรือลบแถว
การใช้ INDIRECT กับฟังก์ชัน Excel อื่นๆ
นอกเหนือจาก SUM แล้ว INDIRECT มักใช้กับฟังก์ชันอื่นๆ ของ Excel เช่น ROW, COLUMN, ADDRESS, VLOOKUP, SUMIF เป็นต้น
ตัวอย่างที่ 1. ฟังก์ชัน INDIRECT และ ROW
ค่อนข้างบ่อย ฟังก์ชัน ROW ใช้ใน Excel เพื่อส่งคืนอาร์เรย์ของค่าต่างๆ ตัวอย่างเช่น คุณสามารถใช้สูตรอาร์เรย์ต่อไปนี้ (จำไว้ว่าต้องกด Ctrl + Shift + Enter ) เพื่อคืนค่าค่าเฉลี่ยของตัวเลขที่น้อยที่สุด 3 ตัวในช่วง A1:A10:
=AVERAGE(SMALL(A1:A10,ROW(1:3)))
อย่างไรก็ตาม หากคุณแทรกแถวใหม่ในเวิร์กชีตของคุณ ที่ใดก็ได้ระหว่างแถวที่ 1 และ 3 ช่วงในฟังก์ชัน ROW จะเปลี่ยนเป็น ROW(1:4) และสูตรจะส่งกลับค่าเฉลี่ยของตัวเลขที่น้อยที่สุด 4 ตัว แทนที่จะเป็น 3 .
เพื่อป้องกันไม่ให้สิ่งนี้เกิดขึ้น ให้ซ้อน INDIRECT ในฟังก์ชัน ROW และสูตรอาร์เรย์ของคุณจะยังคงถูกต้องเสมอ ไม่ว่าจะแทรกหรือลบไปกี่แถวก็ตาม:
=AVERAGE(SMALL(A1:A10,ROW(INDIRECT("1:3"))))
ต่อไปนี้คือตัวอย่างการใช้ INDIRECT และ ROW ร่วมกับฟังก์ชัน LARGE: วิธีรวมจำนวนที่มากที่สุด N ในช่วง
ตัวอย่างที่ 2 ฟังก์ชัน INDIRECT และ ADDRESS
คุณสามารถใช้ Excel INDIRECT ร่วมกับฟังก์ชัน ADDRESS เพื่อรับค่าในเซลล์หนึ่งๆ ได้ทันที
อย่างที่คุณจำได้ ฟังก์ชัน ADDRESS ใช้ใน Excel เพื่อรับที่อยู่ของเซลล์ตามหมายเลขแถวและคอลัมน์ ตัวอย่างเช่น สูตร =ADDRESS(1,3)
ส่งคืนสตริง $C$1 เนื่องจาก C1 เป็นเซลล์ที่จุดตัดของแถวที่ 1 และคอลัมน์ที่ 3
หากต้องการสร้างการอ้างอิงเซลล์ทางอ้อม คุณเพียงฝังฟังก์ชัน ADDRESS ลงในฟังก์ชัน INDIRECT สูตรเช่นนี้:
=INDIRECT(ADDRESS(1,3))
แน่นอนว่าสูตรเล็กน้อยนี้เป็นเพียงการสาธิตเทคนิคเท่านั้น และนี่คือตัวอย่างเล็กๆ น้อยๆ ที่อาจเป็นประโยชน์จริงๆ:
- สูตร INDIRECT ADDRESS - วิธีสลับแถวและคอลัมน์
- VLOOKUP และ INDIRECT - วิธีดึงข้อมูลจากชีตต่างๆ แบบไดนามิก .
- INDIRECT with INDEX / MATCH - วิธีการนำสูตร VLOOKUP ที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ไปสู่ความสมบูรณ์แบบ
- Excel INDIRECT และ COUNTIF - วิธีการใช้ฟังก์ชัน COUNTIF ในช่วงที่ไม่ต่อเนื่องกันหรือ a การเลือกเซลล์
การใช้ INDIRECT กับ Data Validation ใน Excel
คุณสามารถใช้ฟังก์ชัน INDIRECT ของ Excel กับ Data Validation เพื่อสร้างรายการดรอปดาวน์แบบเรียงซ้อนที่แสดงตัวเลือกต่างๆ ขึ้นอยู่กับค่า ที่ผู้ใช้เลือกในเมนูแบบเลื่อนลงรายการแรก
รายการแบบเลื่อนลงที่ขึ้นต่อกันอย่างง่ายนั้นสร้างได้ง่ายมาก สิ่งที่ต้องทำคือช่วงที่มีชื่อไม่กี่ช่วงเพื่อจัดเก็บรายการแบบเลื่อนลงและสูตรง่ายๆ =INDIRECT(A2)
โดยที่ A2 คือเซลล์ที่แสดงรายการแบบเลื่อนลงรายการแรกของคุณ
เพื่อทำให้ซับซ้อนขึ้นเมนู 3 ระดับหรือเมนูแบบเลื่อนลงที่มีรายการหลายคำ คุณจะต้องใช้สูตร INDIRECT ที่ซับซ้อนขึ้นอีกเล็กน้อยพร้อมกับฟังก์ชัน SUBSTITUTE ที่ซ้อนกัน
สำหรับคำแนะนำทีละขั้นตอนโดยละเอียดเกี่ยวกับวิธีใช้ INDIRECT กับ การตรวจสอบความถูกต้องของข้อมูลใน Excel โปรดดูบทช่วยสอนนี้: วิธีสร้างรายการแบบหล่นลงใน Excel
ฟังก์ชัน INDIRECT ของ Excel - ข้อผิดพลาดและปัญหาที่เป็นไปได้
ตามที่แสดงในตัวอย่างข้างต้น ฟังก์ชัน INDIRECT ฟังก์ชันมีประโยชน์มากเมื่อต้องจัดการกับการอ้างอิงเซลล์และช่วง อย่างไรก็ตาม ไม่ใช่ว่าผู้ใช้ Excel ทุกคนกระตือรือร้นที่จะตอบรับสิ่งนี้เป็นส่วนใหญ่ เนื่องจากการใช้ INDIRECT ในสูตร Excel อย่างกว้างขวางส่งผลให้ขาดความโปร่งใส ฟังก์ชัน INDIRECT ตรวจสอบได้ยากเนื่องจากเซลล์ที่อ้างถึงไม่ใช่ตำแหน่งสุดท้ายของค่าที่ใช้ในสูตร ซึ่งค่อนข้างสับสนโดยเฉพาะอย่างยิ่งเมื่อทำงานกับสูตรที่ซับซ้อนขนาดใหญ่
นอกเหนือจาก ดังกล่าวข้างต้น เช่นเดียวกับฟังก์ชัน Excel อื่นๆ INDIRECT อาจส่งข้อผิดพลาดหากคุณใช้อาร์กิวเมนต์ของฟังก์ชันในทางที่ผิด นี่คือรายการข้อผิดพลาดทั่วไปส่วนใหญ่:
Excel INDIRECT #REF! error
ส่วนใหญ่แล้ว ฟังก์ชัน INDIRECT จะส่งกลับ #REF! ข้อผิดพลาดในสามกรณี:
- ref_text ไม่ใช่การอ้างอิงเซลล์ที่ถูกต้อง หากพารามิเตอร์ ref_text ในสูตรทางอ้อมของคุณไม่ใช่การอ้างอิงเซลล์ที่ถูกต้อง สูตรจะส่งผลให้ #REF! ค่าความผิดพลาด เพื่อหลีกเลี่ยงปัญหาที่อาจเกิดขึ้น โปรดตรวจสอบฟังก์ชัน INDIRECTอาร์กิวเมนต์
- เกินขีดจำกัดของช่วง ถ้าอาร์กิวเมนต์ ref_text ของสูตรทางอ้อมของคุณอ้างถึงช่วงของเซลล์ที่เกินขีดจำกัดแถวที่ 1,048,576 หรือขีดจำกัดคอลัมน์ที่ 16,384 คุณจะได้รับข้อผิดพลาด #REF ใน Excel 2007, 2010 และ Excel 2013 ด้วย Excel เวอร์ชันก่อนหน้าจะละเว้นค่าที่เกิน จำกัดและส่งคืนค่าบางอย่าง แม้ว่ามักจะไม่ใช่ค่าที่คุณคาดหวัง
- ชีตหรือเวิร์กบุ๊กที่อ้างถึงปิดอยู่ หากสูตรทางอ้อมของคุณอ้างอิงไปยังเวิร์กบุ๊กหรือเวิร์กชีต Excel อื่น แสดงว่า ต้องเปิดสมุดงาน / สเปรดชีตอื่น มิฉะนั้น INDIRECT จะส่งกลับ #REF! ข้อผิดพลาด
Excel INDIRECT #NAME? ข้อผิดพลาด
นี่เป็นกรณีที่ชัดเจนที่สุด หมายความว่ามีข้อผิดพลาดบางอย่างในชื่อฟังก์ชัน ซึ่งนำเราไปสู่จุดถัดไป : )
การใช้ฟังก์ชัน INDIRECT ในภาษาที่ไม่ใช่ภาษาอังกฤษ
คุณอาจสงสัยว่าชื่อภาษาอังกฤษของฟังก์ชัน INDIRECT ได้รับการแปลเป็น 14 ภาษา รวมถึง:
|
|
หากคุณสนใจที่จะดูรายการทั้งหมด โปรดดูหน้านี้
ปัญหาทั่วไปเกี่ยวกับการแปลที่ไม่ใช่ภาษาอังกฤษคือไม่ใช่ชื่อของฟังก์ชัน INDIRECT แต่เป็น Regional Settings สำหรับ List Separator ที่แตกต่างกัน ในการกำหนดค่า Windows มาตรฐานสำหรับอเมริกาเหนือและบางประเทศ ตัวคั่นรายการ เริ่มต้นคือเครื่องหมายจุลภาค ในประเทศแถบยุโรป เครื่องหมายจุลภาคจะถูกสงวนไว้เป็น สัญลักษณ์ทศนิยม และ ตัวคั่นรายการ ถูกตั้งค่าเป็นเครื่องหมายอัฒภาค
ด้วยเหตุนี้ เมื่อคัดลอกสูตรระหว่างสองสูตร ตำแหน่งที่ตั้งของ Excel ที่แตกต่างกัน คุณอาจได้รับข้อความแสดงข้อผิดพลาด " เราพบปัญหากับสูตรนี้… " เนื่องจาก ตัวคั่นรายการ ที่ใช้ในสูตรแตกต่างจากที่ตั้งค่าไว้ในเครื่องของคุณ หากคุณพบข้อผิดพลาดนี้เมื่อคัดลอกสูตร INDIRECT จากบทช่วยสอนนี้ไปยัง Excel เพียงแทนที่เครื่องหมายจุลภาค (,) ทั้งหมดด้วยเครื่องหมายอัฒภาค (;) เพื่อแก้ไข
วิธีตรวจสอบว่าตัวคั่นรายการและสัญลักษณ์ทศนิยมตัวใด ตั้งค่าในเครื่องของคุณ เปิด แผงควบคุม และไปที่ ภูมิภาคและภาษา > การตั้งค่าเพิ่มเติม .
หวังว่าบทช่วยสอนนี้จะช่วยให้เข้าใจถึงการใช้ INDIRECT ใน Excel ตอนนี้คุณรู้จุดแข็งและข้อจำกัดของมันแล้ว ก็ถึงเวลาลองใช้งานและดูว่าฟังก์ชัน INDIRECT สามารถทำให้งาน Excel ของคุณง่ายขึ้นได้อย่างไร ขอบคุณที่อ่าน!
อาร์กิวเมนต์ของฟังก์ชันใช่ไหม ดังนั้น มาดูอย่างรวดเร็วเกี่ยวกับไวยากรณ์ INDIRECT ของ Excel ก่อนไวยากรณ์ของฟังก์ชัน INDIRECT
ฟังก์ชัน INDIRECT ใน Excel จะส่งกลับการอ้างอิงเซลล์จากสตริงข้อความ มีอาร์กิวเมนต์สองอาร์กิวเมนต์ โดยอาร์กิวเมนต์แรกจำเป็นและอาร์กิวเมนต์ที่สองเป็นทางเลือก:
INDIRECT(ref_text, [a1])ref_text - เป็นการอ้างอิงเซลล์ หรือการอ้างอิงไปยังเซลล์ใน รูปแบบของสตริงข้อความหรือช่วงที่มีชื่อ
a1 - เป็นค่าตรรกะที่ระบุประเภทของการอ้างอิงที่มีอยู่ในอาร์กิวเมนต์ ref_text:
- หากเป็น TRUE หรือไม่ระบุ ref_text จะตีความว่าเป็นการอ้างอิงเซลล์ลักษณะ A1
- หากเป็น FALSE จะถือว่า ref_text เป็นการอ้างอิง R1C1
ในขณะที่ประเภทการอ้างอิง R1C1 อาจเป็น มีประโยชน์ในบางสถานการณ์ คุณอาจต้องการใช้การอ้างอิง A1 ที่คุ้นเคยเป็นส่วนใหญ่ อย่างไรก็ตาม สูตร INDIRECT เกือบทั้งหมดในบทช่วยสอนนี้จะใช้การอ้างอิง A1 ดังนั้นเราจะไม่ใช้อาร์กิวเมนต์ที่สอง
การใช้ฟังก์ชัน INDIRECT ขั้นพื้นฐาน
เพื่อทำความเข้าใจข้อมูลเชิงลึกของฟังก์ชัน เรามาเขียน สูตรง่ายๆ ที่แสดงวิธีใช้ INDIRECT ใน Excel
สมมติว่า คุณมีเลข 3 ในเซลล์ A1 และข้อความ A1 ในเซลล์ C1 ตอนนี้ ใส่สูตร =INDIRECT(C1)
ในเซลล์อื่นและดูว่าเกิดอะไรขึ้น:
- ฟังก์ชัน INDIRECT อ้างถึงค่าในเซลล์ C1 ซึ่งก็คือ A1
- ฟังก์ชันถูกส่งไปยัง เซลล์ A1 ที่เลือกค่าที่จะส่งคืนซึ่งก็คือหมายเลข 3
ดังนั้น สิ่งที่ฟังก์ชัน INDIRECT ทำจริงในตัวอย่างนี้คือ การแปลงสตริงข้อความเป็นการอ้างอิงเซลล์ .
หากคุณคิดว่าสิ่งนี้ยังไม่ค่อยมีประโยชน์ โปรดอดทนกับฉันและฉันจะแสดงสูตรเพิ่มเติมที่เปิดเผยพลังที่แท้จริงของฟังก์ชัน INDIRECT ของ Excel
วิธีใช้ INDIRECT ใน Excel - ตัวอย่างสูตร
ตามที่แสดงในตัวอย่างข้างต้น คุณสามารถใช้ฟังก์ชัน INDIRECT ของ Excel เพื่อใส่ที่อยู่ของเซลล์หนึ่งลงในอีกเซลล์หนึ่งเป็นสตริงข้อความปกติ และรับค่าของเซลล์ที่ 1 โดยอ้างอิงเซลล์ที่ 2 อย่างไรก็ตาม ตัวอย่างเล็กๆ น้อยๆ นั้นไม่ได้เป็นเพียงการบอกใบ้ถึงความสามารถ INDIRECT เท่านั้น
เมื่อทำงานกับข้อมูลจริง ฟังก์ชัน INDIRECT สามารถเปลี่ยนสตริงข้อความใดๆ ให้เป็นข้อมูลอ้างอิง รวมถึงสตริงที่ซับซ้อนมากที่คุณสร้างโดยใช้ค่าของ เซลล์อื่นและผลลัพธ์ที่ส่งคืนโดยสูตร Excel อื่น แต่อย่าวางรถเข็นไว้ก่อนม้า และเรียกใช้สูตร Indirect ของ Excel หลายสูตรทีละสูตร
สร้างการอ้างอิงทางอ้อมจากค่าเซลล์
ตามที่คุณทราบ ฟังก์ชัน Excel INDIRECT อนุญาตให้ สำหรับรูปแบบการอ้างอิง A1 และ R1C1 โดยปกติ คุณจะไม่สามารถใช้ทั้งสองรูปแบบในแผ่นงานเดียวได้ คุณสามารถสลับไปมาระหว่างการอ้างอิงทั้งสองประเภทผ่านทาง ไฟล์ > ตัวเลือก > สูตร > กล่องกาเครื่องหมาย R1C1 นี่คือเหตุผลที่ผู้ใช้ Excel ไม่ค่อยพิจารณาใช้ R1C1เป็นวิธีการอ้างอิงทางเลือก
ในสูตร INDIRECT คุณสามารถใช้ประเภทการอ้างอิงในแผ่นงานเดียวกันได้หากต้องการ ก่อนที่เราจะดำเนินการต่อไป คุณอาจต้องการทราบความแตกต่างระหว่างสไตล์การอ้างอิง A1 และ R1C1
สไตล์ A1 เป็นประเภทการอ้างอิงตามปกติใน Excel ที่อ้างถึงคอลัมน์ตามด้วยแถว ตัวเลข. ตัวอย่างเช่น B2 อ้างถึงเซลล์ที่จุดตัดของคอลัมน์ B และแถวที่ 2
สไตล์ R1C1 เป็นประเภทการอ้างอิงที่ตรงกันข้าม - แถวตามด้วยคอลัมน์ ซึ่งต้องใช้เวลาพอสมควร ถึง : ) ตัวอย่างเช่น R4C1 อ้างถึงเซลล์ A4 ซึ่งอยู่ในแถวที่ 4 คอลัมน์ที่ 1 ในแผ่นงาน ถ้าไม่มีตัวเลขตามหลังตัวอักษร แสดงว่าคุณกำลังอ้างถึงแถวหรือคอลัมน์เดียวกัน
และตอนนี้ มาดูกันว่าฟังก์ชัน INDIRECT จัดการกับการอ้างอิง A1 และ R1C1 อย่างไร:
ตามที่คุณเห็นใน ภาพหน้าจอด้านบน สูตรทางอ้อมที่แตกต่างกันสามสูตรให้ผลลัพธ์เดียวกัน คุณรู้แล้วหรือยังว่าทำไม? ฉันพนันได้เลยว่าคุณมี : )
- สูตรในเซลล์ D1:
=INDIRECT(C1)
นี่เป็นสูตรที่ง่ายที่สุด สูตรอ้างถึงเซลล์ C1 ดึงค่า - สตริงข้อความ A2 แปลงเป็นการอ้างอิงเซลล์ ตรงไปที่เซลล์ A2 และส่งกลับค่าซึ่งก็คือ 222
- สูตรในเซลล์ D3:
=INDIRECT(C3,FALSE)
FALSE ในอาร์กิวเมนต์ที่ 2 บ่งชี้ว่าค่าที่อ้างอิง (C3) ควรได้รับการปฏิบัติเหมือนการอ้างอิงเซลล์ R1C1 เช่น หมายเลขแถวตามด้วยหมายเลขคอลัมน์ ดังนั้น,สูตร INDIRECT ของเราตีความค่าในเซลล์ C3 (R2C1) เป็นการอ้างอิงถึงเซลล์ที่จุดเชื่อมระหว่างแถว 2 และคอลัมน์ 1 ซึ่งก็คือเซลล์ A2
การสร้างการอ้างอิงทางอ้อมจากค่าในเซลล์และข้อความ
คล้ายกับวิธีที่เราสร้างการอ้างอิงจากค่าเซลล์ คุณสามารถรวม สตริงข้อความ และ การอ้างอิงเซลล์ ภายในสูตร INDIRECT ของคุณ โดยเชื่อมโยงกับตัวดำเนินการการต่อข้อมูล (&) .
ในตัวอย่างต่อไปนี้ สูตร: =INDIRECT("B"&C2) ส่งกลับค่าจากเซลล์ B2 ตามห่วงโซ่ตรรกะต่อไปนี้:
ฟังก์ชัน INDIRECT เชื่อมองค์ประกอบต่างๆ ในอาร์กิวเมนต์ ref_text - ข้อความ B และค่าในเซลล์ C2 -> ค่าในเซลล์ C2 คือเลข 2 ซึ่งอ้างอิงถึงเซลล์ B2 -> สูตรไปที่เซลล์ B2 และส่งกลับค่าซึ่งก็คือเลข 10
การใช้ฟังก์ชัน INDIRECT กับช่วงที่มีชื่อ
นอกเหนือจากการอ้างอิงจากค่าเซลล์และข้อความแล้ว คุณยังสามารถรับ Excel ฟังก์ชัน INDIRECT เพื่ออ้างถึง ช่วงที่มีชื่อ .
สมมติว่า คุณมีช่วงที่มีชื่อต่อไปนี้ในแผ่นงานของคุณ:
- Apples - B2:B6
- กล้วย - C2:C6
- มะนาว - D2:D6
หากต้องการสร้างการอ้างอิงไดนามิกของ Excel ไปยังช่วงที่มีชื่อใดๆ ด้านบน เพียงป้อนชื่อในบางเซลล์ เช่น G1 และอ้างถึงเซลล์นั้นจากสูตรทางอ้อม =INDIRECT(G1)
และตอนนี้ คุณสามารถก้าวไปอีกขั้นและฝังสูตรทางอ้อมนี้ลงในฟังก์ชัน Excel อื่นๆ เพื่อคำนวณผลรวมและค่าเฉลี่ยของค่าในช่วงที่ระบุชื่อ หรือหาค่าสูงสุด/ต่ำสุดภายใน Rage:
-
=SUM(INDIRECT(G1))
-
=AVERAGE(INDIRECT(G1))
-
=MAX(INDIRECT(G1))
-
=MIN(INDIRECT(G1))
ตอนนี้ คุณมีแนวคิดทั่วไปเกี่ยวกับวิธีใช้ฟังก์ชัน INDIRECT ใน Excel แล้ว เราสามารถทดลองกับสูตรที่มีประสิทธิภาพมากขึ้นได้
สูตร INDIRECT เพื่ออ้างถึงเวิร์กชีตอื่นแบบไดนามิก
ประโยชน์ของฟังก์ชัน INDIRECT ของ Excel ไม่ได้จำกัดอยู่เพียงการสร้างการอ้างอิงเซลล์ "ไดนามิก" คุณยังสามารถใช้เพื่ออ้างถึงเซลล์ในเวิร์กชีตอื่น "ได้ทันที" และนี่คือวิธี
สมมติว่า คุณมีข้อมูลสำคัญบางอย่างในชีต 1 และคุณต้องการดึงข้อมูลนั้นในชีต 2 ภาพหน้าจอต่อไปนี้แสดงให้เห็นว่าสูตรทางอ้อมของ Excel สามารถจัดการกับงานนี้ได้อย่างไร:
เรามาแยกสูตรที่คุณเห็นในภาพหน้าจอและทำความเข้าใจกัน
อย่างที่คุณทราบ วิธีปกติในการอ้างอิงชีตอื่น ใน Excel คือการเขียนชื่อชีตตามด้วยเครื่องหมายอัศเจรีย์และการอ้างอิงเซลล์/ช่วง เช่น SheetName!Range เนื่องจากชื่อชีตมักจะมีช่องว่าง คุณจึงควรใส่เครื่องหมายคำพูด (ชื่อ ไม่ใช่เว้นวรรค : ) ในเครื่องหมายอัญประกาศเดี่ยวเพื่อป้องกันข้อผิดพลาด ตัวอย่างเช่น 'My Sheet!'$A$1 .
และตอนนี้ สิ่งที่คุณต้องทำก็คือป้อนชื่อแผ่นงานในเซลล์หนึ่ง ที่อยู่เซลล์ในอีกเซลล์หนึ่ง ต่อเข้าด้วยกันในสตริงข้อความ และป้อนสตริงนั้นไปยังฟังก์ชัน INDIRECT โปรดจำไว้ว่าในสตริงข้อความ คุณต้องใส่แต่ละองค์ประกอบนอกเหนือจากที่อยู่เซลล์หรือตัวเลขในเครื่องหมายอัญประกาศคู่ และเชื่อมโยงองค์ประกอบทั้งหมดเข้าด้วยกันโดยใช้ตัวดำเนินการการต่อข้อมูล (&)
จากข้อมูลด้านบน เราได้รับ รูปแบบต่อไปนี้:
INDIRECT("'" & ชื่อแผ่นงาน & "'!" & เซลล์ที่จะดึงข้อมูลจาก )กลับไปที่ตัวอย่างของเรา คุณใส่ชื่อแผ่นงานในเซลล์ A1 และพิมพ์ที่อยู่เซลล์ในคอลัมน์ B ดังที่แสดงในภาพหน้าจอด้านบน ดังนั้น คุณจะได้สูตรต่อไปนี้:
INDIRECT("'" & $A$1 & "'!" & B1)
นอกจากนี้ โปรดสังเกตว่า หากคุณกำลังคัดลอกสูตรลงในเซลล์หลายเซลล์ คุณต้องล็อกการอ้างอิงถึงชื่อแผ่นงานโดยใช้ การอ้างอิงเซลล์แบบสัมบูรณ์ เช่น $A$1
หมายเหตุ
- หากเซลล์ใดเซลล์หนึ่งที่มีชื่อและที่อยู่เซลล์ของชีตที่ 2 (A1 และ B1 ในสูตรด้านบน) ว่างเปล่า สูตรทางอ้อมของคุณจะส่งกลับข้อผิดพลาด เพื่อป้องกันสิ่งนี้ คุณสามารถรวมฟังก์ชัน INDIRECT ในฟังก์ชัน IF:
IF(OR($A$1="",B1=""), "", INDIRECT("'" & $A$1 & "'!" & B1))
- เพื่อให้สูตร INDIRECT ที่อ้างถึงชีตอื่นทำงานได้อย่างถูกต้อง ชีตที่อ้างถึงควรเปิดอยู่ มิฉะนั้น สูตรจะส่งกลับข้อผิดพลาด #REF เพื่อหลีกเลี่ยงข้อผิดพลาด คุณสามารถใช้ฟังก์ชัน IFERROR ซึ่งจะแสดงสตริงว่าง ไม่ว่าข้อผิดพลาดจะเกิดขึ้น:
IFERROR(INDIRECT("'" & $A$1 & "'!" &B1), "")
การสร้างการอ้างอิงไดนามิกของ Excel ไปยังสมุดงานอื่น
สูตรทางอ้อมที่อ้างถึงไปยังสมุดงาน Excel อื่นจะใช้วิธีเดียวกันกับการอ้างอิงไปยังสเปรดชีตอื่น คุณเพียงแค่ต้องระบุชื่อสมุดงานนอกเหนือจากชื่อแผ่นงานและที่อยู่เซลล์
เพื่อให้ง่ายขึ้น เรามาเริ่มด้วยการอ้างอิงถึงหนังสือเล่มอื่นตามปกติ (มีการเพิ่มเครื่องหมายอะพอสทรอฟีในกรณีที่หนังสือของคุณ และ/หรือชื่อแผ่นงานมีช่องว่าง):
'[Book_name.xlsx]Sheet_name'!Range
สมมติว่าชื่อหนังสืออยู่ในเซลล์ A2 ชื่อแผ่นงานอยู่ใน B2 และ ที่อยู่เซลล์อยู่ใน C2 เราได้รับสูตรต่อไปนี้:
=INDIRECT("'[" & $A$2 & "]" & $B$2 & "'!" & C2)
เนื่องจากคุณไม่ต้องการให้เซลล์ที่มีชื่อหนังสือและชีตเปลี่ยนแปลงเมื่อคัดลอกสูตรไปยังเซลล์อื่น คุณ ล็อกโดยใช้การอ้างอิงเซลล์แบบสัมบูรณ์ $A$2 และ $B$2 ตามลำดับ
และตอนนี้ คุณสามารถเขียนการอ้างอิงแบบไดนามิกของคุณเองไปยังสมุดงาน Excel อื่นโดยใช้รูปแบบต่อไปนี้:
=INDIRECT("'[" & ชื่อหนังสือ & " ]" & ชื่อแผ่นงาน & "'!" & ที่อยู่เซลล์ )หมายเหตุ สมุดงานสูตรของคุณควรเปิดอยู่เสมอ มิฉะนั้น ฟังก์ชัน INDIRECT จะส่งข้อผิดพลาด #REF ตามปกติ ฟังก์ชัน IFERROR สามารถช่วยคุณหลีกเลี่ยงได้:
=IFERROR(INDIRECT("'[" & A2 & "]" & $A$1 & "'!" & B1), "")
การใช้ฟังก์ชัน INDIRECT ของ Excel เพื่อล็อกการอ้างอิงเซลล์
โดยปกติ Microsoft Excel จะเปลี่ยนการอ้างอิงเซลล์เมื่อคุณแทรก ใหม่หรือลบแถวหรือคอลัมน์ที่มีอยู่ในแผ่นงาน เพื่อป้องกันไม่ให้สิ่งนี้เกิดขึ้น คุณสามารถทำได้ใช้ฟังก์ชัน INDIRECT เพื่อทำงานกับการอ้างอิงเซลล์ที่ไม่ควรเสียหายไม่ว่ากรณีใดๆ
เพื่อแสดงความแตกต่าง โปรดทำดังต่อไปนี้:
- ป้อนค่าใดๆ ในเซลล์ใดๆ โดยพูดว่า , หมายเลข 20 ในเซลล์ A1
- อ้างอิงถึง A1 จากอีกสองเซลล์ด้วยวิธีที่แตกต่างกัน:
=A1
และ=INDIRECT("A1")
- แทรกแถวใหม่เหนือแถว 1
ดูว่าเกิดอะไรขึ้น? เซลล์ที่มีตัวดำเนินการเชิงตรรกะ เท่ากับ ยังคงส่งคืน 20 เนื่องจากสูตรถูกเปลี่ยนเป็น =A2 โดยอัตโนมัติ เซลล์ที่มีสูตร INDIRECT จะคืนค่า 0 เนื่องจากสูตรไม่ได้ถูกเปลี่ยนเมื่อมีการแทรกแถวใหม่ และยังคงอ้างถึงเซลล์ A1 ซึ่งว่างเปล่าในขณะนี้:
หลังจากการสาธิตนี้ คุณอาจอยู่ภายใต้ รู้สึกว่าฟังก์ชัน INDIRECT สร้างความรำคาญมากกว่าความช่วยเหลือ โอเค มาลองวิธีอื่นกัน
สมมติว่าคุณต้องการรวมค่าในเซลล์ A2:A5 และทำได้ง่ายๆ โดยใช้ฟังก์ชัน SUM:
=SUM(A2:A5)
อย่างไรก็ตาม คุณต้องการให้สูตรไม่เปลี่ยนแปลง ไม่ว่าจะลบหรือแทรกกี่แถวก็ตาม วิธีแก้ไขที่ชัดเจนที่สุด - การใช้การอ้างอิงแบบสัมบูรณ์ - จะไม่ช่วยอะไร เพื่อให้แน่ใจ ให้ป้อนสูตร =SUM($A$2:$A$5)
ในบางเซลล์ แทรกแถวใหม่ พูดที่แถวที่ 3 แล้ว... หาสูตรที่แปลงเป็น =SUM($A$2:$A$6)
แน่นอนว่า Microsoft Excel แบบนี้จะทำงานได้ดีในเกือบทุกเซลล์ กรณี อย่างไรก็ตาม อาจมีบางสถานการณ์ที่คุณไม่ต้องการให้สูตรเปลี่ยนแปลง