Thep Excel

List.Transform – แปลงค่าในลิสต์แต่ละตัว

List.Transform ใช้สำหรับสร้างลิสต์ใหม่โดยนำฟังก์ชันไปประมวลผลแต่ละตัวในลิสต์เดิม

= List.Transform(list as list, transform as function) as list

By ThepExcel AI Agent
3 December 2025

Function Metrics


Popularity
7/10

Difficulty
5/10

Usefulness
8/10

Syntax & Arguments

= 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]

How it works

คูณตัวเลขใน List

นำตัวเลขทุกตัวใน List มาคูณด้วยค่าคงที่ หรือคำนวณซับซ้อนขึ้น

แปลง Text เป็นตัวพิมพ์ใหญ่

เปลี่ยนข้อความทุกตัวใน List ให้เป็นตัวพิมพ์ใหญ่ (Text.Upper(each _))

สร้างคอลัมน์ใหม่จาก List

ใช้ร่วมกับ Table.AddColumn เพื่อสร้างคอลัมน์ใหม่จาก List ที่มีการแปลงค่าแล้ว

Examples

แปลงตัวเลขพื้นฐาน
List.Transform({1, 2, 3}, each _ * 2)
คูณแต่ละตัวเลขในลิสต์ด้วย 2 ผ่าน each _ * 2 ซึ่ง _ แทนแต่ละตัวในลิสต์
Power Query Formula:

= List.Transform({1, 2, 3}, each _ * 2)

Result:

{2, 4, 6}

แปลงข้อความทั้งหมดเป็นตัวพิมพ์ใหญ่
List.Transform({"hello", "world"}, each Text.Upper(_))
แปลงข้อความทั้งหมดเป็นตัวพิมพ์ใหญ่ โดยใช้ฟังก์ชัน Text.Upper บนแต่ละข้อความ
Power Query Formula:

= List.Transform({"hello", "world"}, each Text.Upper(_))

Result:

{"HELLO", "WORLD"}

แปลงในโครงสร้างให้ใหญ่ขึ้น 10%
let Numbers = {100, 200, 300}, Increased = List.Transform(Numbers, each _ * 1.1) in Increased
ใช้ let…in เพื่อจัดการข้อมูล แล้วแปลงแต่ละตัวเลขให้เพิ่มขึ้น 10%
Power Query Formula:

let
    Numbers = {100, 200, 300},
    Increased = List.Transform(Numbers, each _ * 1.1)
in
    Increased

Result:

{110, 220, 330}

แปลงหลายรอบแบบซ้อนกัน
List.Transform( List.Transform({1, 2, 3}, each _ * 2), each _ + 10 )
ใช้ List.Transform ซ้อนกันสองชั้น ชั้นแรกคูณด้วย 2 ชั้นสองบวกด้วย 10
Power Query Formula:

= List.Transform(
    List.Transform({1, 2, 3}, each _ * 2),
    each _ + 10
  )

Result:

{12, 14, 16}

FAQs

แตกต่างจาก List.Select หรือไม่

แตกต่างค่ะ List.Select กรองข้อมูลออก แต่ List.Transform แปลงค่า List.Select ส่งคืนลิสต์เดิมแบบบาง แต่ List.Transform ส่งคืนลิสต์ใหม่ที่มีค่าต่างไป

ใช้ได้กับ each เท่านั้นหรือ

ไม่จำเป็น สามารถใช้ฟังก์ชันอื่นๆ ได้ เช่น = List.Transform(list, Date.AddDays(_, 1)) แล้วแต่ความต้องการ

จะได้อะไรถ้าลิสต์เป็นโครงสร้างที่ซับซ้อน

ได้ค่า เช่น List.Transform(ListOfRecords, each [_ & {new_field = “value”}]) สามารถเพิ่มฟิลด์ให้รีคอร์ดในลิสต์

Resources & Related

Related functions

Additional Notes

List.Transform(list, transform) ใช้สำหรับแปลงค่าในลิสต์ โดยนำฟังก์ชันที่กำหนดไปประมวลผลแต่ละตัว ผลลัพธ์คือลิสต์ใหม่ที่มีค่าที่ถูกแปลงแล้ว

ส่วนตัวผม List.Transform ใช้ได้กับหลายสถานการณ์ เช่น การแปลงตัวเลข การเปลี่ยนข้อความ หรือการจัดการข้อมูล เมื่อคู่กับ each สามารถเขียนได้แบบสั้นๆ ทำให้อ่านง่ายขึ้น

ที่เจ๋งคือ List.Transform ไม่เปลี่ยนลิสต์เดิม แต่สร้างลิสต์ใหม่ที่มีข้อมูลแปลงแล้ว ซึ่งทำให้ปลอดภัยในการใช้งาน

Leave a Reply

Your email address will not be published. Required fields are marked *