ตัวอย่างที่ 1: นับถอยหลัง
=List.Generate(() => 10, each _ > 0, each _ - 1)
{10, 9, 8, ..., 1}
สร้าง List โดยวนลูปตามเงื่อนไขที่กำหนด
List.Generate ใช้สร้าง List โดยระบุฟังก์ชัน 4 ส่วน: 1. ค่าเริ่มต้น (Initial) 2. เงื่อนไข (Condition) ที่ต้องเป็นจริงเพื่อให้ทำงานต่อ 3. การเปลี่ยนแปลงค่า (Next Step) 4. การเลือกค่าผลลัพธ์ (Selector – Optional)
=List.Generate(initial as function, condition as function, next as function, optional selector as nullable function) as list
=List.Generate(initial as function, condition as function, next as function, optional selector as nullable function) as list
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| initial | function | Yes | ฟังก์ชันกำหนดค่าเริ่มต้น (เช่น () => 10) | |
| condition | function | Yes | ฟังก์ชันตรวจสอบเงื่อนไข ถ้าเป็น true จะทำต่อ (เช่น each _ > 0) | |
| next | function | Yes | ฟังก์ชันคำนวณค่าถัดไป (เช่น each _ – 1) | |
| selector | function | Optional | null | ฟังก์ชันเลือกค่าที่จะแสดงใน List ผลลัพธ์ (ถ้าไม่ระบุ จะแสดงค่าจากการคำนวณโดยตรง) |
วนลูปเรียก API ทีละหน้าจนกว่าจะไม่มีข้อมูล (Next Page = null)
สร้างรายการวันที่ตั้งแต่วันที่เริ่ม จนถึงวันที่สิ้นสุด
คำนวณเงินต้นบวกดอกเบี้ยไปเรื่อยๆ จนกว่าจะถึงเป้าหมาย
=List.Generate(() => 10, each _ > 0, each _ - 1)
{10, 9, 8, ..., 1}
=List.Generate(() => #date(2025,1,1), each _ <= #date(2025,1,5), each Date.AddDays(_, 1))
{1 ม.ค., ..., 5 ม.ค.}
=List.Generate(() => [x=1, y=1], each [x] < 5, each [x=[x]+1, y=[x]*2], each [y])
{1, 4, 6, 8, 10}
List.Numbers สร้างตัวเลขตาม Step คงที่ (เช่น 1, 2, 3) แต่ List.Generate สามารถกำหนด Logic ที่ซับซ้อนได้ (เช่น x * 2 หรือเรียก API)
ฟังก์ชัน List.Generate ใน Power Query ใช้สำหรับสร้าง List โดยกำหนดค่าเริ่มต้น เงื่อนไขการทำงานต่อ และสูตรการสร้างค่าถัดไปเองได้ (คล้ายกับ Loop while ในการเขียนโปรแกรม) เป็นฟังก์ชันที่ทรงพลังมากสำหรับการสร้างข้อมูลที่มี Logic ซับซ้อน