Record.TransformFields แปลงค่าในฟิลด์ที่ระบุของเรคอร์ดโดยใช้ฟังก์ชันแปลงค่า สามารถแปลงฟิลด์เดียวหรือหลายฟิลด์พร้อมกันได้ เหมาะสำหรับการทำความสะอาดข้อมูลและการแปลงประเภทข้อมูล
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| record | record | เรคอร์ดที่ต้องการแปลงค่า |
| transformOperations | list | รายการคู่ของชื่อฟิลด์และฟังก์ชันแปลงค่า รูปแบบ: {“FieldName”, Function} สำหรับฟิลด์เดียว หรือ {{“Field1”, Function1}, {“Field2”, Function2}} สำหรับหลายฟิลด์ |
| [missingField]ไม่บังคับ | nullable number | พารามิเตอร์ทางเลือกสำหรับการจัดการกับฟิลด์ที่ไม่พบ |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
Record.TransformFields คือฟังก์ชันที่ช่วยแปลงค่าฟิลด์ได้หลายตัวพร้อมกันในเรคอร์ดเดียว เหมือนว่าคุณสามารถให้แต่ละฟิลด์ผ่านการ “ปรับปรุง” ของตัวเองในครั้งเดียวได้ แทนที่จะจัดการทีละตัว.
ที่เจ๋งคือ มันรองรับการแปลงทุกแบบ ตั้งแต่การเปลี่ยนประเภทข้อมูล (ข้อความเป็นตัวเลข) ไปจนถึงการแปลงตามเงื่อนไขที่คุณกำหนดเอง โดยใช้ฟังก์ชัน each ได้
ส่วนตัวผม ใช้มันเมื่อต้องทำความสะอาดข้อมูลจากระบบภายนอก มันช่วยประหยัดเวลาหลายนาทีเทียบกับการแปลงทีละฟิลด์
แปลงฟิลด์ Price จากข้อความ "100.0" เป็นตัวเลข 100 โดยใช้ฟังก์ชัน Number.FromText ฟิลด์อื่นๆ ยังคงเหมือนเดิม
แปลงทั้งสามฟิลด์เป็นตัวพิมพ์ใหญ่พร้อมกัน โดยใช้ฟังก์ชัน Text.Upper กับฟิลด์ FirstName LastName และ City
แปลงฟิลด์ Value1 โดยคูณด้วย 2 แปลง Value2 โดยบวก 100 และแปลง Name เป็นตัวพิมพ์ใหญ่ ทั้งนี้ทำในการเรียกฟังก์ชันครั้งเดียว
แปลงทั้งสามฟิลด์จากข้อความเป็นตัวเลข เหมาะสำหรับการทำความสะอาดข้อมูลที่นำเข้ามาเป็นข้อความทั้งหมด
each คือตัวสั้นของ Power Query ที่บอกว่า "เอาค่านี้ แล้วทำอะไรสักอย่าง" โดย _ คือค่าปัจจุบัน เช่น each _ * 2 คือ "เอาค่านี้ คูณ 2" แบบนี้เขียนการแปลงแบบไหนก็ได้โดยไม่ต้องเขียนฟังก์ชันเต็ม
ไม่ได้ ถ้าคุณพยายามแปลงฟิลด์ที่ไม่มีจริง มันจะตัดสินใจได้ว่าจะให้ error หรือไม่ขึ้นอยู่กับพารามิเตอร์ missingField เลยดีที่สุดคือ ตรวจสอบชื่อฟิลด์ให้ถูกต้องก่อนรัน
ง่ายแค่ระบุทั้งหมดในรายการ transformOperations แต่จริงๆ ไม่ต้องจัดการฟิลด์ที่ไม่ต้องแปลง เลยโฟกัสแค่ที่ต้องปรับ
ขึ้นอยู่กับฟังก์ชันที่ใช้ พอ Number.FromText เจอ null มันจะ error เลย แต่บางฟังก์ชันมี null handling อยู่แล้ว วิธีที่ดีที่สุดคือเทสต์ก่อน หรือใช้ฟังก์ชัน error handling จาก Power Query
ได้เลย ใช้ each ได้ทั้ง lambda ที่สร้างขึ้นใหม่ กับฟังก์ชันที่สร้างมาแล้ว เช่น each Text.Upper(_) หรือ Text.Upper ตรงๆ ทั้งหมดใช้ได้หมด
ฟังก์ชันที่ผู้เขียนโยงไว้กับ Record.TransformFields จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
Adds a new field with a specified name and value to a record | เพิ่มฟิลด์ใหม่พร้อมชื่อและค่าเข้าไปใน Record
Removes specified fields from a record | ลบฟิลด์ที่ระบุออกจาก Record
Returns a record after renaming specified fields | เปลี่ยนชื่อฟิลด์ที่ระบุใน Record
Rearranges the order of fields in a record | จัดเรียงลำดับฟิลด์ใหม่ใน Record ตามที่ต้องการ
Record.SelectFields จะคืนค่า Record ใหม่ที่มีเฉพาะ Field ที่ระบุใน List เท่านั้น สามารถจัดการกับ Field ที่หายไปได้ด้วย option missingField
Text.Lower ใช้แปลงอักขระทั้งหมดในข้อความให้เป็นตัวพิมพ์เล็ก (lowercase) ช่วยให้ข้อมูลมีรูปแบบสอดคล้องกัน สามารถกำหนด Culture เพื่อให้การแปลงเป็นไปตามกฎของภาษาและภูมิภาคที่ต้องการ
Text.Upper แปลงอักขระทั้งหมดในข้อความเป็นตัวอักษรใหญ่ โดยรองรับการตั้งค่า culture ต่างๆ เพื่อจัดการการแปลงที่ถูกต้องตามภาษา
Number.FromText แปลงค่าข้อความที่เป็นตัวแทนของตัวเลขเป็นค่าตัวเลขจริง รองรับการจัดรูปแบบตัวเลขต่างๆ รวมถึงสัญกรณ์วิทยาศาสตร์
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่