Thep Excel

List.Select – เลือกสมาชิกจาก List ตามเงื่อนไข

List.Select จะรับ List และฟังก์ชันเงื่อนไข (selection as function) โดยจะประเมินฟังก์ชันเงื่อนไขกับสมาชิกแต่ละตัว หากฟังก์ชันคืนค่า true จะเก็บสมาชิกนั้นไว้ใน List ใหม่ หากคืนค่า false จะถูกคัดทิ้งไป

=List.Select(list as list, selection as function) as list

By ThepExcel AI Agent
3 December 2025

Function Metrics


Popularity
6/10

Difficulty
4/10

Usefulness
7/10

Syntax & Arguments

=List.Select(list as list, selection as function) as list

Argument Type Required Default Description
list list Yes List ที่ต้องการกรอง
selection function Yes ฟังก์ชันเงื่อนไขที่คืนค่า true/false (มักใช้ ‘each …’)

How it works

เลือกเฉพาะตัวเลขคู่

กรอง List ของตัวเลข เพื่อเลือกเก็บเฉพาะตัวเลขคู่

เลือกรายการที่มีสถานะ 'Active'

เมื่อ List มี Record (เช่น Table.ToRecords) สามารถเลือกเฉพาะ Record ที่คอลัมน์ [Status] = 'Active'

Examples

ตัวอย่างที่ 1: กรองตัวเลขบวกจาก List
let Numbers = {1, -3, 4, 9, -2}, PositiveNumbers = List.Select(Numbers, each _ > 0) in PositiveNumbers
กรองเฉพาะตัวเลขที่มากกว่า 0 จากลิสต์ _ หมายถึงสมาชิกปัจจุบันในลิสต์
Power Query Formula:

let
    Numbers = {1, -3, 4, 9, -2},
    PositiveNumbers = List.Select(Numbers, each _ > 0)
in
    PositiveNumbers

Result:

{1, 4, 9}

ตัวอย่างที่ 2: กรองข้อความที่ขึ้นต้นด้วย 'A'
let Fruits = {"Apple", "Banana", "Apricot", "Grape"}, StartsWithA = List.Select(Fruits, each Text.StartsWith(_, "A")) in StartsWithA
เลือกสมาชิกข้อความที่ขึ้นต้นด้วยตัว 'A' โดยใช้ Text.StartsWith
Power Query Formula:

let
    Fruits = {"Apple", "Banana", "Apricot", "Grape"},
    StartsWithA = List.Select(Fruits, each Text.StartsWith(_, "A"))
in
    StartsWithA

Result:

{"Apple", "Apricot"}

ตัวอย่างที่ 3: กรองวันหยุดสุดสัปดาห์
let dates = { #date(2025, 12, 20), // Saturday #date(2025, 12, 21), // Sunday #date(2025, 12, 22), // Monday #date(2025, 12, 27) // Saturday }, weekendDates = L…
กรองวันหยุดสุดสัปดาห์โดยใช้ Date.DayOfWeek ตรวจสอบว่าวันนั้นตรงกับ Saturday (5) หรือ Sunday (6)
Power Query Formula:

let
    dates = {
        #date(2025, 12, 20),  // Saturday
        #date(2025, 12, 21),  // Sunday
        #date(2025, 12, 22),  // Monday
        #date(2025, 12, 27)   // Saturday
    },
    weekendDates = List.Select(
        dates,
        each Date.DayOfWeek(_, Day.Monday) >= 5
    )
in
    weekendDates

Result:

{#date(2025, 12, 20), #date(2025, 12, 21), #date(2025, 12, 27)}

ตัวอย่างที่ 4: กรอง Records ตามหลายเงื่อนไข
let customers = { [Name = "Alice", Status = "Active", Purchases = 150], [Name = "Bob", Status = "Inactive", Purchases = 200], [Name = "Carol", Status = "Active"…
กรอง Records ที่ Status = 'Active' และ Purchases > 100 โดยรวมหลายเงื่อนไขด้วย 'and'
Power Query Formula:

let
    customers = {
        [Name = "Alice", Status = "Active", Purchases = 150],
        [Name = "Bob", Status = "Inactive", Purchases = 200],
        [Name = "Carol", Status = "Active", Purchases = 90],
        [Name = "Dave", Status = "Active", Purchases = 120]
    },
    activeHighValue = List.Select(
        customers,
        each [Status] = "Active" and [Purchases] > 100
    )
in
    activeHighValue

Result:

{
[Name = "Alice", Status = "Active", Purchases = 150],
[Name = "Dave", Status = "Active", Purchases = 120]
}

FAQs

List.Select ต่างจาก Table.SelectRows อย่างไร?

List.Select ใช้กรองสมาชิกใน List ส่วน Table.SelectRows ใช้กรองแถวใน Table หลักการทำงานคล้ายกันแต่ใช้กับ Structure ของข้อมูลที่ต่างกัน

Resources & Related

Related functions

Additional Notes

List.Select ใช้สำหรับกรองสมาชิกใน List โดยประเมินฟังก์ชันเงื่อนไขกับแต่ละสมาชิก เก็บเฉพาะสมาชิกที่คืนค่า true

ที่เจ๋งคือ List.Select ทำให้โค้ดอ่านง่ายมากเมื่อต้องทำความสะอาดข้อมูล เช่น กรองตัวเลขบวก ลบช่องว่าง หรือเลือกเฉพาะสมาชิกที่ตรงเงื่อนไข ใช้ได้กับ List ที่มีประเภทข้อมูลใดก็ได้

ส่วนตัวผมชอบใช้ List.Select คู่กับ each เพื่อเขียน filter condition แบบสั้นๆ สำหรับข้อมูลที่ซับซ้อน เช่นกรองแต่เฉพาะ Records ที่มี Status = “Active” ได้เลย ทำให้โค้ดสะอาดและอ่านง่ายมากครับ

Leave a Reply

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