List.Sum รวมค่าตัวเลขทั้งหมดในรายการ โดยละเว้นค่า null โดยอัตโนมัติ ฟังก์ชันนี้เป็นพื้นฐานสำหรับการคำนวณสรุป การจำสรุป และการวิเคราะห์ข้อมูลในการแปลงข้อมูล
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| list | list | รายการของตัวเลขที่ต้องการรวม | |
| [precision]ไม่บังคับ | nullable number | null | พารามิเตอร์ที่ระบุความแม่นยำในการคำนวณ (ถ้าใช้) |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
List.Sum ใช้สำหรับรวมตัวเลขทั้งหมดในรายการ (list) โดยจะข้ามค่า null และเฉพาะรวมค่าตัวเลขเท่านั้น ส่วนหากรายการว่างหรือมีเพียง null จะคืนค่า null
ที่เจ๋งคือ List.Sum เป็นฟังก์ชันที่พื้นฐานและง่ายมาก แต่มีประสิทธิภาพที่มีประโยชน์จริง ใช้สำหรับการรวมค่าที่มาจากการดึง column หรือการสร้าง list โดยการกรองหรือการแปลงข้อมูล
ส่วนตัวผมชอบใช้ List.Sum คู่กับ Table.Column เพื่อรวมค่าจากคอลัมน์ที่เลือก หรือใช้กับ List.Transform เพื่อรวมค่าผลลัพธ์หลังจากแปลงข้อมูลแล้ว 😎
รวมยอดขายจากทุกแถว หรือจากทุกสินค้า เพื่อหายอดขายรวมทั้งสิ้น
รวมค่าใช้จ่าย รายได้ หรือค่าชำระเงินจากรายการต่างๆ
รวมตัวเลขสามตัว 1 + 2 + 3 = 6 นี่คือการใช้งานพื้นฐานที่สุด ที่ผม ใช้เพื่อทดสอบหรือคำนวณสนใจของรายการเล็กน้อย
ดึงคอลัมน์ "Amount" จากตาราง Sales จากนั้นรวมค่าทั้งหมด ผลลัพธ์ = 100 + 200 + 300 = 600 นี่คือวิธีการใช้ที่พบบ่อยที่สุดในการสรุปข้อมูล
List.Sum จะละเว้นค่า null โดยอัตโนมัติ ดังนั้นผลลัพธ์ = 10 + 20 + 30 = 60 นี่คือจุดที่เจ๋งของฟังก์ชัน เพราะข้อมูลจริงมักมี null ปะปนอยู่บ่อยครั้ง
ใช้ List.Transform เพื่อลดราคา 10% จากนั้นรวมค่า ที่ผม ชอบเทคนิคนี้ เพราะสามารถทำการแปลงข้อมูลและรวมค่าได้ในพบ้าษา Power Query ที่เดียว (10×0.9 + 20×0.9 + 30×0.9 = 54)
ฟังก์ชันจะคืนค่า null กลับมา ที่เจอบ่อยมากครับ โดยเฉพาะตอนทำ Filter ข้อมูลแล้วถ้า Filter ไม่เจอตัวเลขเลย ผลลัพธ์ก็ null เลย วิธีแก้คือใช้ List.CountNonNull เพื่อเช็คว่ามีตัวเลขหรือไม่ก่อน
ใช่จริงครับ List.Sum จะข้ามค่า null โดยอัตโนมัติ ดังนั้นไม่ต้องทำการ Filter null ออกก่อนใช้ฟังก์ชัน เพียงแต่ถ้า List มีเพียง null เท่านั้น ผลลัพธ์ก็จะเป็น null นะครับ
List.Sum จะไม่สามารถรวมข้อมูล Text ได้ แต่มันจะข้ามไปเหมือนกับการข้าม null ส่วนตัวผมจึงมักเช็คประเภทข้อมูลก่อนด้วย Table.TransformColumnTypes เพื่อให้แน่ใจว่าข้อมูลเป็น Number ทั้งหมด
ฟังก์ชันที่ผู้เขียนโยงไว้กับ List.Sum จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
List.Accumulate เป็นฟังก์ชันสำหรับการวนลูปผ่านแต่ละ element ใน list พร้อมทั้งเก็บสถานะสะสมไว้ตลอดการทำงาน
.
โดยจะเริ่มต้นจากค่าเริ่มต้นที่กำหนด (seed value) และในแต่ละรอบของการวนลูป ฟังก์ชันจะส่งค่าสถานะปัจจุบัน (current state) พร้อมกับ element ปัจจุบันเข้าไปใน accumulator function ที่คุณกำหนดขึ้นมา เพื่อคำนวณและสร้างสถานะใหม่สำหรับรอบถัดไป
.
เมื่อวนลูปครบทุก element แล้ว ฟังก์ชันจะคืนค่าสถานะสุดท้ายกลับมา เหมาะสำหรับการคำนวณยอดสะสม (running totals) การรวมแบบกำหนดเอง (custom aggregations) และการสร้างรูปแบบ For-Next loop pattern ใน M language ครับ
List.Average คำนวณค่าเฉลี่ยของตัวเลข วันที่ เวลา หรือระยะเวลาในรายการ ฟังก์ชันนี้เป็นตัวช่วยแรกที่ผมใช้ทุกครั้งที่ต้องการวิเคราะห์ค่าเฉลี่ยจากชุดข้อมูลใดๆ
List.Count ใช้นับจำนวนสมาชิกทั้งหมดในลิสต์ (รวม null) ส่งคืนค่าตัวเลข ถ้าต้องการนับเฉพาะที่ไม่ว่างให้ใช้ List.NonNullCount แทน
List.Covariance คืนค่าความแปรปรวนร่วมของตัวเลขสองชุดใน List เพื่อดูความสัมพันธ์เชิงทิศทาง
List.Max หาค่าที่มากที่สุดในรายการได้อย่างรวดเร็ว รองรับค่าเริ่มต้นสำหรับรายการว่าง และสามารถจัดการค่า null ตามที่ต้องการ ฟังก์ชันนี้ใช้บ่อยสำหรับหาค่าสูงสุด คะแนนสูงสุด หรือวันที่ล่าสุด
List.Min หาค่าที่น้อยที่สุดในรายการ ใช้เมื่อต้องการหาค่าสุดต่ำ วันที่เก่าสุด หรือเปรียบเทียบแบบ custom criteria
List.Product คำนวณผลคูณ (คูณ) ของตัวเลขทั้งหมดในรายการ โดยจะแสดงผลลัพธ์เป็นตัวเลขหรือ null หากไม่มีค่าตัวเลขในรายการ ฟังก์ชันนี้มีประโยชน์สำหรับการคำนวณค่าทางสถิติและการวิเคราะห์ข้อมูล เช่น การคำนวณผลคูณของราคา ปริมาณ หรือสัดส่วนต่างๆ
List.Select จะรับ List และฟังก์ชันเงื่อนไข (selection as function) โดยจะประเมินฟังก์ชันเงื่อนไขกับสมาชิกแต่ละตัว หากฟังก์ชันคืนค่า true จะเก็บสมาชิกนั้นไว้ใน List ใหม่ หากคืนค่า false จะถูกคัดทิ้งไป
List.StandardDeviation คำนวณส่วนเบี่ยงเบนมาตรฐานของรายการตัวเลข ใช้สำหรับการวิเคราะห์ข้อมูล สถิติ และการวัดความเปลี่ยนแปลง
List.Transform ใช้สำหรับสร้างลิสต์ใหม่โดยนำฟังก์ชันไปประมวลผลแต่ละตัวในลิสต์เดิม
ระบุประเภทการจัดกลุ่มใน Table.Group ว่าจะใช้ Local (จัดกลุ่มแถวติดต่อกัน) หรือ Global (รวบรวมแถวทั้งหมดที่มี key เดียวกัน) ใช้เพื่อปรับประสิทธิภาพและควบคุมวิธีการจัดกลุ่มข้อมูล
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่