Table.TransformColumns ใช้สำหรับแปลงข้อมูลในคอลัมน์โดยใช้ฟังก์ชันที่กำหนดไว้ แต่ละคอลัมน์สามารถมีการแปลงแตกต่างกันได้ รองรับการเปลี่ยนแปลงประเภทข้อมูลในเวลาเดียวกัน
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| 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 |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
Table.TransformColumns (table, transformOperations, [defaultTransformation], [missingField]) ใช้สำหรับแปลงข้อมูลในคอลัมน์ของตารางตามเงื่อนไขที่กำหนด
ที่เจ๋งคือ ฟังก์ชันนี้สามารถแปลงหลายคอลัมน์พร้อมกัน โดยแต่ละคอลัมน์สามารถมีการแปลงแบบต่างๆ ได้ นอกจากนี้ยังรองรับการกำหนดประเภทข้อมูลใหม่ ตัดสินใจว่าจะทำอย่างไรกับคอลัมน์ที่หายไป และใช้ฟังก์ชันการแปลงเริ่มต้นสำหรับคอลัมน์ที่ไม่ระบุ
ส่วนตัวผม Table.TransformColumns มีประโยชน์มากเมื่อต้องแปลงหลายคอลัมน์พร้อมกัน ยิ่งกว่า Table.TransformColumnTypes เพราะว่าสามารถใช้ฟังก์ชันแปลงใดๆ ได้ไม่ใช่แค่ประเภทข้อมูลเท่านั้น เช่น คุณสามารถใช้ Number.FromText, Text.Upper, Date.FromText เป็นต้น 😎
ใช้ Table.TransformColumns เพื่อแปลงประเภทข้อมูลสามคอลัมน์พร้อมกัน ID และ Amount จากข้อความเป็นตัวเลข Active จากข้อความเป็นค่าบูลีน
ใช้ฟังก์ชัน each เพื่อแปลงค่าในแต่ละแถว Text.Upper ทำให้ Product เป็นตัวพิมพ์ใหญ่ ส่วน _ * 1.1 กับ _ * 0.95 ทำการคำนวณเลขคณิต
Code ถูกแปลงให้เป็นตัวพิมพ์เล็กตามรายการ ส่วน Name และ Surname ถูกแปลงให้เป็นตัวพิมพ์ใหญ่จากฟังก์ชันเริ่มต้น
MissingField.UseNull ทำให้คอลัมน์ Email ที่ไม่มีในข้อมูลต้นฉบับปรากฏในผลลัพธ์พร้อมค่า null ถ้าไม่ระบุ missingField จะเกิดข้อผิดพลาด
ใช้ Text.Upper สำหรับ SKU, Text.Proper สำหรับ Category (ตัวอักษรแรกตัวพิมพ์ใหญ่) และ each Number.FromText(_) * 1.05 เพื่อแปลงแล้วคำนวณ
Table.TransformColumnTypes ใช้สำหรับเปลี่ยนประเภทข้อมูลเท่านั้น ส่วน Table.TransformColumns สามารถใช้ฟังก์ชันแปลงใดๆ ได้ เช่น การเปลี่ยนเนื้อหา การคำนวณ ฯลฯ ทำให้ Table.TransformColumns มีความยืดหยุ่นมากกว่า
หากไม่ระบุ missingField จะเกิดข้อผิดพลาด Error.Expression ถ้าต้องการสร้างคอลัมน์ใหม่ให้ใช้ MissingField.UseNull เพื่อเพิ่มคอลัมน์นั้นพร้อมค่า null
ได้ แต่จะแปลงตามลำดับในรายการ ถ้าต้องการแปลงหลายครั้งให้ใส่ฟังก์ชันแปลงที่ซ้อนกัน เช่น {"Column", each Text.Upper(Text.Trim(_))}
ประเภทข้อมูลช่วยให้ Power Query รู้ว่าคอลัมน์นั้นควรแสดงเป็นประเภทใด และสามารถตรวจสอบให้สอดคล้องกับการแปลง ถ้าไม่ระบุ Power Query จะใช้ประเภทเดิม
ไม่ defaultTransformation ใช้เฉพาะคอลัมน์ที่ไม่ระบุในรายการ transformOperations เท่านั้น
ฟังก์ชันที่ผู้เขียนโยงไว้กับ Table.TransformColumns จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
Table.AddColumn เพิ่มคอลัมน์ใหม่ลงในตารางโดยคำนวณค่าจากฟังก์ชันที่กำหนด ใช้คำสั่ง each เพื่ออ้างอิงข้อมูลในแต่ละแถว เช่น each [Price] * [Quantity] สามารถระบุชนิดข้อมูลได้เพื่อเพิ่มประสิทธิภาพและป้องกันข้อผิดพลาดจากการคาดเดาชนิดข้อมูล ทำงานแบบทีละแถวและเหมาะสำหรับสร้างคอลัมน์คำนวณ รวมข้อมูล ใช้เงื่อนไข และการแปลงข้อมูลต่างๆ ใช้ร่วมกับฟังก์ชัน Table.TransformColumns สำหรับแก้ไขคอลัมน์เดิม Table.AddIndexColumn สำหรับเพิ่มหมายเลขลำดับ Table.SelectRows สำหรับกรองแถว Table.FromRecords สำหรับสร้างตารางจากข้อมูล Text.Combine สำหรับรวมข้อความ Number.Round สำหรับปัดเศษ Date.Year สำหรับดึงค่าปี และ Text.Upper สำหรับแปลงเป็นตัวพิมพ์ใหญ่ เพื่อสร้างกระบวนการแปลงข้อมูลที่สมบูรณ์
Table.Buffer บังคับโหลดตารางลงหน่วยความจำและแยกออกจากแหล่งข้อมูลต้นทาง ช่วยป้องกันการ fold และควบคุมเวลาประมวลผล
Table.ConformToPageReader ปรับโครงสร้างตารางให้เข้ากับกลไก page reader โดยรับฟังก์ชันสำหรับการจัดรูปแบบ เป็นฟังก์ชันภายในของ Power Query ไม่แนะนำให้ใช้ในโค้ดทั่วไป
Table.FillUp เติมเต็มค่าว่าง (null) ด้วยค่าจากแถวด้านล่างขึ้นไป ทำงานตรงกันข้ามกับ FillDown ใช้สำหรับจัดการข้อมูลที่ค่าสรุปอยู่ล่างสุด
Table.ReplaceValue ใช้สำหรับค้นหาและแทนที่ค่าในตารางได้หลายวิธี ตั้งแต่แทนที่ค่าทั้งหมดไปจนถึงแทนที่แบบมีเงื่อนไข
Table.SelectColumns ใช้สำหรับเลือกคอลัมน์เฉพาะจากตารางและสร้างตารางใหม่ที่มีเฉพาะคอลัมน์เหล่านั้น
เรียงลำดับข้อมูลในตารางตามคอลัมน์ที่ระบุ รองรับการเรียงหลายระดับและกำหนดทิศทางการเรียง
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 เป็นฟังก์ชันภายใน Power Query ที่ใช้เพิ่มข้อมูล context ให้กับค่า เพื่อให้ error messages มีความชัดเจนมากขึ้นเวลา debug
Text.Clean ลบตัวอักษรควบคุมที่ไม่สามารถพิมพ์ได้ (Control Characters) เช่น Line Feed, Tab, Carriage Return ออกจากข้อความ โดยเก็บเฉพาะตัวอักษรที่มองเห็นได้และพิมพ์ได้
Text.Trim ลบอักขระที่ระบุออกจากต้นและท้ายของข้อความ ค่าเริ่มต้นจะลบแค่ช่องว่าง
DateTime.FromText ใช้แปลงข้อความเป็นค่า datetime พร้อมรองรับรูปแบบและภาษาที่หลากหลาย
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่