---
title: sum() – รวมค่าตัวเลขในอาเรย์
url: https://www.thepexcel.com/functions/n8n/array-functions/sum-n8n/
type: function-explainer
program: n8n
syntax: "$input.all().map(item => item.json.field).sum()"
date: 2025-12-16
updated: 2025-12-23
scores:
  popularity: 7
  difficulty: 2
  usefulness: 7
---

# sum() – รวมค่าตัวเลขในอาเรย์

> sum() เป็น array method ที่รวมยอดตัวเลขทั้งหมดใน array ให้เป็นผลรวมเดียว ใช้บ่อยมากในการคำนวณยอดรวม

## คำอธิบาย

sum() เป็น array method ที่รวมยอดตัวเลขทั้งหมดใน array ให้เป็นผลรวมเดียว ใช้บ่อยมากในการคำนวณยอดรวม ยอดขาย หรือ aggregation ของข้อมูลตัวเลข

## Syntax

```excel
$input.all().map(item => item.json.field).sum()
```

## เคสการใช้งาน

### รวมยอดขาย revenue หรือ profit จากหลาย items

รวมยอดขาย revenue หรือ profit จากหลาย items

_เหมาะกับ:_ general

### คำนวณจำนวนสินค้าทั้งหมดจาก inventory

คำนวณจำนวนสินค้าทั้งหมดจาก inventory

_เหมาะกับ:_ general

### รวม score หรือ points จาก multiple sources

รวม score หรือ points จาก multiple sources

_เหมาะกับ:_ general

### Aggregation ของข้อมูลตัวเลขใดๆ ที่ต้องการผลรวม

Aggregation ของข้อมูลตัวเลขใดๆ ที่ต้องการผลรวม

_เหมาะกับ:_ general

## ตัวอย่าง

### 1. รวมตัวเลขใน array ธรรมดา

```excel
{{ [10, 20, 30, 40].sum() }}
```

**ผลลัพธ์:** `100`

วิธีพื้นฐานที่สุดของ sum() ใช้เมื่อมี array ของตัวเลขพร้อมแล้ว เพียงแค่เรียก .sum() ก็ได้ผลรวมทันที

### 2. รวมฟิลด์จากทุก items ในหนึ่งเดียว

```excel
{{ $input.all().map(item => item.json.amount).sum() }}
```

**ผลลัพธ์:** `5000`

Pattern ที่ใช้บ่อยที่สุดใน aggregation workflows: map() ดึงฟิลด์ amount จากทุก items แล้ว sum() รวมยอด เช่นรวมยอดขาย รวมจำนวนสินค้า ใช้ได้กับทุกฟิลด์ตัวเลข

### 3. รวมยอดเฉพาะที่ผ่านเงื่อนไข

```excel
{{ $input.all().filter(item => item.json.status === 'paid').map(item => item.json.price).sum() }}
```

**ผลลัพธ์:** `3500`

Chain filter → map → sum เพื่อรวมเฉพาะรายการที่ผ่านเงื่อนไข ในตัวอย่างนี้ filter เอาเฉพาะ items ที่ status เป็น 'paid' จากนั้น map ดึง price แล้ว sum รวมยอด

### 4. รวม array ที่เป็น property ของ JSON

```excel
{{ $json.sales.sum() }}
```

**ผลลัพธ์:** `8200`

ถ้า input JSON มี property เป็น array ของตัวเลขแล้ว เช่น $json.sales = [1500, 2300, 4400] สามารถเรียก sum() ได้โดยตรง ไม่ต้อง map ใช้เมื่อข้อมูลเป็น flat array

## หมายเหตุเพิ่มเติม

- sum() มักใช้คู่กับ map() เสมอ เพราะต้อง extract ฟิลด์ตัวเลขจาก object ก่อน pattern: $input.all().map(item => item.json.field).sum()

- สามารถ chain กับ filter() เพื่อรวมเฉพาะข้อมูลที่ผ่านเงื่อนไข เช่น .filter(x => x > 100).sum()

- ใช้ได้ใน expressions ทุกที่: Set node field values, HTTP Request parameters, IF conditions

## คำถามที่พบบ่อย

**Q: ถ้า array มีค่าที่ไม่ใช่ตัวเลขจะเกิดอะไรขึ้น?**

sum() จะพยายาม parse เป็นตัวเลข string '123' จะกลายเป็น 123 แต่ถ้า parse ไม่ได้จะได้ NaN ควร filter หรือ map เพื่อแปลงเป็นตัวเลขก่อนใช้ sum() เช่น .map(x => Number(x)).sum()

**Q: ต่างจาก reduce() อย่างไร?**

sum() เป็น shorthand ของ reduce((acc, val) => acc + val, 0) ทำงานเหมือนกันแต่ sum() อ่านง่ายกว่าและชัดเจนว่าต้องการรวมยอด ใช้ sum() เมื่อรวมตัวเลขอย่างเดียว ใช้ reduce เมื่อต้อง custom logic

**Q: สามารถใช้กับ empty array ได้ไหม?**

ได้ empty array จะ return 0 ซึ่งเป็น identity element ของการบวก ดังนั้นไม่ error และเป็น safe operation ใช้ได้อย่างปลอดภัย

## แหล่งข้อมูลเพิ่มเติม

- [n8n Data Transformation Functions - Arrays](https://docs.n8n.io/code/builtin/data-transformation-functions/arrays/) _(article)_
- [Sum/Aggregate Spreadsheet Data Workflow](https://n8n.io/workflows/1497-sum-or-aggregate-a-column-of-spreadsheet-or-table-data/) _(article)_

---

_Source: [https://www.thepexcel.com/functions/n8n/array-functions/sum-n8n/](https://www.thepexcel.com/functions/n8n/array-functions/sum-n8n/)_
