List.Transform ใช้สำหรับสร้างลิสต์ใหม่โดยนำฟังก์ชันไปประมวลผลแต่ละตัวในลิสต์เดิม
= List.Transform(list as list, transform as function) as list
= List.Transform(list as list, transform as function) as list
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| list | List | Yes | ลิสต์ที่ต้องการแปลงค่า เช่น {1, 2, 3, 4, 5} | |
| transform | Function | Yes | ฟังก์ชันที่ใช้แปลงแต่ละตัว เขียนแบบ each [operation] |
นำตัวเลขทุกตัวใน List มาคูณด้วยค่าคงที่ หรือคำนวณซับซ้อนขึ้น
เปลี่ยนข้อความทุกตัวใน List ให้เป็นตัวพิมพ์ใหญ่ (Text.Upper(each _))
ใช้ร่วมกับ Table.AddColumn เพื่อสร้างคอลัมน์ใหม่จาก List ที่มีการแปลงค่าแล้ว
List.Transform({1, 2, 3}, each _ * 2)= List.Transform({1, 2, 3}, each _ * 2)
{2, 4, 6}
List.Transform({"hello", "world"}, each Text.Upper(_))= List.Transform({"hello", "world"}, each Text.Upper(_))
{"HELLO", "WORLD"}
let Numbers = {100, 200, 300}, Increased = List.Transform(Numbers, each _ * 1.1) in Increasedlet
Numbers = {100, 200, 300},
Increased = List.Transform(Numbers, each _ * 1.1)
in
Increased
{110, 220, 330}
List.Transform( List.Transform({1, 2, 3}, each _ * 2), each _ + 10 )= List.Transform(
List.Transform({1, 2, 3}, each _ * 2),
each _ + 10
)
{12, 14, 16}
แตกต่างค่ะ List.Select กรองข้อมูลออก แต่ List.Transform แปลงค่า List.Select ส่งคืนลิสต์เดิมแบบบาง แต่ List.Transform ส่งคืนลิสต์ใหม่ที่มีค่าต่างไป
ไม่จำเป็น สามารถใช้ฟังก์ชันอื่นๆ ได้ เช่น = List.Transform(list, Date.AddDays(_, 1)) แล้วแต่ความต้องการ
ได้ค่า เช่น List.Transform(ListOfRecords, each [_ & {new_field = “value”}]) สามารถเพิ่มฟิลด์ให้รีคอร์ดในลิสต์
List.Transform(list, transform) ใช้สำหรับแปลงค่าในลิสต์ โดยนำฟังก์ชันที่กำหนดไปประมวลผลแต่ละตัว ผลลัพธ์คือลิสต์ใหม่ที่มีค่าที่ถูกแปลงแล้ว
ส่วนตัวผม List.Transform ใช้ได้กับหลายสถานการณ์ เช่น การแปลงตัวเลข การเปลี่ยนข้อความ หรือการจัดการข้อมูล เมื่อคู่กับ each สามารถเขียนได้แบบสั้นๆ ทำให้อ่านง่ายขึ้น
ที่เจ๋งคือ List.Transform ไม่เปลี่ยนลิสต์เดิม แต่สร้างลิสต์ใหม่ที่มีข้อมูลแปลงแล้ว ซึ่งทำให้ปลอดภัยในการใช้งาน