---
title: List.Contains – ตรวจสอบว่า List มีสมาชิกที่กำหนดหรือไม่
url: https://www.thepexcel.com/functions/power-query/list-functions/list-contains/
type: function-explainer
program: Power Query
syntax: "List.Contains(list as list, value as any, optional comparer as nullable function) as logical"
date: 2025-12-03
updated: 2025-12-23
scores:
  popularity: 7
  difficulty: 3
  usefulness: 7
---

# List.Contains – ตรวจสอบว่า List มีสมาชิกที่กำหนดหรือไม่

> List.Contains จะคืนค่า true หาก value ที่กำหนดเป็นสมาชิกของ List และคืนค่า false หากไม่พบ สามารถระบุ

## คำอธิบาย

List.Contains จะคืนค่า true หาก value ที่กำหนดเป็นสมาชิกของ List และคืนค่า false หากไม่พบ สามารถระบุ Comparer เพื่อกำหนดว่าจะให้ตรวจสอบแบบ Case Sensitive หรือ Case Insensitive ได้

## Syntax

```excel
List.Contains(list as list, value as any, optional comparer as nullable function) as logical
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| list | Yes | list |  | List ที่ต้องการค้นหา |
| value | Yes | any |  | ค่าที่ต้องการค้นหาใน List |
| comparer | No | function | Comparer.Ordinal | ฟังก์ชัน Comparer สำหรับกำหนดวิธีการเปรียบเทียบ |

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

### ตรวจสอบสิทธิ์การเข้าถึง

เช็คว่าชื่อผู้ใช้อยู่ใน List ของผู้ดูแลระบบหรือไม่

### กรองข้อมูลตามรายการ

ใช้เพื่อกรองข้อมูลในตาราง ให้เหลือเฉพาะรายการที่อยู่ใน List ของค่าที่ยอมรับ

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: ตรวจสอบว่ามีสมาชิก

```excel
List.Contains({"apple", "banana", "cherry"}, "banana")
```

**ผลลัพธ์:** `true`

List มีคำว่า "banana" อยู่ จึงคืนค่า true

### 2. ตัวอย่างที่ 2: ตรวจสอบว่าไม่มีสมาชิก

```excel
List.Contains({"apple", "banana"}, "orange")
```

**ผลลัพธ์:** `false`

List ไม่มีคำว่า "orange" อยู่ จึงคืนค่า false

### 3. ตัวอย่างที่ 3: ไม่สนใจตัวพิมพ์เล็ก/ใหญ่

```excel
List.Contains({"Apple", "Banana"}, "apple", Comparer.OrdinalIgnoreCase)
```

**ผลลัพธ์:** `true`

ใช้ Comparer.OrdinalIgnoreCase เพื่อไม่สนใจ Case Sensitive ทำให้ "apple" และ "Apple" ถูกมองว่าเหมือนกัน

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

```excel
let
    Numbers = {10, 20, 30, 40, 50},
    Check = List.Contains(Numbers, 30)
in
    Check
```

**ผลลัพธ์:** `true`

List.Contains ทำงานได้กับตัวเลขเช่นกัน มันเปรียบเทียบค่าตัวเลขแล้วคืนค่า true หากพบค่า 30 ใน List

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

- ใช้ List.Contains กับ Table.AddColumn เมื่อต้องการเพิ่มคอลัมน์ที่เช็คว่าค่าอยู่ใน List หรือไม่ ครับ

- ถ้าต้องการค้นหาแบบ Case Insensitive ให้ใช้ Comparer.OrdinalIgnoreCase เสมอนะ มันช่วยเวลาทำงานกับข้อมูลจากหลายแหล่งที่อาจมี Case ต่างกัน

- ส่วนตัวผมมักใช้ List.Contains ร่วมกับ Table.SelectRows เพื่อกรองข้อมูลตามค่าที่อยู่ใน List ที่สร้างไว้ล่วงหน้า 😎

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

**Q: List.Contains ต่างจาก List.FindText อย่างไร?**

List.Contains ตรวจสอบว่ามีสมาชิกที่ 'ตรงกันเป๊ะ' หรือไม่ ส่วน List.FindText ตรวจสอบว่ามีสมาชิกที่ 'มีข้อความย่อย' ที่กำหนดอยู่หรือไม่ เจอบ่อยครั้งที่คนสับสนครับ 😅

**Q: ทำไมถึงคืนค่า false ทั้งๆ ที่ค่าดูเหมือนอยู่ใน List?**

ปัญหานี้เกิดจาก Data Type ไม่ตรงกันบ่อยครั้งครับ เช่น ค้นหา 30 (Number) แต่ List มี "30" (Text) ลองใช้ Comparer.Ordinal หรือแปลง Data Type ให้เหมือนกันก่อนนะ

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

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

---

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