Microsoft ได้เปิดตัวตัวดําเนินการอินเทอร์เซกชันโดยนัยเป็นส่วนหนึ่งของการอัปเกรดที่สําคัญไปยังภาษาสูตรของ Excel เพื่อสนับสนุนอาร์เรย์แบบไดนามิก อาร์เรย์แบบไดนามิกนําความสามารถในการคํานวณและฟังก์ชันการทํางานใหม่ๆ ที่สําคัญมาสู่ Excel
ภาษาสูตรที่อัปเกรดแล้ว
ภาษาสูตรที่ได้รับการอัปเกรดของ Excel เกือบจะเหมือนกับภาษาเก่า ยกเว้นว่าจะใช้ตัวดําเนินการ @ เพื่อระบุจุดที่มีจุดตัดโดยนัย ซึ่งภาษาเก่าจะดําเนินการแบบเงียบๆ ด้วยเหตุนี้ คุณอาจสังเกตเห็น @ ปรากฏในบางสูตรเมื่อคุณเปิดสูตรใน Excel อาร์เรย์แบบไดนามิก สูตรของคุณจะคํานวณต่อไปเช่นเดิม
จุดตัดโดยนัยคืออะไร?
ตรรกะอินเทอร์เซกชันโดยนัยจะลดค่าหลายค่าให้เหลือเพียงค่าเดียว Excel ทําเช่นนี้เพื่อบังคับให้สูตรส่งกลับค่าเดียว เนื่องจากเซลล์หนึ่งค่าสามารถมีได้เพียงค่าเดียวเท่านั้น ถ้าสูตรของคุณส่งกลับค่าเดียว อินเตอร์เซกชันโดยนัยจะไม่ทํางานอะไร (แม้ว่าในทางเทคนิคจะทําอยู่เบื้องหลัง) ตรรกะทํางานดังนี้:
- ถ้าค่าเป็นรายการเดียว ให้ส่งคืนรายการ
- ถ้าค่าเป็นช่วง ให้ส่งกลับค่านั้นจากเซลล์บนแถวหรือคอลัมน์เดียวกันกับสูตร
- ถ้าค่าเป็นอาร์เรย์ ให้เลือกค่าด้านบนซ้าย
ด้วยการถือกําเนิดของอาร์เรย์แบบไดนามิก Excel จะไม่จํากัดเพียงการส่งกลับค่าเดียวจากสูตรอีกต่อไป ดังนั้นการพิมพ์ตัดโดยนัยแบบไม่เงียบจึงไม่จําเป็นอีกต่อไป ซึ่งสูตรเก่าอาจทริกเกอร์จุดตัดโดยนัยที่มองไม่เห็น การเปิดใช้งานอาร์เรย์แบบไดนามิก Excel จะแสดงตําแหน่งที่มันจะเกิดขึ้นด้วย @
ทําไมต้องเป็นสัญลักษณ์ @
สัญลักษณ์ @ ถูกใช้อยู่แล้วในการอ้างอิงตารางเพื่อระบุจุดตัดโดยนัย พิจารณาสูตรต่อไปนี้ในตาราง=[@Column1] @ ระบุว่าสูตรใช้อินเทอร์เซกชันโดยนัยเพื่อดึงค่าบนแถวเดียวกันจาก [Column1]
คุณสามารถลบ @ ออกได้หรือไม่
บ่อยครั้งที่คุณสามารถทําได้ ขึ้นอยู่กับว่าส่วนของสูตรทางด้านขวาของ @ จะส่งกลับค่าอะไร:
- ถ้าสูตรส่งกลับค่าเดียว (กรณีที่พบบ่อยที่สุด) จะไม่มีการเปลี่ยนแปลงเมื่อคุณนํา @ ออก
- ถ้าส่งกลับช่วงหรืออาร์เรย์ การลบ @ จะทําให้ส ปิลล์ ไปยังเซลล์ข้างเคียง
ถ้าคุณนํา @ ที่เพิ่มโดยอัตโนมัติออก แล้วเปิดเวิร์กบุ๊กใน Excel เวอร์ชันที่เก่ากว่าในภายหลัง เวิร์กบุ๊กจะปรากฏเป็น สูตรอาร์เรย์ดั้งเดิม (ครอบด้วยวงเล็บปีกกา {}) ลักษณะการทํางานนี้ช่วยให้แน่ใจว่าเวอร์ชันที่เก่ากว่าจะไม่ทริกเกอร์จุดตัดโดยนัย
เมื่อใดเราจะเพิ่ม @ ลงในสูตรเก่า
โดยทั่วไปแล้ว ฟังก์ชันที่ส่งกลับช่วงแบบหลายเซลล์หรืออาร์เรย์จะมีคํานําหน้า @ ถ้าคุณเขียนใน Excel เวอร์ชันที่เก่ากว่า ไม่มีการเปลี่ยนแปลงใดๆ กับลักษณะการทํางานของสูตรของคุณ คุณสามารถเห็นจุดตัดโดยนัยที่มองไม่เห็นก่อนหน้านี้ได้แล้ว ฟังก์ชันทั่วไปที่ส่งกลับช่วงหลายเซลล์ ได้แก่ INDEX, OFFSET และฟังก์ชันที่ผู้ใช้กําหนดเอง (UDFs) ข้อยกเว้นทั่วไปคือ ถ้าถูกรวมไว้ในฟังก์ชันที่ยอมรับอาร์เรย์หรือช่วง (ตัวอย่างเช่น 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 สามารถส่งกลับอาร์เรย์ได้ เมื่อทําได้ สูตรเดิมจะทริกเกอร์จุดตัดโดยนัย |
การใช้ตัวดําเนินการ @ ในสูตรใหม่
ถ้าคุณเขียนหรือแก้ไขสูตรใน Excel อาร์เรย์แบบไดนามิกที่มีตัวดําเนินการ @ สูตรอาจปรากฏเป็น _xlfn SINGLE() ในอาร์เรย์ก่อนไดนามิก Excel
ลักษณะการทํางานนี้เกิดขึ้นเมื่อคุณยอมรับสูตรแบบผสม สูตรผสมคือสูตรทั้งที่ใช้การคํานวณอาร์เรย์และอินเทอร์เซกชันโดยนัย อาร์เรย์ก่อนไดนามิก 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 หรือรับการสนับสนุนใน ชุมชนได้เสมอ