---
title: Text.Lower – แปลงข้อความเป็นตัวพิมพ์เล็ก
url: https://www.thepexcel.com/functions/power-query/text-functions/text-lower/
type: function-explainer
program: Power Query
syntax: "Text.Lower(text as nullable text, optional culture as nullable text) as nullable text"
date: 2025-12-03
updated: 2025-12-22
scores:
  popularity: 8
  difficulty: 2
  usefulness: 8
---

# Text.Lower – แปลงข้อความเป็นตัวพิมพ์เล็ก

> Text.Lower ใช้แปลงอักขระทั้งหมดในข้อความให้เป็นตัวพิมพ์เล็ก (lowercase) ช่วยให้ข้อมูลมีรูปแบบสอดคล้อ

## คำอธิบาย

Text.Lower ใช้แปลงอักขระทั้งหมดในข้อความให้เป็นตัวพิมพ์เล็ก (lowercase) ช่วยให้ข้อมูลมีรูปแบบสอดคล้องกัน สามารถกำหนด Culture เพื่อให้การแปลงเป็นไปตามกฎของภาษาและภูมิภาคที่ต้องการ

## Syntax

```excel
Text.Lower(text as nullable text, optional culture as nullable text) as nullable text
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| text | Yes | text |  | ข้อความที่ต้องการแปลงเป็นตัวพิมพ์เล็ก |
| culture | No | text | null | รหัสวัฒนธรรม (เช่น "en-US", "th-TH", "tr-TR") เพื่อให้การแปลงเป็นไปตามกฎของภาษานั้นๆ หากไม่ระบุจะใช้ Culture เริ่มต้นของระบบ |

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

### รวมข้อมูลจากหลายแหล่ง

แปลงชื่อสินค้า หรือรหัสสินค้าให้เป็นตัวพิมพ์เล็กทั้งหมดเพื่อหลีกเลี่ยงปัญหาการจับคู่ข้อมูลที่แตกต่างกันด้วยตัวพิมพ์เล็ก/ใหญ่

### สร้าง Standard Data Format

กำหนดให้ข้อมูลในบางคอลัมน์ต้องเป็นตัวพิมพ์เล็กเสมอ เช่น ชื่อคีย์เวิร์ด

### เตรียมข้อมูลสำหรับการเปรียบเทียบ

ใช้แปลงข้อความเป็นตัวพิมพ์เล็กทั้งหมดก่อนนำไปเปรียบเทียบ เพื่อให้ไม่สนใจความแตกต่างของ Case Sensitive

## ตัวอย่าง

### 1. แปลงข้อความเป็นตัวพิมพ์เล็กทั่วไป

```excel
= Text.Lower("HELLO WORLD")
```

**ผลลัพธ์:** `hello world`

แปลงตัวอักษรทั้งหมดจากตัวพิมพ์ใหญ่เป็นตัวพิมพ์เล็ก โปรดทราบว่าช่องว่างและตัวเลขไม่เปลี่ยนแปลง

### 2. จัดการข้อความผสมตัวพิมพ์เล็ก-ใหญ่

```excel
= Text.Lower("ApPLe PiE 123")
```

**ผลลัพธ์:** `apple pie 123`

ไม่ว่าต้นฉบับจะเป็นตัวพิมพ์เล็กหรือใหญ่ Text.Lower จะแปลงทั้งหมดเป็นตัวพิมพ์เล็ก ตัวเลขและช่องว่างยังคงเดิม

### 3. ใช้กับข้อมูลจากคอลัมน์ในตาราง

```excel
let
    Products = Table.FromRows(
        {{"iPhone", 1200}, {"SAMSUNG", 900}, {"Sony", 800}},
        {"Brand", "Price"}
    ),
    LowerBrand = Table.AddColumn(Products, "LowerBrand", each Text.Lower([Brand]))
in
    LowerBrand
```

**ผลลัพธ์:** `Table with 3 rows: {"iphone", "samsung", "sony"}`

ส่วนตัวผมใช้แบบนี้บ่อยมากเวลาต้องทำความสะอาดข้อมูลจาก multiple sources ที่เขียนแบบไม่เหมือนกัน 😎 Table.AddColumn จะสร้างคอลัมน์ใหม่ โดยใช้ each เพื่ออ้างอิงค่าในแต่ละแถว

### 4. ตรวจสอบความเหมือนของอีเมลแบบไม่สนใจตัวพิมพ์

```excel
let
    Email1 = "John.Doe@example.com",
    Email2 = "JOHN.DOE@EXAMPLE.COM",
    AreEqual = Text.Lower(Email1) = Text.Lower(Email2)
