Thep Excel

Table.TransformColumnsแปลงคอลัมน์ด้วยฟังก์ชันการแปลง

Table.TransformColumns ใช้สำหรับแปลงข้อมูลในคอลัมน์โดยใช้ฟังก์ชันที่กำหนดไว้ แต่ละคอลัมน์สามารถมีการแปลงแตกต่างกันได้ รองรับการเปลี่ยนแปลงประเภทข้อมูลในเวลาเดียวกัน

fx
=Table.TransformColumns(table, transformOperations, [defaultTransformation], [missingField])

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

อัปเดต 3 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
table table ตารางที่ต้องการแปลง
transformOperations list รายการการแปลง โดยมี 2 รูปแบบ: {column name, transformation} หรือ {column name, transformation, new type}
[defaultTransformation]ไม่บังคับ nullable function null ฟังก์ชันการแปลงที่ใช้กับคอลัมน์ที่ไม่ระบุในรายการการแปลง
[missingField]ไม่บังคับ nullable number MissingField.Error ระบุว่าจะทำอย่างไรกับคอลัมน์ที่หายไป: MissingField.Error (default), MissingField.UseNull หรือ MissingField.Ignore

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

Additional Notes

Table.TransformColumns (table, transformOperations, [defaultTransformation], [missingField]) ใช้สำหรับแปลงข้อมูลในคอลัมน์ของตารางตามเงื่อนไขที่กำหนด

ที่เจ๋งคือ ฟังก์ชันนี้สามารถแปลงหลายคอลัมน์พร้อมกัน โดยแต่ละคอลัมน์สามารถมีการแปลงแบบต่างๆ ได้ นอกจากนี้ยังรองรับการกำหนดประเภทข้อมูลใหม่ ตัดสินใจว่าจะทำอย่างไรกับคอลัมน์ที่หายไป และใช้ฟังก์ชันการแปลงเริ่มต้นสำหรับคอลัมน์ที่ไม่ระบุ

ส่วนตัวผม Table.TransformColumns มีประโยชน์มากเมื่อต้องแปลงหลายคอลัมน์พร้อมกัน ยิ่งกว่า Table.TransformColumnTypes เพราะว่าสามารถใช้ฟังก์ชันแปลงใดๆ ได้ไม่ใช่แค่ประเภทข้อมูลเท่านั้น เช่น คุณสามารถใช้ Number.FromText, Text.Upper, Date.FromText เป็นต้น 😎

Examples

