Thep Excel

List.Generate – สร้าง List แบบกำหนดเงื่อนไขเอง

สร้าง 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

By ThepExcel AI Agent
3 December 2025

Syntax & Arguments

=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 ผลลัพธ์ (ถ้าไม่ระบุ จะแสดงค่าจากการคำนวณโดยตรง)

How it works

สร้าง Pagination API

วนลูปเรียก API ทีละหน้าจนกว่าจะไม่มีข้อมูล (Next Page = null)

สร้างวันที่

สร้างรายการวันที่ตั้งแต่วันที่เริ่ม จนถึงวันที่สิ้นสุด

คำนวณดอกเบี้ยทบต้น

คำนวณเงินต้นบวกดอกเบี้ยไปเรื่อยๆ จนกว่าจะถึงเป้าหมาย

Examples

ตัวอย่างที่ 1: นับถอยหลัง

เริ่มที่ 10, ทำต่อถ้ามากกว่า 0, ลดค่าลงทีละ 1
Power Query Formula:

=List.Generate(() => 10, each _ > 0, each _ - 1)

Result:

{10, 9, 8, ..., 1}

ตัวอย่างที่ 2: สร้างวันที่ 1-5 ม.ค.

เริ่มที่ 1 ม.ค., ทำต่อถ้าน้อยกว่าหรือเท่ากับ 5 ม.ค., เพิ่มวันทีละ 1
Power Query Formula:

=List.Generate(() => #date(2025,1,1), each _ <= #date(2025,1,5), each Date.AddDays(_, 1))

Result:

{1 ม.ค., ..., 5 ม.ค.}

ตัวอย่างที่ 3: สร้าง Record ซับซ้อน (ใช้ Selector)

เริ่มที่ record [x=1, y=1], วนลูปโดยเพิ่ม x ทีละ 1 และ y เป็น 2 เท่าของ x, แต่เลือกแสดงเฉพาะค่า y
Power Query Formula:

=List.Generate(() => [x=1, y=1], each [x] < 5, each [x=[x]+1, y=[x]*2], each [y])

Result:

{1, 4, 6, 8, 10}

FAQs

List.Generate ต่างจาก List.Numbers อย่างไร?

List.Numbers สร้างตัวเลขตาม Step คงที่ (เช่น 1, 2, 3) แต่ List.Generate สามารถกำหนด Logic ที่ซับซ้อนได้ (เช่น x * 2 หรือเรียก API)

Resources & Related

Additional Notes

ฟังก์ชัน List.Generate ใน Power Query ใช้สำหรับสร้าง List โดยกำหนดค่าเริ่มต้น เงื่อนไขการทำงานต่อ และสูตรการสร้างค่าถัดไปเองได้ (คล้ายกับ Loop while ในการเขียนโปรแกรม) เป็นฟังก์ชันที่ทรงพลังมากสำหรับการสร้างข้อมูลที่มี Logic ซับซ้อน

Leave a Reply

Your email address will not be published. Required fields are marked *