average คำนวณค่าเฉลี่ยเลขคณิต (arithmetic mean) ของตัวเลขทั้งหมดในอาร์เรย์ ใช้เมื่อต้องการหาค่าเฉลี่ยยอดขาย คะแนนเฉลี่ย อุณหภูมิเฉลี่ย หรือเมตริกอื่นๆ ในการประมวลผล workflow
=array.average()
=array.average()
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| array | number[] | Yes | Array ที่มีค่าตัวเลข (เช่น [10, 20, 30, 40]) ฟังก์ชันจะรวมค่าทั้งหมดแล้วหารด้วยจำนวนรายการ |
ใช้ฟังก์ชันนี้เพื่อหาค่าเฉลี่ยยอดขายรายวันหรือรายสัปดาห์จากข้อมูลสั่งซื้อ
หาค่าเฉลี่ยของเวลาในการประมวลผล หรือจำนวนข้อมูลที่ผ่านการตรวจสอบต่อรอบ
{{ [10, 20, 30, 40, 50].average() }}={{ [10, 20, 30, 40, 50].average() }}
30
{{ $json.dailySales.map(x => x.total).average() }}={{ $json.dailySales.map(x => x.total).average() }}
1500
{{ $json.users.filter(u => u.active).map(u => u.score).average() }}={{ $json.users.filter(u => u.active).map(u => u.score).average() }}
85.5
average() โดยทั่วไปจะข้ามค่า null/undefined และคำนวณเฉพาะตัวเลขที่ถูกต้อง แต่ลองทดสอบกับข้อมูลจริงของคุณ ถ้ามีปัญหา ใช้ filter((x => x != null) ก่อนเพื่อทำความสะอาดข้อมูล
average() = (sum of values) / (count of items) ส่วน sum() เพียงแค่รวมค่าทั้งหมด average() ดีกว่าเมื่อต้องเปรียบเทียบข้อมูลที่มีจำนวนรายการต่างกัน
array ว่างเปล่าอาจคืนค่า 0 หรือ undefined ขึ้นอยู่กับเวอร์ชัน n8n ควรใช้ if statement เช่น {{ $json.values.length > 0 ? $json.values.average() : 0 }} เพื่อป้องกัน error
ใช้ได้ใน Code Node (เขียนโค้ด JavaScript) หรือ Set Node (Expression mode) ส่วน IF Node ใช้เพื่อตรวจสอบค่าเฉลี่ยว่าสูงหรือต่ำกว่า threshold
average เป็นฟังก์ชันในการคำนวณค่าเฉลี่ยเลขคณิตของตัวเลขในอาร์เรย์ แตกต่างจากฟังก์ชัน sum() ที่แค่รวมค่า average จะหารด้วยจำนวนข้อมูล ทำให้ได้ค่าเฉลี่ยจริง
ส่วนตัวผมใช้ average() บ่อยมากในการวิเคราะห์ข้อมูลขาย เช่น หาค่าเฉลี่ยใบเสร็จต่อวัน หรือคะแนนเฉลี่ยของลูกค้า ฟังก์ชันนี้เข้าท่ากับการทำ workflow ที่ต้องตรวจสอบประสิทธิภาพหรือติดตามเทรนด์ข้อมูล
สิ่งที่เจ๋งคือ average() มีประสิทธิภาพสูง ไม่เหมือน manual calculation ด้วยการ sum() แล้ว divide length() ซึ่งต้องเขียนโค้ดมากกว่า ฟังก์ชันนี้จัดการเรื่อง null/undefined ได้อยู่พอสมควร แต่ต้องระวังกับข้อมูลว่างเปล่า