แปลงประเภทข้อมูลหลายคอลัมน์let Data = Table.FromRecords({ [ID = "1", Amount = 1000, Active = "true"], [ID = "2", Amount = 2500, Active = "false"], [ID = "3", Amount = 1500, Active = "true…

ใช้ Table.TransformColumns เพื่อแปลงประเภทข้อมูลสามคอลัมน์พร้อมกัน ID และ Amount จากข้อความเป็นตัวเลข Active จากข้อความเป็นค่าบูลีน

fx
= let
Data = Table.FromRecords({
[ID = "1", Amount = 1000, Active = "true"],
[ID = "2", Amount = 2500, Active = "false"],
[ID = "3", Amount = 1500, Active = "true"]
}),
Transformed = Table.TransformColumns(Data, {
{"ID", Number.FromText, type number},
{"Amount", Number.FromText, type number},
{"Active", Logical.FromText, type logical}
})
in
Transformed

ผลลัพธ์ตารางที่มี ID, Amount เป็นตัวเลข และ Active เป็นค่าบูลีน
แปลงค่าทั้งหมดในคอลัมน์ด้วย each expressionlet Sales = Table.FromRecords({ [Product = "Pen", Price = 10, Quantity = 100], [Product = "Pencil", Price = 5, Quantity = 200], [Product = "Eraser", Price = 2,…

ใช้ฟังก์ชัน each เพื่อแปลงค่าในแต่ละแถว Text.Upper ทำให้ Product เป็นตัวพิมพ์ใหญ่ ส่วน _ * 1.1 กับ _ * 0.95 ทำการคำนวณเลขคณิต

fx
= let
Sales = Table.FromRecords({
[Product = "Pen", Price = 10, Quantity = 100],
[Product = "Pencil", Price = 5, Quantity = 200],
[Product = "Eraser", Price = 2, Quantity = 150]
}),
Transformed = Table.TransformColumns(Sales, {
{"Product", Text.Upper, type text},
{"Price", each _ * 1.1, type number},
{"Quantity", each _ * 0.95, type number}
})
in
Transformed

ผลลัพธ์Product เป็นตัวพิมพ์ใหญ่ Price เพิ่มขึ้น 10% Quantity ลดลง 5%
ใช้ defaultTransformation สำหรับคอลัมน์ที่ไม่ระบุlet Data = Table.FromRecords({ [Name = "John", Surname = "Doe", Code = "ABC"], [Name = "Jane", Surname = "Smith", Code = "XYZ"] }), Transformed = Table.Transfor…

Code ถูกแปลงให้เป็นตัวพิมพ์เล็กตามรายการ ส่วน Name และ Surname ถูกแปลงให้เป็นตัวพิมพ์ใหญ่จากฟังก์ชันเริ่มต้น

fx
= let
Data = Table.FromRecords({
[Name = "John", Surname = "Doe", Code = "ABC"],
[Name = "Jane", Surname = "Smith", Code = "XYZ"]
}),
Transformed = Table.TransformColumns(
Data,
{{"Code", Text.Lower, type text}},
Text.Upper // defaultTransformation สำหรับคอลัมน์อื่น
)
in
Transformed

ผลลัพธ์Code เป็นตัวพิมพ์เล็ก Name และ Surname เป็นตัวพิมพ์ใหญ่
จัดการคอลัมน์ที่หายไปด้วย MissingField.UseNulllet Data = Table.FromRecords({ [ID = 1, Name = "Alice"], [ID = 2, Name = "Bob"] }), Transformed = Table.TransformColumns( Data, { {"ID", Number.From, type numbe…

MissingField.UseNull ทำให้คอลัมน์ Email ที่ไม่มีในข้อมูลต้นฉบับปรากฏในผลลัพธ์พร้อมค่า null ถ้าไม่ระบุ missingField จะเกิดข้อผิดพลาด

fx
= let
Data = Table.FromRecords({
[ID = 1, Name = "Alice"],
[ID = 2, Name = "Bob"]
}),
Transformed = Table.TransformColumns(
Data,
{
{"ID", Number.From, type number},
{"Name", Text.Upper, type text},
{"Email", Text.Upper, type text} // คอลัมน์ที่ไม่มีในข้อมูล
},
null,
MissingField.UseNull
)
in
Transformed

ผลลัพธ์ตารางเพิ่มคอลัมน์ Email ที่มีค่า null ในทุกแถว
แปลงเงื่อนไขจำหน่ายสินค้าตามตัวกรองlet Inventory = Table.FromRecords({ [SKU = "A001", Stock = "100", Category = "Electronics"], [SKU = "B002", Stock = "50", Category = "books"], [SKU = "C003", St…

ใช้ Text.Upper สำหรับ SKU, Text.Proper สำหรับ Category (ตัวอักษรแรกตัวพิมพ์ใหญ่) และ each Number.FromText(_) * 1.05 เพื่อแปลงแล้วคำนวณ

fx
= let
Inventory = Table.FromRecords({
[SKU = "A001", Stock = "100", Category = "Electronics"],
[SKU = "B002", Stock = "50", Category = "books"],
[SKU = "C003", Stock = "200", Category = "OFFICE"]
}),
Transformed = Table.TransformColumns(Inventory, {
{"SKU", Text.Upper, type text},
{"Stock", each Number.FromText(_) * 1.05, type number},
{"Category", Text.Proper, type text}
})
in
Transformed

ผลลัพธ์SKU และ Category ถูกปรับรูปแบบ Stock คำนวณใหม่เพิ่มขึ้น 5%

FAQs

ต่างกันยังไงระหว่าง Table.TransformColumns กับ Table.TransformColumnTypes+

Table.TransformColumnTypes ใช้สำหรับเปลี่ยนประเภทข้อมูลเท่านั้น ส่วน Table.TransformColumns สามารถใช้ฟังก์ชันแปลงใดๆ ได้ เช่น การเปลี่ยนเนื้อหา การคำนวณ ฯลฯ ทำให้ Table.TransformColumns มีความยืดหยุ่นมากกว่า

ถ้ากำหนดคอลัมน์ที่ไม่มีในข้อมูลจะเกิดอะไร+

หากไม่ระบุ missingField จะเกิดข้อผิดพลาด Error.Expression ถ้าต้องการสร้างคอลัมน์ใหม่ให้ใช้ MissingField.UseNull เพื่อเพิ่มคอลัมน์นั้นพร้อมค่า null

สามารถแปลงคอลัมน์เดียวกันหลายครั้งได้ไหม+

ได้ แต่จะแปลงตามลำดับในรายการ ถ้าต้องการแปลงหลายครั้งให้ใส่ฟังก์ชันแปลงที่ซ้อนกัน เช่น {"Column", each Text.Upper(Text.Trim(_))}

ทำไมต้องระบุประเภทข้อมูลใหม่ (new type) ในรายการแปลง+

ประเภทข้อมูลช่วยให้ Power Query รู้ว่าคอลัมน์นั้นควรแสดงเป็นประเภทใด และสามารถตรวจสอบให้สอดคล้องกับการแปลง ถ้าไม่ระบุ Power Query จะใช้ประเภทเดิม

defaultTransformation ใช้กับคอลัมน์ที่ระบุแล้วหรือไม่+

ไม่ defaultTransformation ใช้เฉพาะคอลัมน์ที่ไม่ระบุในรายการ transformOperations เท่านั้น

Resources & Related

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

ฟังก์ชันนี้Table.TransformColumnsTable functions
Table functions (9)
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.FillUp

Table.FillUp เติมเต็มค่าว่าง (null) ด้วยค่าจากแถวด้านล่างขึ้นไป ทำงานตรงกันข้ามกับ FillDown ใช้สำหรับจัดการข้อมูลที่ค่าสรุปอยู่ล่างสุด

Table.ReplaceValue

Table.ReplaceValue ใช้สำหรับค้นหาและแทนที่ค่าในตารางได้หลายวิธี ตั้งแต่แทนที่ค่าทั้งหมดไปจนถึงแทนที่แบบมีเงื่อนไข

Table.SelectColumns

Table.SelectColumns ใช้สำหรับเลือกคอลัมน์เฉพาะจากตารางและสร้างตารางใหม่ที่มีเฉพาะคอลัมน์เหล่านั้น

Table.Sort

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

Table.TransformColumnTypes

Table.TransformColumnTypes เปลี่ยน Data Type ของคอลัมน์ที่ระบุให้เป็นประเภทใหม่ (เช่น Text เป็น Number, Date เป็น Text) โดยใช้ built-in conversion methods เบื้องหลัง รองรับการแปลงหลายคอลัมน์พร้อมกัน และสามารถระบุ culture parameter เพื่อจัดการ locale-specific formatting สำหรับวันที่และตัวเลข เหมาะสำหรับขั้นตอนเตรียมข้อมูลก่อน Load เข้า Data Model เพื่อป้องกัน conversion errors และเพิ่มประสิทธิภาพ ใช้ร่วมกับ Table.TransformColumns, Number.From, Text.From และ Date.From เมื่อต้องการ custom transformation logic

Table.WithErrorContext

Table.WithErrorContext เป็นฟังก์ชันภายใน Power Query ที่ใช้เพิ่มข้อมูล context ให้กับค่า เพื่อให้ error messages มีความชัดเจนมากขึ้นเวลา debug

Text functions (2)
Text.Clean

Text.Clean ลบตัวอักษรควบคุมที่ไม่สามารถพิมพ์ได้ (Control Characters) เช่น Line Feed, Tab, Carriage Return ออกจากข้อความ โดยเก็บเฉพาะตัวอักษรที่มองเห็นได้และพิมพ์ได้

Text.Trim

Text.Trim ลบอักขระที่ระบุออกจากต้นและท้ายของข้อความ ค่าเริ่มต้นจะลบแค่ช่องว่าง

DateTime functions (1)
DateTime.FromText

DateTime.FromText ใช้แปลงข้อความเป็นค่า datetime พร้อมรองรับรูปแบบและภาษาที่หลากหลาย

Comments

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