List.Numbers สร้าง List ของตัวเลขเรียงกันตามค่าเริ่มต้น จำนวน และการเพิ่มค่า
=List.Numbers(start as number, count as number, optional increment as nullable number) as list
=List.Numbers(start as number, count as number, optional increment as nullable number) as list
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| start | number | Yes | ค่าเริ่มต้นของลำดับ สามารถเป็นจำนวนเต็มหรือทศนิยมก็ได้ | |
| count | number | Yes | จำนวนตัวเลขที่ต้องการสร้าง ต้องเป็นจำนวนเต็มที่มากกว่า 0 | |
| increment | number | Optional | 1 | ระยะห่างระหว่างตัวเลขแต่ละตัว หากไม่ระบุจะใช้ค่า 1 เป็นค่าเริ่มต้น สามารถใช้ค่าลบได้เพื่อสร้างลำดับจากมากไปน้อย |
List.Numbers(1, 5)= List.Numbers(1, 5)
{1, 2, 3, 4, 5}
List.Numbers(2, 10, 2)= List.Numbers(2, 10, 2)
{2, 4, 6, 8, 10, 12, 14, 16, 18, 20}
List.Numbers(10, 5, -1)= List.Numbers(10, 5, -1)
{10, 9, 8, 7, 6}
List.Numbers(0.5, 4, 0.5)= List.Numbers(0.5, 4, 0.5)
{0.5, 1.0, 1.5, 2.0}
let Source = Table.FromRows({{"A"}, {"B"}, {"C"}}, {"Name"}), AddIndex = Table.AddColumn(Source, "Index", each List.Numbers(1, Table.RowCount(Source))) in AddIn…let
Source = Table.FromRows({{"A"}, {"B"}, {"C"}}, {"Name"}),
AddIndex = Table.AddColumn(Source, "Index", each List.Numbers(1, Table.RowCount(Source)))
in
AddIndex
ตาราง 3 แถว พร้อม index column {1, 2, 3}
List.Numbers สร้าง List ตัวเลขใหม่ตามที่ระบุ ส่วน List.Range นำตัวเลขจาก List ที่มีอยู่แล้ว List.Numbers เป็นฟังก์ชันกำเนิด ส่วน List.Range เป็นฟังก์ชันตัดแต่ง
ได้ แต่ต้องระวังประสิทธิภาพ ถ้า count ใหญ่ขึ้นเรื่อยๆ ควรพิจารณาการใช้ List.Generate ซึ่ง lazy evaluation ได้ดีกว่า
ไม่ได้ หากตั้ง increment = 0 จะเกิด error เพราะสร้างลำดับไม่สิ้นสุด
List.Numbers มี default ตั้งแต่ Power Query 2016 เป็นต้นมา
List.Numbers(start, count, [increment]) ใช้สำหรับสร้าง List ของตัวเลขเรียงลำดับ เป็นฟังก์ชันที่มีประโยชน์สำหรับสร้างลำดับหมายเลข การสร้าง index column หรือจำนวนเรียงกันอื่นๆ ในการ transform ข้อมูล
ฟังก์ชันนี้ทำงานโดยระบุ 3 พารามิเตอร์: start (ค่าเริ่มต้น) count (จำนวนที่ต้องการ) และ increment (ระยะห่างระหว่างตัวเลข) ตัวอย่างเช่น List.Numbers(1, 5) จะส่งคืน {1, 2, 3, 4, 5} และ List.Numbers(1, 5, 2) จะส่งคืน {1, 3, 5, 7, 9}
ส่วนตัวผมชอบใช้ List.Numbers เมื่อต้องการสร้าง sequence ของตัวเลขแทนการ hardcode list ด้วยมือ โดยเฉพาะเมื่อต้องการจำนวนเยอะๆ หรือต้องการ increment ที่ไม่ใช่ 1 ทำให้โค้ด dynamic และสามารถปรับค่าได้ง่าย 😎