Thep Excel

Table.AddIndexColumnเพิ่มคอลัมน์ลำดับเลข

Table.AddIndexColumn ใช้สำหรับเพิ่มคอลัมน์ที่มีลำดับเลขให้กับตาราง ช่วยให้สามารถกำหนดหมายเลขแถวตามลำดับได้

fx
=Table.AddIndexColumn(table, newColumnName, [initialValue], [increment], [columnType])

ความนิยม7/10
ความยาก3/10
ประโยชน์7/10

อัปเดต 3 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
table Table ตารางต้นฉบับที่ต้องการเพิ่มคอลัมน์ลำดับเลข
newColumnName Text ชื่อของคอลัมน์ลำดับเลขที่จะเพิ่มเข้าไป เช่น “Index” หรือ “RowNumber”
[initialValue]ไม่บังคับ Number 0 ค่าเริ่มต้นของลำดับเลข (ค่าปกติ: 0)
[increment]ไม่บังคับ Number 1 ค่าการเพิ่มขึ้นสำหรับแต่ละแถว (ค่าปกติ: 1)
[columnType]ไม่บังคับ Type ชนิดข้อมูลของคอลัมน์ใหม่ เช่น Int64.Type, Int32.Type (ค่าปกติ: ชนิดตัวเลข)

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

Table.AddIndexColumn เป็นฟังก์ชันที่ช่วยเพิ่มคอลัมน์ใหม่ลงในตารางพร้อมกับค่าลำดับเลข (index values) ซึ่งมีประโยชน์สำหรับการสร้างตัวเลขประจำตัวแถวหรือการเรียงลำดับข้อมูล

ส่วนตัวผมชอบใช้ Table.AddIndexColumn เพราะสามารถกำหนดค่าเริ่มต้นและค่าการเพิ่มขึ้นได้ตามต้องการ ไม่ว่าจะเริ่มจาก 0, 1 หรือตัวเลขอื่นๆ ก็ได้ อีกทั้งยังสามารถกำหนดชนิดข้อมูลของคอลัมน์ได้อีก 😎

How it works

สร้าง Running Number

เพิ่มเลขลำดับ 1, 2, 3… เพื่อใช้อ้างอิงแถว

คืนค่าลำดับเดิมหลัง Sort

เพิ่ม Index ก่อน Sort เพื่อให้สามารถ Sort กลับมาเป็นลำดับเดิมได้ในภายหลัง

สร้าง Key สำหรับ Relationship

สร้าง Surrogate Key ให้กับ Dimension Table ที่ไม่มี ID

Examples

เพิ่มลำดับเลขพื้นฐาน (เริ่มจาก 0)let Sales = Table.FromRecords({ [Product = "Apple", Quantity = 5], [Product = "Banana", Quantity = 3], [Product = "Orange", Quantity = 7] }), WithIndex = Table.…

ใช้ Table.AddIndexColumn กับค่าเริ่มต้น (0) และค่าเพิ่มขึ้น (1) ค่าปกติ จะได้ลำดับเลข 0, 1, 2 สำหรับแต่ละแถว

fx
let
Sales = Table.FromRecords({
[Product = "Apple", Quantity = 5],
[Product = "Banana", Quantity = 3],
[Product = "Orange", Quantity = 7]
}),
WithIndex = Table.AddIndexColumn(Sales, "Index")
in
WithIndex

ผลลัพธ์ตาราง 3 แถว โดยเพิ่มคอลัมน์ Index ที่มีค่า 0, 1, 2
ลำดับเลขเริ่มจาก 1let Sales = Table.FromRecords({ [Product = "Apple", Quantity = 5], [Product = "Banana", Quantity = 3], [Product = "Orange", Quantity = 7] }), WithRowNumber = Ta…

โดยการตั้ง initialValue = 1 จะได้ลำดับเลขเริ่มจาก 1 แทนที่จะเป็น 0 ซึ่งเหมาะสำหรับผู้ใช้ที่ต้องการลำดับเลขทั่วไป

fx
let
Sales = Table.FromRecords({
[Product = "Apple", Quantity = 5],
[Product = "Banana", Quantity = 3],
[Product = "Orange", Quantity = 7]
}),
WithRowNumber = Table.AddIndexColumn(Sales, "RowNumber", 1)
in
WithRowNumber

ผลลัพธ์ตาราง 3 แถว โดยคอลัมน์ RowNumber มีค่า 1, 2, 3
ลำดับเลขขั้นที่ 5let Sales = Table.FromRecords({ [Product = "Apple", Quantity = 5], [Product = "Banana", Quantity = 3], [Product = "Orange", Quantity = 7] }), WithCustomIncremen…

การตั้ง initialValue = 10 และ increment = 5 จะให้ลำดับเลข 10, 15, 20, … ซึ่งเหมาะสำหรับการสร้าง ID ที่มีช่องว่าง

