---
title: List.Select – เลือกสมาชิกจาก List ตามเงื่อนไข
url: https://www.thepexcel.com/functions/power-query/list-functions/list-select/
type: function-explainer
program: Power Query
syntax: "List.Select(list as list, selection as function) as list"
date: 2025-12-03
updated: 2025-12-23
scores:
  popularity: 6
  difficulty: 4
  usefulness: 7
---

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

> List.Select จะรับ List และฟังก์ชันเงื่อนไข (selection as function) โดยจะประเมินฟังก์ชันเงื่อนไขกับสม

## คำอธิบาย

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

## Syntax

```excel
List.Select(list as list, selection as function) as list
```

## Arguments

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

## เคสการใช้งาน

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

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

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

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

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: กรองตัวเลขบวกจาก List

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

**ผลลัพธ์:** `{1, 4, 9}`

กรองเฉพาะตัวเลขที่มากกว่า 0 จากลิสต์ _ หมายถึงสมาชิกปัจจุบันในลิสต์

### 2. ตัวอย่างที่ 2: กรองข้อความที่ขึ้นต้นด้วย 'A'

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

**ผลลัพธ์:** `{"Apple", "Apricot"}`

เลือกสมาชิกข้อความที่ขึ้นต้นด้วยตัว 'A' โดยใช้ Text.StartsWith

### 3. ตัวอย่างที่ 3: กรองวันหยุดสุดสัปดาห์

```excel
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
```

**ผลลัพธ์:** `{#date(2025, 12, 20), #date(2025, 12, 21), #date(2025, 12, 27)}`

กรองวันหยุดสุดสัปดาห์โดยใช้ Date.DayOfWeek ตรวจสอบว่าวันนั้นตรงกับ Saturday (5) หรือ Sunday (6)

### 4. ตัวอย่างที่ 4: กรอง Records ตามหลายเงื่อนไข

```excel
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
```

**ผลลัพธ์:** `{
  [Name = "Alice", Status = "Active", Purchases = 150],
  [Name = "Dave", Status = "Active", Purchases = 120]
}`

กรอง Records ที่ Status = 'Active' และ Purchases > 100 โดยรวมหลายเงื่อนไขด้วย 'and'

## หมายเหตุเพิ่มเติม

- ใช้ each keyword ทำให้ code สั้นลง แทนการเขียน (x) => x > 0

- สำหรับ Records ใช้ [FieldName] เพื่ออ้างอิงค่าใน Record นั้น เช่น each [Status] = "Active"

- รวม List.Select หลายครั้งสำหรับการกรองแบบ cascade: List.Select(List.Select(data, each1), each2)

- ใช้ Number.Mod, Text.StartsWith, Text.Contains สำหรับเงื่อนไขที่ซับซ้อน

- สำหรับ Date filtering ใช้ Date.DayOfWeek, Date.Month, Date.Year เพื่อกรองตามวันในสัปดาห์ เดือน หรือปี

## คำถามที่พบบ่อย

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

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

## แหล่งข้อมูลเพิ่มเติม

- [Microsoft Learn: List.Select](https://learn.microsoft.com/en-us/powerquery-m/list-select) _(official)_
- [PowerQuery.how](https://powerquery.how/list-select/) _(article)_

---

_Source: [https://www.thepexcel.com/functions/power-query/list-functions/list-select/](https://www.thepexcel.com/functions/power-query/list-functions/list-select/)_
