ในวงเล็บของสูตร Pivotby Groupby มีส่วนของ function ที่ใช้ใส่ keyword ว่าจะให้ Sum หรือ Count หรือให้ทำหน้าที่อื่น ซึ่งส่วนนี้ไม่สามารถเปลี่ยนใจให้ลิงก์คำว่า Sum หรือ Count หรือชื่ออื่นมาแทนได้
=GROUPBY(row_fields, values, function,
[field_headers], [total_depth], [sort_order],
[filter_array], [field_relationship])
=PIVOTBY(row_fields, col_fields, values, function,
[field_headers], [row_total_depth], [row_sort_order],
[col_total_depth], [col_sort_order], [filter_array], [relative_to])
ทำไมจึงเป็นแบบนี้ ดูแล้วไม่ยืดหยุ่นเลย เทียบกับ Subtotal ไม่ได้ที่เปลี่ยนเลข function_num เพื่อเลือกให้ทำหน้าที่ต่างกันไปได้นับสิบอย่าง
=SUBTOTAL(function_num, ref1, [ref2], …)
สาเหตุที่สูตร Pivotby Groupby ห้ามเปลี่ยนใจตรงส่วนของ function ทีหลังเพราะระบบคำนวณของ 365 จะต้อง compile สูตรที่ทำไว้ก่อนทุกครั้งเพื่อให้การคำนวณได้ประสิทธิภาพสูงสุด และโครงสร้างตารางคำตอบคงเดิมไม่เปลี่ยนแปลงอีก
Copilot อธิบาย
คำตอบสั้น: Calculation Engine ใหม่ใน Excel 365 (Dynamic Arrays + Lambda + Spill Engine) มีข้อห้ามสำคัญคือ ไม่สามารถปิดหรือย้อนกลับไปใช้ Engine แบบเก่าได้ และยังมีหลายพฤติกรรมที่ Microsoft “ล็อกไว้” เพื่อความเสถียร เช่น การทำงานของ Dynamic Arrays, การจัดการ Error, และการตีความสูตรบางชนิด
---
🔎 สิ่งที่ “ห้ามเปลี่ยน” ใน Calculation Engine ใหม่
- Dynamic Arrays เป็นค่าเริ่มต้น
- ทุกสูตรที่คืนค่ามากกว่า 1 cell จะ “spill” อัตโนมัติ
- ไม่สามารถบังคับให้ทำงานแบบ array formula เก่า (Ctrl+Shift+Enter) ได้อีก
- การจัดการ Error
- Spill error (#SPILL!) ถูกออกแบบมาเป็นมาตรฐานใหม่
- ไม่สามารถปิดหรือเปลี่ยนให้กลับไปใช้ error แบบเดิมได้
- การตีความสูตร
- ฟังก์ชันใหม่อย่าง FILTER, SORT, UNIQUE, SEQUENCE, XLOOKUP, LAMBDA ถูกผูกกับ Engine ใหม่โดยตรง
- ไม่สามารถทำให้ทำงานใน Excel รุ่นเก่าได้
- การทำงานร่วมกับ Range References
- Engine ใหม่ตีความการอ้างอิงตาราง/ช่วงข้อมูลแบบ dynamic (เช่น Table structured references)
- ไม่สามารถบังคับให้ทำงานแบบ static ได้
- Backward Compatibility
- Microsoft ระบุชัดว่า Engine ใหม่ถูกออกแบบให้ “เสถียรและบังคับใช้” เพื่อรองรับอนาคตของ Excel
- ผู้ใช้ไม่สามารถเลือก “Classic Calculation Mode” ได้อีก
---
📌 ตัวอย่างผลกระทบ
- สูตรที่เคยใช้ INDEX + MATCH + Array CSE → ตอนนี้จะ spill อัตโนมัติ
- สูตรที่คืนค่าหลาย cell → ถ้ามีข้อมูลขวาง จะขึ้น #SPILL! แทนที่จะทำงานเงียบ ๆ
- ฟังก์ชันใหม่ (FILTER, SORT, UNIQUE) → ใช้ได้เฉพาะใน Engine ใหม่เท่านั้น
---
⚠️ ข้อควรระวังสำหรับ Workflow
- ห้ามใช้สูตรที่พึ่งพา behavior เก่า เช่น array formula แบบ manual เพราะจะไม่เสถียรใน Excel 365
- ห้ามคาดหวังผลลัพธ์เหมือนเดิม เมื่อเปิดไฟล์จาก Excel รุ่นเก่า → Engine ใหม่อาจตีความต่างออกไป
- ห้ามใช้กับงาน critical โดยไม่ตรวจสอบ เช่นการคำนวณทางการแพทย์หรือการเงินที่ต้องการความแม่นยำสูง → ต้องทดสอบสูตรใหม่เสมอ
---
สรุป: Calculation Engine ใหม่ใน Excel 365 เป็น “แกนกลาง” ที่ Microsoft บังคับใช้และไม่อนุญาตให้ผู้ใช้เปลี่ยนกลับไปใช้แบบเดิมอีก สิ่งที่ห้ามเปลี่ยนคือ Dynamic Arrays, Spill behavior, Error handling, และการตีความสูตรใหม่ ทั้งหมดถูกล็อกไว้เพื่อให้ Excel เดินหน้าไปในทิศทางเดียว
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.