---
title: List.Buffer – เก็บรายการในหน่วยความจำ
url: https://www.thepexcel.com/functions/power-query/list-functions/list-buffer/
type: function-explainer
program: Power Query
syntax: List.Buffer(list as list) as list
date: 2025-12-03
updated: 2025-12-26
scores:
  popularity: 5
  difficulty: 4
  usefulness: 5
---

# List.Buffer – เก็บรายการในหน่วยความจำ

> List.Buffer เก็บรายการข้อมูลไว้ในหน่วยความจำเพื่อเพิ่มประสิทธิภาพเมื่อต้องเข้าถึงรายการเดียวกันหลายค

## คำอธิบาย

List.Buffer เก็บรายการข้อมูลไว้ในหน่วยความจำเพื่อเพิ่มประสิทธิภาพเมื่อต้องเข้าถึงรายการเดียวกันหลายครั้ง ฟังก์ชันนี้มีประโยชน์เมื่อต้องใช้ผลลัพธ์จากการคำนวณซ้ำๆ หรือเมื่อต้องการลดจำนวนการเข้าถึงแหล่งข้อมูลภายนอก

## Syntax

```excel
List.Buffer(list as list) as list
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| list | Yes | list |  | รายการที่ต้องการเก็บในหน่วยความจำ |

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

### เพิ่มประสิทธิภาพการใช้รายการซ้ำ

เมื่อต้องใช้รายการเดียวกันหลายครั้ง ให้เก็บไว้ในหน่วยความจำ

_เหมาะกับ:_ performance-optimization

### ลดจำนวนการเข้าถึงแหล่งข้อมูล

แทนที่จะเข้าถึงแหล่งข้อมูลภายนอกซ้ำๆ ให้เก็บผลลัพธ์ในหน่วยความจำ

_เหมาะกับ:_ external-source-optimization

### ใช้ผลลัพธ์ในการคำนวณต่างๆ

เก็บผลลัพธ์ของรายการเพื่อใช้ในการคำนวณหรือการกรองข้อมูลต่างๆ

_เหมาะกับ:_ multiple-calculations

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: Buffer รายการตัวเลข

```excel
List.Buffer({1, 2, 3, 4, 5})
```

**ผลลัพธ์:** `{1, 2, 3, 4, 5}`

สูตรนี้เก็บรายการตัวเลข {1, 2, 3, 4, 5} ไว้ในหน่วยความจำ เพื่อให้การเข้าถึงข้อมูลเร็วขึ้น

### 2. ตัวอย่างที่ 2: Buffer รายการจากการตัดกรอง

```excel
let Filtered = List.Select({1..1000}, each _ > 500), Buffered = List.Buffer(Filtered) in Buffered
```

**ผลลัพธ์:** `รายการ {501, 502, ..., 1000}`

ผมใช้ let...in เพื่อชัดเจน กรองข้อมูล 1-1000 เหลือแค่ที่มากกว่า 500 แล้วเก็บในหน่วยความจำเพื่อใช้ซ้ำ ประหยัดการกรองซ้ำ

### 3. ตัวอย่างที่ 3: Buffer รายการข้อความ

```excel
let Source = {"apple", "banana", "cherry"}, Buffered = List.Buffer(Source) in Buffered
```

**ผลลัพธ์:** `{"apple", "banana", "cherry"}`

สูตรนี้สร้างรายการข้อความและเก็บไว้ในหน่วยความจำเพื่อใช้ซ้ำในการคำนวณต่างๆ

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

- ผมแนะนำให้ใช้ List.Buffer เมื่อรายการมาจากแหล่งข้อมูลช้า (API, ฐานข้อมูล) และต้องเข้าถึงหลายครั้ง ประหยัดเวลาจริง

- ส่วนตัวผม สำหรับรายการขนาดเล็กจากหน่วยความจำธรรมชาติ (เช่น {1..10}) อาจไม่ต้องใช้ เพราะไม่เห็นประสิทธิภาพ

- ผมเตือน: ใช้ List.Buffer กับรายการขนาดใหญ่ต้องระวัง คำนึงถึงหน่วยความจำที่มี โดยเฉพาะในแบบจำหน่ายเกต (Parallel Query)

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

**Q: เมื่อไหร่ควรใช้ List.Buffer**

ผมแนะนำให้ใช้เมื่อ: 1) ต้องใช้รายการเดียวกันหลายครั้ง 2) แหล่งข้อมูลมาจากภายนอก (ช้า) 3) ต้องการประหยัด CPU มากกว่า หน่วยความจำ สำหรับรายการเล็กๆ จากหน่วยความจำแล้ว อาจไม่มีประโยชน์

**Q: ความแตกต่างระหว่าง List.Buffer กับ Table.Buffer**

ผมได้ใช้ทั้งคู่บ่อย List.Buffer ใช้กับรายการ (List) ส่วน Table.Buffer ใช้กับตาราง (Table) หลักการเดียวกัน คือประมวลผลทั้งหมดแล้วเก็บในหน่วยความจำ

**Q: List.Buffer ใช้หน่วยความจำเท่าไหร่**

ส่วนตัวผม มันขึ้นอยู่กับขนาดของรายการและชนิดข้อมูล รายการหนึ่งล้านแถว มี 10 คอลัมน์ อาจใช้หลาย MB สำหรับรายการตัวเลขง่ายๆ ใช้น้อยมาก ลองใช้เมื่อต้องประสิทธิภาพจริง

## ฟังก์ชันที่เกี่ยวข้อง

- [Table.Buffer – โหลดตารางเข้า Memory เพื่อความเร็ว](https://www.thepexcel.com/functions/power-query/table-functions/table-buffer/)
- [List.Transform – แปลงค่าในลิสต์แต่ละตัว](https://www.thepexcel.com/functions/power-query/list-functions/list-transform/)
- [List.Select – เลือกสมาชิกจาก List ตามเงื่อนไข](https://www.thepexcel.com/functions/power-query/list-functions/list-select/)

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

- [Microsoft Learn: List.Buffer](https://learn.microsoft.com/en-us/powerquery-m/list-buffer) _(official)_
- [Power Query M Function Reference](https://learn.microsoft.com/en-us/powerquery-m/power-query-m-function-reference) _(official)_

---

_Source: [https://www.thepexcel.com/functions/power-query/list-functions/list-buffer/](https://www.thepexcel.com/functions/power-query/list-functions/list-buffer/)_
