---
title: Comparer.Ordinal – เปรียบเทียบแบบไบนารี
url: https://www.thepexcel.com/functions/power-query/comparer-functions/comparer-ordinal/
type: function-explainer
program: Power Query
syntax: "Comparer.Ordinal(x as any, y as any) as number"
date: 2025-12-04
updated: 2025-12-17
scores:
  popularity: 5
  difficulty: 3
  usefulness: 5
---

# Comparer.Ordinal – เปรียบเทียบแบบไบนารี

> ตัวเปรียบเทียบแบบไบนารี (สนใจตัวพิมพ์เล็ก/ใหญ่)

## คำอธิบาย

Comparer.Ordinal สร้างตัวเปรียบเทียบที่สนใจตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ดังนั้น "A" ไม่เท่ากับ "a" ใช้เป็น Argument ในฟังก์ชันต่างๆ ที่มีการเปรียบเทียบหรือค้นหา

## Syntax

```excel
Comparer.Ordinal(x as any, y as any) as number
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| x | Yes | any |  | ค่าแรกที่ต้องการเปรียบเทียบ |
| y | Yes | any |  | ค่าที่สองที่ต้องการเปรียบเทียบ |

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

### ค้นหาข้อความแบบ Case Sensitive

ใช้กับ List.Contains หรือ Text.Contains เพื่อให้ค้นหาค่าว่าตรงกับตัวพิมพ์เท่านั้น

### ลบค่าซ้ำแบบ Case Sensitive

ใช้กับ Table.Distinct หรือ List.Distinct เพื่อให้ "Apple" กับ "apple" ถูกมองว่าเป็นค่าต่างกัน

### จัดเรียงข้อมูลแบบ Case Sensitive

ใช้กับ List.Sort หรือ Table.Sort เพื่อให้ตัวพิมพ์ใหญ่อยู่หน้าตัวพิมพ์เล็ก

## ตัวอย่าง

### 1. ตัวอย่างที่ 1: ใช้กับ List.Contains

```excel
List.Contains({"A", "B"}, "a", Comparer.Ordinal)
```

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

ค้นหา "a" ใน List {"A", "B"} โดยสนใจตัวพิมพ์ ดังนั้นไม่เจอ (เนื่องจาก "A" ไม่เท่ากับ "a")

### 2. ตัวอย่างที่ 2: ใช้กับ Text.Contains

```excel
Text.Contains("Hello", "hello", Comparer.Ordinal)
```

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

ตรวจสอบว่า "Hello" มีคำว่า "hello" หรือไม่ (สนใจตัวพิมพ์) ผลคือ false

### 3. ตัวอย่างที่ 3: ใช้เปรียบเทียบโดยตรง

```excel
Comparer.Ordinal("A", "a")
```

**ผลลัพธ์:** `-1`

"A" ไม่เท่ากับ "a" (เนื่องจากสนใจตัวพิมพ์) คืนค่า -1 หมายถึง "A" < "a"

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

**Q: Comparer.Ordinal ต่างจาก Comparer.OrdinalIgnoreCase อย่างไร?**

Comparer.Ordinal สนใจตัวพิมพ์เล็ก/ใหญ่ (Case Sensitive) ดังนั้น "A" ไม่เท่ากับ "a" ส่วน Comparer.OrdinalIgnoreCase ไม่สนใจ (Case Insensitive)

**Q: การคืนค่าของ Comparer.Ordinal คืออะไร?**

Comparer.Ordinal คืนค่าเป็นตัวเลข: 0 หากค่าเท่ากัน, -1 หากค่าแรก < ค่าที่สอง, 1 หากค่าแรก > ค่าที่สอง

**Q: ใช้ Comparer.Ordinal เมื่อไหร่?**

ใช้ Comparer.Ordinal เมื่อต้องการให้การเปรียบเทียบสนใจตัวพิมพ์เล็กและใหญ่ เช่นการค้นหารหัสที่ต้องแยกความเป็นสัญญาณจำเพาะ (case-sensitive)

## ฟังก์ชันที่เกี่ยวข้อง

- [Comparer.OrdinalIgnoreCase – เปรียบเทียบข้อความแบบไม่สนใจตัวพิมพ์](https://www.thepexcel.com/functions/power-query/comparer-functions/comparer-ordinalignorecase/)
- [Comparer.Equals – เปรียบเทียบค่าความเท่ากัน](https://www.thepexcel.com/functions/power-query/comparer-functions/comparer-equals/)
- [Comparer.FromCulture – สร้าง Comparer จากวัฒนธรรม](https://www.thepexcel.com/functions/power-query/comparer-functions/comparer-fromculture/)

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

- [Microsoft Learn: Comparer.Ordinal](https://learn.microsoft.com/en-us/powerquery-m/comparer-ordinal) _(Official Documentation)_
- [PowerQuery.how](https://powerquery.how/comparer-ordinal/) _(guide)_

---

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