ตัวดําเนินการอินเทอร์เซกชันโดยนัยถูกนํามาใช้เป็นส่วนหนึ่งของการอัปเกรดที่สําคัญไปยังภาษาสูตรของ Excel เพื่อสนับสนุนอาร์เรย์แบบไดนามิก อาร์เรย์แบบไดนามิกนําความสามารถในการคํานวณและฟังก์ชันการทํางานใหม่ๆ ที่สําคัญมาสู่ Excel
ภาษาสูตรที่อัปเกรด
ภาษาสูตรที่ได้รับการอัปเกรดของ Excel เกือบจะเหมือนกับภาษาเก่า ยกเว้นว่าจะใช้ตัวดําเนินการ @ เพื่อระบุจุดที่มีจุดตัดโดยนัย ซึ่งภาษาเก่าจะดําเนินการแบบเงียบๆ ด้วยเหตุนี้ คุณอาจสังเกตเห็น@'s appear in some formulas when opened in dynamic array Excel. It'ว่า เป็นสิ่งสําคัญที่ต้องทราบว่าสูตรของคุณจะยังคงคํานวณต่อไปในลักษณะเดิมที่เคยเป็นมา
จุดตัดโดยนัยคืออะไร?
ตรรกะอินเทอร์เซกชันโดยนัยจะลดค่าหลายค่าให้เหลือเพียงค่าเดียว Excel ทําเช่นนี้เพื่อบังคับให้สูตรส่งกลับค่าเดียว เนื่องจากเซลล์หนึ่งค่าสามารถมีได้เพียงค่าเดียวเท่านั้น ถ้าสูตรของคุณส่งกลับค่าเดียว จุดตัดโดยนัยจะไม่ทํางานอะไร (แม้ว่าในทางเทคนิคจะทําอยู่เบื้องหลัง) ตรรกะทํางานดังนี้:
- ถ้าค่าเป็นรายการเดียว ให้ส่งกลับรายการ
- ถ้าค่าเป็นช่วง จะส่งกลับค่าจากเซลล์บนแถวหรือคอลัมน์เดียวกันกับสูตร
- ถ้าค่าเป็นอาร์เรย์ ให้เลือกค่าด้านบนซ้าย
ด้วยการถือกําเนิดของอาร์เรย์แบบไดนามิก Excel จะไม่จํากัดเพียงการส่งกลับค่าเดียวจากสูตรอีกต่อไป ดังนั้นการพิมพ์ตัดโดยนัยแบบไม่เงียบจึงไม่จําเป็นอีกต่อไป ซึ่งสูตรเก่าอาจทริกเกอร์จุดตัดโดยนัยที่มองไม่เห็น การเปิดใช้งานอาร์เรย์แบบไดนามิก Excel จะแสดงตําแหน่งที่มันจะเกิดขึ้นด้วย @
ทําไมต้องเป็นสัญลักษณ์ @
สัญลักษณ์ @ ถูกใช้อยู่แล้วในการอ้างอิงตารางเพื่อระบุจุดตัดโดยนัย พิจารณาสูตรต่อไปนี้ในตาราง =[@Column1] ที่นี่ @ ระบุว่าสูตรควรใช้อินเตอร์เซกชันโดยนัยเพื่อดึงค่าบนแถวเดียวกันจาก [Column1]
คุณสามารถลบ @ ออกได้หรือไม่
บ่อยครั้งที่คุณสามารถทําได้ ขึ้นอยู่กับว่าส่วนของสูตรทางด้านขวาของ @ จะส่งกลับค่าอะไร:
- ถ้าส่งกลับค่าเดียว (กรณีที่พบบ่อยที่สุด) จะไม่มีการเปลี่ยนแปลงใดๆ โดยการเอา @ ออก
- ถ้าส่งกลับช่วงหรืออาร์เรย์ การลบ @ จะทําให้ส ปิลล์ ไปยังเซลล์ข้างเคียง
ถ้าคุณเอา @ ที่ถูกเพิ่มโดยอัตโนมัติออก แล้วเปิดเวิร์กบุ๊กใน Excel เวอร์ชันที่เก่ากว่าในภายหลัง เวิร์กบุ๊กนั้นจะปรากฏเป็น สูตรอาร์เรย์ดั้งเดิม (ครอบด้วยวงเล็บปีกกา) {}ซึ่งทําเพื่อให้แน่ใจว่าเวอร์ชันที่เก่ากว่าจะไม่ทริกเกอร์จุดตัดโดยนัย
เมื่อใดเราจะเพิ่ม @ ลงในสูตรเก่า
กล่าวโดยทั่วไป ฟังก์ชันที่ส่งกลับช่วงหลายเซลล์หรืออาร์เรย์จะถูกนําหน้าด้วย @ ถ้าถูกเขียนใน Excel เวอร์ชันที่เก่ากว่า โปรดทราบว่าไม่มีการเปลี่ยนแปลงในลักษณะการทํางานของสูตร คุณสามารถเห็นจุดตัดโดยนัยที่มองไม่เห็นก่อนหน้านี้ได้แล้ว ฟังก์ชันทั่วไปที่สามารถส่งกลับช่วงหลายเซลล์ ได้แก่ INDEX, OFFSET และฟังก์ชันที่ผู้ใช้กําหนดเอง (UDF) ข้อยกเว้นทั่วไปคือ ถ้าถูกรวมอยู่ในฟังก์ชันที่ยอมรับอาร์เรย์หรือช่วง (เช่น SUM() หรือ AVERAGE())
ดู ฟังก์ชัน Excel ที่ส่งกลับช่วงหรืออาร์เรย์สําหรับ รายละเอียดเพิ่มเติม
ตัวอย่าง
| สูตรดั้งเดิม | ตามที่เห็นในอาร์เรย์แบบไดนามิกของ Excel | คำอธิบาย |
|---|---|---|
| =SUM(A1:A10) | =SUM(A1:A10) | ไม่มีการเปลี่ยนแปลง - ไม่มีอินเทอร์เซกชันโดยนัยเกิดขึ้น เนื่องจากฟังก์ชัน SUM คาดว่าจะมีช่วงหรืออาร์เรย์ |
| =A1+A2 | =A1+A2 | ไม่มีการเปลี่ยนแปลง - ไม่มีจุดตัดโดยนัยเกิดขึ้น |
| =A1:A10 | =@A1:A10 | จะมีการอินเตอร์เซกชันโดยนัยเกิดขึ้น และ Excel จะส่งกลับค่าที่เกี่ยวข้องกับแถวที่มีสูตรอยู่ |
| =INDEX(A1:A10,B1) | =@INDEX(A1:A10,B1) | การอินเตอร์เซกชันโดยนัยอาจเกิดขึ้นได้ ฟังก์ชัน INDEX สามารถส่งกลับอาร์เรย์หรือช่วงเมื่ออาร์กิวเมนต์ที่สองหรือสามเป็น 0 |
| =OFFSET(A1:A2,1,1) | =@OFFSET(A1:A2,1,1) | การอินเตอร์เซกชันโดยนัยอาจเกิดขึ้นได้ ฟังก์ชัน OFFSET สามารถส่งกลับช่วงแบบหลายเซลล์ได้ เมื่อเป็นเช่นนั้น จะมีการทริกเกอร์อินเตอร์เซกชันโดยนัย |
| =MYUDF() | =@MYUDF() | การอินเตอร์เซกชันโดยนัยอาจเกิดขึ้นได้ ฟังก์ชันที่ผู้ใช้กําหนดเอง สามารถส่งกลับอาร์เรย์ได้ เมื่อเป็นเช่นนั้น สูตรดั้งเดิมจะทริกเกอร์จุดตัดโดยนัย |
การใช้ตัวดําเนินการ @ ในสูตรใหม่
ถ้าคุณเขียนหรือแก้ไขสูตรใน Excel อาร์เรย์แบบไดนามิกที่มีตัวดําเนินการ @ สูตรอาจปรากฏเป็น _xlfn SINGLE() ในอาร์เรย์ก่อนไดนามิก Excel
กรณีนี้เกิดขึ้นเมื่อคุณยืนยันสูตรแบบผสม สูตรผสมเป็นสูตรที่อาศัยทั้งการคํานวณอาร์เรย์และอินเทอร์เซกชันโดยนัย ซึ่งไม่ได้รับการสนับสนุนจาก Excel อาร์เรย์ก่อนไดนามิก อาร์เรย์ก่อนไดนามิกสนับสนุนเฉพาะสูตรที่ทํา i) อินเทอร์เซกชันโดยนัยหรือ ii) การคํานวณอาร์เรย์ตลอด
เมื่อเปิดใช้งานอาร์เรย์แบบไดนามิก Excel ตรวจพบการสร้าง "สูตรผสม" จะเสนอชุดรูปแบบของสูตรที่อินเทอร์เซกชันโดยนัยทั้งหมด ตัวอย่างเช่น ถ้าคุณใส่ =A1:A10+@A1:A10,คุณจะเห็นกล่องโต้ตอบต่อไปนี้:
ถ้าคุณเลือกที่จะปฏิเสธสูตรที่เสนอโดยกล่องโต้ตอบ จะมีการยืนยันสูตรแบบ =A1:A10+@A1:A10 ผสม ถ้าคุณเปิดสูตรนี้ในภายหลังใน Excel อาร์เรย์ก่อนไดนามิก สูตรจะปรากฏเป็น =A1:A10+_xlfn.SINGLE(A1:A10) @ ในสูตรผสมที่ปรากฏเป็น _xlfn.SINGLE(). เมื่อสูตรนี้ถูกประเมินโดย Excel อาร์เรย์ก่อนไดนามิก จะส่งกลับ #NAME! เป็นค่าความผิดพลาด
ต้องการความช่วยเหลือเพิ่มเติมไหม
คุณสามารถสอบถามผู้เชี่ยวชาญใน ชุมชนด้านเทคนิคของ Excel หรือรับการสนับสนุนใน ชุมชนได้เสมอ