สารบัญ
ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีสร้างช่วงชื่อแบบไดนามิกใน Excel และวิธีการใช้ในสูตรเพื่อให้ข้อมูลใหม่รวมอยู่ในการคำนวณโดยอัตโนมัติ
ในสัปดาห์ที่แล้ว บทช่วยสอน เราดูวิธีต่างๆ ในการกำหนดช่วงชื่อคงที่ใน Excel ชื่อสแตติกจะอ้างถึงเซลล์เดียวกันเสมอ หมายความว่าคุณจะต้องอัปเดตการอ้างอิงช่วงด้วยตนเองทุกครั้งที่คุณเพิ่มหรือลบข้อมูลที่มีอยู่
หากคุณกำลังทำงานกับชุดข้อมูลที่เปลี่ยนแปลงอย่างต่อเนื่อง คุณอาจต้องการ ทำให้ช่วงที่มีชื่อของคุณเป็นไดนามิกเพื่อให้ขยายโดยอัตโนมัติเพื่อรองรับรายการที่เพิ่มใหม่หรือสัญญาเพื่อไม่รวมข้อมูลที่ถูกลบ นอกจากนี้ในบทช่วยสอนนี้ คุณจะพบคำแนะนำทีละขั้นตอนโดยละเอียดเกี่ยวกับวิธีการดำเนินการนี้
วิธีสร้างช่วงชื่อไดนามิกใน Excel
สำหรับ เริ่มต้น เรามาสร้างช่วงชื่อไดนามิกที่ประกอบด้วยคอลัมน์เดียวและจำนวนแถวที่แปรผัน หากต้องการดำเนินการ ให้ทำตามขั้นตอนเหล่านี้:
- บนแท็บ สูตร ในกลุ่ม ชื่อที่กำหนด คลิก กำหนดชื่อ . หรือกด Ctrl + F3 เพื่อเปิด Excel Name Manger และคลิกปุ่ม New…
- ไม่ว่าจะด้วยวิธีใด กล่องโต้ตอบ New Name จะเปิดขึ้นโดยที่ คุณระบุรายละเอียดต่อไปนี้:
- ในช่อง ชื่อ ให้พิมพ์ชื่อสำหรับช่วงไดนามิกของคุณ
- ในช่อง ขอบเขต แบบเลื่อนลง ให้ตั้งค่า ขอบเขตของชื่อ ส่วนใหญ่แนะนำให้ใช้ สมุดงาน (ค่าเริ่มต้น)กรณี
- ในช่อง อ้างถึง ให้ป้อนสูตร OFFSET COUNTA หรือ INDEX COUNTA อย่างใดอย่างหนึ่ง
- คลิก ตกลง เสร็จแล้ว!
ในภาพหน้าจอต่อไปนี้ เรากำหนดช่วงที่มีชื่อแบบไดนามิก รายการ ที่รองรับ เซลล์ที่มีข้อมูล ทั้งหมดในคอลัมน์ A ยกเว้นแถวส่วนหัว :
สูตร OFFSET เพื่อกำหนดช่วงชื่อแบบไดนามิกของ Excel
สูตรทั่วไปเพื่อสร้างช่วงชื่อแบบไดนามิกใน Excel มีดังนี้:
OFFSET ( เซลล์แรก, 0, 0, COUNTA( คอลัมน์), 1)ที่ไหน:
- เซลล์แรก - เซลล์แรก รายการที่จะรวมไว้ในช่วงที่มีชื่อ เช่น $A$2.
- คอลัมน์ - การอ้างอิงแบบสัมบูรณ์ไปยังคอลัมน์ เช่น $A:$A.
ที่แกนหลักของสูตรนี้ คุณใช้ฟังก์ชัน COUNTA เพื่อรับจำนวนเซลล์ที่ไม่ว่างในคอลัมน์ที่สนใจ ตัวเลขนั้นตรงไปยังอาร์กิวเมนต์ ความสูง ของฟังก์ชัน OFFSET(reference, rows, cols, [height], [width]) เพื่อบอกจำนวนแถวที่จะส่งคืน
นอกเหนือจากนั้น เป็นสูตรออฟเซ็ตธรรมดา โดยที่:
- การอ้างอิง เป็นจุดเริ่มต้นที่คุณใช้ฐานของค่าออฟเซ็ต (เซลล์แรก)
- แถว และ cols เป็น 0 ทั้งคู่ เนื่องจากไม่มีคอลัมน์หรือแถวให้หักล้าง
- ความกว้าง เท่ากับ 1 คอลัมน์
ตัวอย่างเช่น ในการสร้างช่วงชื่อไดนามิกสำหรับคอลัมน์ A ใน Sheet3 โดยเริ่มต้นในเซลล์ A2 เราใช้สูตรนี้:
=OFFSET(Sheet3!$A$2, 0, 0, COUNTA(Sheet3!$A:$A), 1)
หมายเหตุ หากคุณกำลังกำหนดช่วงไดนามิกในแผ่นงานปัจจุบัน คุณไม่จำเป็นต้องใส่ชื่อแผ่นงานในข้อมูลอ้างอิง Excel จะทำเพื่อคุณโดยอัตโนมัติ หากคุณกำลังสร้างช่วงสำหรับชีตอื่น ให้เติมคำนำหน้าเซลล์หรือการอ้างอิงช่วงด้วยชื่อชีตตามด้วยเครื่องหมายอัศเจรีย์ (เช่นในตัวอย่างสูตรด้านบน)
สูตร INDEX เพื่อสร้างช่วงที่มีชื่อแบบไดนามิกใน Excel
อีกวิธีหนึ่งในการสร้างช่วงไดนามิกของ Excel คือการใช้ COUNTA ร่วมกับฟังก์ชัน INDEX
first_cell:INDEX( column,COUNTA( คอลัมน์))สูตรนี้ประกอบด้วยสองส่วน:
- ทางด้านซ้ายของตัวดำเนินการช่วง (:) ให้คุณใส่การอ้างอิงเริ่มต้นแบบกำหนดค่าตายตัว เช่น $A$2 .
- ทางด้านขวา ให้คุณใช้ฟังก์ชัน INDEX(array, row_num, [column_num]) เพื่อหาการอ้างอิงสิ้นสุด ที่นี่ คุณระบุทั้งคอลัมน์ A สำหรับอาร์เรย์และใช้ COUNTA เพื่อรับหมายเลขแถว (เช่น จำนวนเซลล์ที่ไม่มีรายการในคอลัมน์ A)
สำหรับชุดข้อมูลตัวอย่างของเรา (โปรดดู ภาพหน้าจอด้านบน) สูตรจะเป็นดังนี้:
=$A$2:INDEX($A:$A, COUNTA($A:$A))
เนื่องจากมีเซลล์ที่ไม่ว่าง 5 เซลล์ในคอลัมน์ A รวมถึงส่วนหัวของคอลัมน์ COUNTA จึงส่งกลับ 5 ดังนั้น INDEX จึงส่งกลับ $A $5 ซึ่งเป็นเซลล์ที่ใช้ล่าสุดในคอลัมน์ A (โดยปกติสูตรดัชนีจะส่งกลับค่า แต่ตัวดำเนินการอ้างอิงบังคับให้ส่งคืนค่าอ้างอิง) และเนื่องจากเราได้กำหนด $A$2 เป็นจุดเริ่มต้น ผลลัพธ์สุดท้ายของสูตรคือช่วง $A$2:$A$5
ในการทดสอบช่วงไดนามิกที่สร้างขึ้นใหม่ คุณสามารถให้ COUNTA ดึงรายการที่นับได้:
=COUNTA(Items)
หากทำทุกอย่างถูกต้อง ผลลัพธ์ของสูตรจะเปลี่ยนไปเมื่อคุณเพิ่มหรือลบรายการไปยัง/ออกจากรายการ:
หมายเหตุ สูตรทั้งสองที่กล่าวถึงข้างต้นให้ผลลัพธ์ที่เหมือนกัน อย่างไรก็ตาม มีความแตกต่างในประสิทธิภาพที่คุณควรทราบ OFFSET เป็นฟังก์ชันที่ผันผวนซึ่งจะคำนวณใหม่ทุกครั้งที่มีการเปลี่ยนแปลงในแผ่นงาน สำหรับเครื่องจักรสมัยใหม่ที่ทรงพลังและชุดข้อมูลที่มีขนาดเหมาะสม สิ่งนี้ไม่ควรเป็นปัญหา ในเครื่องความจุต่ำและชุดข้อมูลขนาดใหญ่ อาจทำให้ Excel ของคุณทำงานช้าลง ในกรณีนั้น คุณควรใช้สูตร INDEX เพื่อสร้างช่วงไดนามิกที่มีชื่อ
วิธีสร้างช่วงไดนามิกสองมิติใน Excel
ในการสร้างช่วงที่มีชื่อสองมิติ โดยที่ไม่เพียงแต่จำนวนแถวแต่รวมถึงจำนวนคอลัมน์ด้วย ให้ใช้การแก้ไขสูตร INDEX COUNTA ต่อไปนี้:
first_cell:INDEX($1:$1048576, COUNTA( first_column), COUNTA( first_row)))ในสูตรนี้ คุณมีฟังก์ชัน COUNTA สองฟังก์ชันเพื่อรับแถวสุดท้ายที่ไม่ว่างและคอลัมน์สุดท้ายที่ไม่ว่าง ( row_num และอาร์กิวเมนต์ column_num ของฟังก์ชัน INDEX ตามลำดับ) ในอาร์กิวเมนต์ อาร์เรย์ คุณจะป้อนข้อมูลทั้งเวิร์กชีต (1048576 แถวใน Excel 2016 - 2007; 65535 แถวใน Excel 2003 และต่ำกว่า)
และตอนนี้มากำหนดช่วงไดนามิกอีกหนึ่งช่วงสำหรับชุดข้อมูลของเรา: ช่วงชื่อ ยอดขาย ที่รวมตัวเลขการขายสำหรับ 3 เดือน (ม.ค. ถึง มี.ค.) และปรับโดยอัตโนมัติเมื่อคุณเพิ่มรายการใหม่ (แถว) หรือเดือน (คอลัมน์) ใน ตาราง
เมื่อข้อมูลการขายเริ่มต้นในคอลัมน์ B แถวที่ 2 สูตรจะมีรูปแบบต่อไปนี้:
=$B$2:INDEX($1:$1048576,COUNTA($B:$B),COUNTA($2:$2))
เพื่อให้แน่ใจว่าช่วงไดนามิกของคุณทำงานตามที่ควรจะเป็น ให้ป้อนสูตรต่อไปนี้ในแผ่นงาน:
=SUM(sales)
=SUM(B2:D5)
ตามที่คุณเห็นในภาพหน้าจอด้านล่างนี้ ทั้งสองสูตรส่งคืนผลรวมที่เท่ากัน ความแตกต่างจะแสดงให้เห็นทันทีที่คุณเพิ่มรายการใหม่ลงในตาราง สูตรแรก (ที่มีช่วงชื่อไดนามิก) จะอัปเดตโดยอัตโนมัติ ในขณะที่สูตรที่สองจะต้องอัปเดตด้วยตนเองเมื่อมีการเปลี่ยนแปลงแต่ละครั้ง นั่นสร้างความแตกต่างอย่างมากใช่ไหม
วิธีใช้ช่วงชื่อแบบไดนามิกในสูตร Excel
ในส่วนก่อนหน้าของบทช่วยสอนนี้ คุณได้เห็นแล้ว สูตรง่ายๆ สองสามสูตรที่ใช้ช่วงไดนามิก ทีนี้ มาลองคิดอะไรบางอย่างที่มีความหมายมากขึ้นซึ่งแสดงค่าจริงของช่วงชื่อไดนามิกของ Excel
สำหรับตัวอย่างนี้ เราจะใช้สูตร INDEX MATCH แบบคลาสสิกที่ใช้ Vlookup ใน Excel:
INDEX ( return_range, MATCH ( lookup_value, lookup_range, 0))
...และดูว่าเรา สามารถทำให้สูตรมีประสิทธิภาพยิ่งขึ้นด้วยการใช้ช่วงที่ตั้งชื่อแบบไดนามิก
ดังที่แสดงในภาพหน้าจอด้านบน เรากำลังพยายามสร้างแดชบอร์ด ซึ่งผู้ใช้ป้อนชื่อรายการในครึ่งแรกและรับยอดขายรวมสำหรับรายการนั้นในครึ่งหลัง ตารางตัวอย่างของเราที่สร้างขึ้นเพื่อวัตถุประสงค์ในการสาธิตมีเพียง 4 รายการ แต่ในชีตในชีวิตจริงของคุณอาจมีหลายร้อยหรือหลายพันแถว นอกจากนี้ สามารถเพิ่มรายการใหม่ได้ทุกวัน ดังนั้นการใช้การอ้างอิงจึงไม่ใช่ตัวเลือก เนื่องจากคุณจะต้องอัปเดตสูตรซ้ำแล้วซ้ำอีก ฉันขี้เกียจเกินไปสำหรับเรื่องนั้น! :)
ในการบังคับให้สูตรขยายโดยอัตโนมัติ เราจะกำหนด 3 ชื่อ: 2 ช่วงไดนามิก และ 1 เซลล์ที่มีชื่อคงที่:
Lookup_range: =$A$2:INDEX($ A:$A, COUNTA($A:$A))
Return_range: =$E$2:INDEX($E:$E, COUNTA($E:$E))
lookup_value: =$H$1
หมายเหตุ Excel จะเพิ่มชื่อของแผ่นงานปัจจุบันในการอ้างอิงทั้งหมด ดังนั้นก่อนที่จะสร้างชื่อ อย่าลืมเปิดแผ่นงานด้วยแหล่งข้อมูลของคุณ
ตอนนี้ ให้เริ่มพิมพ์สูตรใน H1 เมื่อพูดถึงอาร์กิวเมนต์แรก ให้พิมพ์ชื่อที่คุณต้องการใช้ 2-3 ตัว แล้ว Excel จะแสดงชื่อที่ตรงกันทั้งหมดที่มีอยู่ ดับเบิลคลิกชื่อที่ต้องการ แล้ว Excel จะแทรกชื่อนั้นในสูตรทันที:
สูตรที่เสร็จสมบูรณ์จะมีลักษณะดังนี้:
=INDEX(Return_range, MATCH(Lookup_value, Lookup_range, 0))
และทำงานได้อย่างสมบูรณ์แบบ!
ทันทีที่คุณเพิ่มระเบียนใหม่ลงในตาราง ข้อมูลเหล่านั้นจะรวมอยู่ในการคำนวณของคุณที่ครั้งเดียวโดยที่คุณไม่ต้องเปลี่ยนสูตรเลยแม้แต่ครั้งเดียว! และถ้าคุณต้องการย้ายสูตรไปยังไฟล์ Excel อื่น เพียงสร้างชื่อเดียวกันในสมุดงานปลายทาง คัดลอก/วางสูตร และทำให้สูตรทำงานได้ทันที
เคล็ดลับ นอกเหนือจากการทำให้สูตรคงทนมากขึ้นแล้ว ช่วงไดนามิกยังมีประโยชน์สำหรับการสร้างรายการแบบเลื่อนลงแบบไดนามิก
นี่คือวิธีที่คุณสร้างและใช้ไดนามิกเรนจ์ใน Excel หากต้องการดูสูตรที่กล่าวถึงในบทช่วยสอนนี้อย่างละเอียดยิ่งขึ้น คุณสามารถดาวน์โหลดตัวอย่างสมุดงาน Excel Dynamic Named Range ของเราได้ ฉันขอขอบคุณสำหรับการอ่านและหวังว่าจะได้พบคุณในบล็อกของเราในสัปดาห์หน้า!