in
    AreEqual
```

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

ที่ต้องระวังคือ Email Address นั้นมักมีความเหมือนแบบ case-insensitive ดังนั้นการแปลงเป็น lowercase ก่อนเปรียบเทียบจึงเป็นวิธีที่ดีที่สุดครับ เรียกได้ว่าเป็นเคล็ดลับการจับคู่ข้อมูลที่ผมใช้เสมอ

### 5. ใช้กับ Culture ที่แตกต่างกัน

```excel
let
    Turkish = "İstanbul",
    DefaultLower = Text.Lower(Turkish),
    TurkishLower = Text.Lower(Turkish, "tr-TR")
in
    {DefaultLower, TurkishLower}
```

**ผลลัพธ์:** `{"i̇stanbul", "istanbul"}`

ในภาษาตุรกี ตัวอักษร "İ" (I with dot) มีการแปลงแตกต่างจากภาษาอังกฤษ เมื่อใช้ Culture "tr-TR" จะได้ผลลัพธ์ที่ถูกต้องตามกฎของภาษานั้นๆ นี่คือเหตุผลที่ culture parameter มีความสำคัญมากครับ

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

- ใช้ Text.Lower ก่อนการเปรียบเทียบ (comparison) เพื่อให้ได้ผลลัพธ์ที่ไม่ไวต่อตัวพิมพ์เล็ก/ใหญ่

- รวมกับ Text.Trim เพื่อทำความสะอาดข้อมูลอย่างสมบูรณ์ เช่น Text.Lower(Text.Trim([Column]))

- เมื่อจับคู่อีเมล (Email Matching) ให้แปลงเป็น lowercase เสมอ เพราะ email addresses เป็น case-insensitive

- ใช้ culture parameter เมื่อต้องจัดการข้อมูลหลายภาษา โดยเฉพาะภาษาที่มี special rules เช่นตุรกี

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

**Q: Text.Lower กับ Excel LOWER() ต่างกันอย่างไร?**

หลักการทำงานเหมือนกัน แต่ Text.Lower ใช้ใน Power Query M Language ส่วน LOWER() ใช้ใน Excel Worksheet Function นอกจากนี้ Text.Lower ยังรองรับ culture parameter เพิ่มเติมอีก

**Q: ถ้าส่ง null เข้าไปจะเกิดอะไรขึ้น?**

ได้ null กลับมาครับ Text.Lower รองรับ nullable text ดังนั้นหากข้อมูลเป็น null จะคืนค่า null โดยไม่เกิด error

**Q: ใช้ Text.Lower กับตัวเลขหรือตัวอักษรพิเศษได้ไหม?**

ได้ครับ Text.Lower จะแปลงเฉพาะตัวอักษร (a-z, A-Z) ส่วนตัวเลขและ special characters จะคงเดิม ไม่เปลี่ยนแปลง

**Q: ไป culture parameter ไม่ใส่จะเกิดอะไรขึ้น?**

จะใช้ Culture เริ่มต้นของระบบแทนครับ โดยทั่วไปจะเป็น "en-US" ถ้าต้องการการแปลงตามกฎของภาษาอื่น ให้ระบุ culture code อย่างชัดเจนเสมอ

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

- [Text.Upper – แปลงข้อความเป็นตัวอักษรใหญ่](https://www.thepexcel.com/functions/power-query/text-functions/text-upper/)
- [Text.Proper – แปลงเป็นตัวพิมพ์ใหญ่ต้นคำ](https://www.thepexcel.com/functions/power-query/text-functions/text-proper/)
- [Text.Trim – ตัดอักขระนำหน้าและลงท้าย](https://www.thepexcel.com/functions/power-query/text-functions/text-trim/)
- [Text.Replace – แทนที่ข้อความใน Power Query](https://www.thepexcel.com/functions/power-query/text-functions/text-replace/)

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

- [Microsoft Learn: Text.Lower](https://learn.microsoft.com/en-us/powerquery-m/text-lower) _(official)_
- [PowerQuery.how: Text Functions](https://powerquery.how/) _(article)_

---

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