List.Sum รวมค่าตัวเลขทั้งหมดในรายการ โดยละเว้นค่า null โดยอัตโนมัติ ฟังก์ชันนี้เป็นพื้นฐานสำหรับการคำนวณสรุป การจำสรุป และการวิเคราะห์ข้อมูลในการแปลงข้อมูล
=List.Sum(list as list, optional precision as nullable number) as any
=List.Sum(list as list, optional precision as nullable number) as any
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| list | list | Yes | รายการของตัวเลขที่ต้องการรวม | |
| precision | nullable number | Optional | null | พารามิเตอร์ที่ระบุความแม่นยำในการคำนวณ (ถ้าใช้) |
รวมยอดขายจากทุกแถว หรือจากทุกสินค้า เพื่อหายอดขายรวมทั้งสิ้น
รวมค่าใช้จ่าย รายได้ หรือค่าชำระเงินจากรายการต่างๆ
List.Sum({1, 2, 3})= List.Sum({1, 2, 3})
6
let Sales = Table.FromRows( {{"A", 100}, {"B", 200}, {"C", 300}}, {"Product", "Amount"} ), AmountList = Table.Column(Sales, "Amount") in List.Sum(AmountList)let
Sales = Table.FromRows(
{{"A", 100}, {"B", 200}, {"C", 300}},
{"Product", "Amount"}
),
AmountList = Table.Column(Sales, "Amount")
in
List.Sum(AmountList)
600
List.Sum({10, null, 20, null, 30})= List.Sum({10, null, 20, null, 30})
60
let Prices = {10, 20, 30}, Discounted = List.Transform(Prices, each _ * 0.9), Total = List.Sum(Discounted) in Totallet
Prices = {10, 20, 30},
Discounted = List.Transform(Prices, each _ * 0.9),
Total = List.Sum(Discounted)
in
Total
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) โดยจะข้ามค่า null และเฉพาะรวมค่าตัวเลขเท่านั้น ส่วนหากรายการว่างหรือมีเพียง null จะคืนค่า null
ที่เจ๋งคือ List.Sum เป็นฟังก์ชันที่พื้นฐานและง่ายมาก แต่มีประสิทธิภาพที่มีประโยชน์จริง ใช้สำหรับการรวมค่าที่มาจากการดึง column หรือการสร้าง list โดยการกรองหรือการแปลงข้อมูล
ส่วนตัวผมชอบใช้ List.Sum คู่กับ Table.Column เพื่อรวมค่าจากคอลัมน์ที่เลือก หรือใช้กับ List.Transform เพื่อรวมค่าผลลัพธ์หลังจากแปลงข้อมูลแล้ว 😎