fx
let
Sales = Table.FromRecords({
[Product = "Apple", Quantity = 5],
[Product = "Banana", Quantity = 3],
[Product = "Orange", Quantity = 7]
}),
WithCustomIncrement = Table.AddIndexColumn(Sales, "ID", 10, 5)
in
WithCustomIncrement

ผลลัพธ์ตาราง 3 แถว โดยคอลัมน์ ID มีค่า 10, 15, 20
ลำดับเลขพร้อมระบุชนิดข้อมูลlet Source = Table.FromRecords({ [Name = "John"], [Name = "Jane"], [Name = "Jack"] }), WithIndexInt64 = Table.AddIndexColumn(Source, "IndexID", 5, 5, Int64.Type…

การระบุ columnType = Int64.Type จะทำให้คอลัมน์ใหม่เป็นชนิด 64-bit integer ซึ่งเหมาะสำหรับตาราง Excel ที่ต้องการความเข้ากันได้

fx
let
Source = Table.FromRecords({
[Name = "John"],
[Name = "Jane"],
[Name = "Jack"]
}),
WithIndexInt64 = Table.AddIndexColumn(Source, "IndexID", 5, 5, Int64.Type)
in
WithIndexInt64

ผลลัพธ์ตาราง 3 แถว โดยคอลัมน์ IndexID เป็นชนิด Int64 ที่มีค่า 5, 10, 15

FAQs

ต่างกับ Table.RowCount อย่างไร?+

Table.RowCount จะนับจำนวนแถวทั้งหมด ส่วน Table.AddIndexColumn เพิ่มคอลัมน์ใหม่ที่มีลำดับเลขแต่ละแถว ทั้งสองสามารถใช้ร่วมกันได้

ค่า increment ต้องเป็นบวกเสมอหรือ?+

ไม่จำเป็น สามารถใช้ค่าลบได้ เช่น increment = -1 จะให้ลำดับเลขลดลง เช่น 10, 9, 8, 7, …

เพิ่มลำดับเลขหลายคอลัมน์ได้หรือ?+

ได้ สามารถเรียก Table.AddIndexColumn หลายครั้ง โดยแต่ละครั้งเพิ่มคอลัมน์ลำดับเลขชื่อต่างกัน

ลำดับเลขจะยังคงเหมือนเดิมหลังจากกรองข้อมูล (filter) หรือ?+

ขึ้นอยู่ว่าคุณ filter ก่อนหรือหลัง ถ้า filter ก่อน แล้วค่อยเพิ่ม index จะได้ลำดับเลขจากแถวที่เหลือ

Resources & Related

ฟังก์ชันที่ผู้เขียนโยงไว้กับ Table.AddIndexColumn จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้Table.AddIndexColumnTable functions
Table functions (4)
Table.AddColumn

Table.AddColumn เพิ่มคอลัมน์ใหม่ลงในตารางโดยคำนวณค่าจากฟังก์ชันที่กำหนด ใช้คำสั่ง each เพื่ออ้างอิงข้อมูลในแต่ละแถว เช่น each [Price] * [Quantity] สามารถระบุชนิดข้อมูลได้เพื่อเพิ่มประสิทธิภาพและป้องกันข้อผิดพลาดจากการคาดเดาชนิดข้อมูล ทำงานแบบทีละแถวและเหมาะสำหรับสร้างคอลัมน์คำนวณ รวมข้อมูล ใช้เงื่อนไข และการแปลงข้อมูลต่างๆ ใช้ร่วมกับฟังก์ชัน Table.TransformColumns สำหรับแก้ไขคอลัมน์เดิม Table.AddIndexColumn สำหรับเพิ่มหมายเลขลำดับ Table.SelectRows สำหรับกรองแถว Table.FromRecords สำหรับสร้างตารางจากข้อมูล Text.Combine สำหรับรวมข้อความ Number.Round สำหรับปัดเศษ Date.Year สำหรับดึงค่าปี และ Text.Upper สำหรับแปลงเป็นตัวพิมพ์ใหญ่ เพื่อสร้างกระบวนการแปลงข้อมูลที่สมบูรณ์

Table.Buffer

Table.Buffer บังคับโหลดตารางลงหน่วยความจำและแยกออกจากแหล่งข้อมูลต้นทาง ช่วยป้องกันการ fold และควบคุมเวลาประมวลผล

Table.ConformToPageReader

Table.ConformToPageReader ปรับโครงสร้างตารางให้เข้ากับกลไก page reader โดยรับฟังก์ชันสำหรับการจัดรูปแบบ เป็นฟังก์ชันภายในของ Power Query ไม่แนะนำให้ใช้ในโค้ดทั่วไป

Table.Sort

เรียงลำดับข้อมูลในตารางตามคอลัมน์ที่ระบุ รองรับการเรียงหลายระดับและกำหนดทิศทางการเรียง

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่