Thep Excel

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

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

=Text.Lower(text as nullable text, optional culture as nullable text) as nullable text

By ThepExcel AI Agent
3 December 2025

Function Metrics


Popularity
8/10

Difficulty
2/10

Usefulness
8/10

Syntax & Arguments

=Text.Lower(text as nullable text, optional culture as nullable text) as nullable text

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

How it works

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

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

สร้าง Standard Data Format

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

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

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

Examples

แปลงข้อความเป็นตัวพิมพ์เล็กทั่วไป
Text.Lower("HELLO WORLD")
แปลงตัวอักษรทั้งหมดจากตัวพิมพ์ใหญ่เป็นตัวพิมพ์เล็ก โปรดทราบว่าช่องว่างและตัวเลขไม่เปลี่ยนแปลง
Power Query Formula:

= Text.Lower("HELLO WORLD")

Result:

hello world

จัดการข้อความผสมตัวพิมพ์เล็ก-ใหญ่
Text.Lower("ApPLe PiE 123")
ไม่ว่าต้นฉบับจะเป็นตัวพิมพ์เล็กหรือใหญ่ Text.Lower จะแปลงทั้งหมดเป็นตัวพิมพ์เล็ก ตัวเลขและช่องว่างยังคงเดิม
Power Query Formula:

= Text.Lower("ApPLe PiE 123")

Result:

apple pie 123

ใช้กับข้อมูลจากคอลัมน์ในตาราง
let Products = Table.FromRows( {{"iPhone", 1200}, {"SAMSUNG", 900}, {"Sony", 800}}, {"Brand", "Price"} ), LowerBrand = Table.AddColumn(Products, "LowerBrand", e…
ส่วนตัวผมใช้แบบนี้บ่อยมากเวลาต้องทำความสะอาดข้อมูลจาก multiple sources ที่เขียนแบบไม่เหมือนกัน 😎 Table.AddColumn จะสร้างคอลัมน์ใหม่ โดยใช้ each เพื่ออ้างอิงค่าในแต่ละแถว
Power Query Formula:

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

Result:

Table with 3 rows: {"iphone", "samsung", "sony"}

ตรวจสอบความเหมือนของอีเมลแบบไม่สนใจตัวพิมพ์
let Email1 = "John.Doe@example.com", Email2 = "JOHN.DOE@EXAMPLE.COM", AreEqual = Text.Lower(Email1) = Text.Lower(Email2) in AreEqual
ที่ต้องระวังคือ Email Address นั้นมักมีความเหมือนแบบ case-insensitive ดังนั้นการแปลงเป็น lowercase ก่อนเปรียบเทียบจึงเป็นวิธีที่ดีที่สุดครับ เรียกได้ว่าเป็นเคล็ดลับการจับคู่ข้อมูลที่ผมใช้เสมอ
Power Query Formula:

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

Result:

true

ใช้กับ Culture ที่แตกต่างกัน
let Turkish = "İstanbul", DefaultLower = Text.Lower(Turkish), TurkishLower = Text.Lower(Turkish, "tr-TR") in {DefaultLower, TurkishLower}
ในภาษาตุรกี ตัวอักษร "İ" (I with dot) มีการแปลงแตกต่างจากภาษาอังกฤษ เมื่อใช้ Culture "tr-TR" จะได้ผลลัพธ์ที่ถูกต้องตามกฎของภาษานั้นๆ นี่คือเหตุผลที่ culture parameter มีความสำคัญมากครับ
Power Query Formula:

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

Result:

{"i̇stanbul", "istanbul"}

FAQs

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

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

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

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

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

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

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

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

Resources & Related

Additional Notes

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

ที่เจ๋งคือ Text.Lower ช่วยให้เราสามารถทำการเปรียบเทียบข้อมูลแบบไม่สนใจตัวพิมพ์เล็ก/ใหญ่ (case-insensitive comparison) ได้ง่ายมาก เหมาะมากเวลาต้องจับคู่ข้อมูลจาก 2 source ที่เขียนแบบไม่เหมือนกัน

ส่วนตัวผมใช้ Text.Lower คู่กับ Table.SelectRows บ่อยมากครับ เพื่อทำให้การกรองข้อมูลนั้นไม่ไวต่อขนาดตัวอักษร ซึ่งช่วยให้เหลือความผิดพลาดที่เกิดจากตัวอักษรตัวใหญ่/เล็ก 😎

Leave a Reply

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