Thep Excel

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

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

fx
=Text.Lower(text, [culture]) as nullable text

ความนิยม8/10
ความยาก2/10
ประโยชน์8/10

อัปเดต 3 December 2025

Syntax & Arguments

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

[ ] = อาร์กิวเมนต์ที่ไม่บังคับ

Additional Notes

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

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

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

How it works

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

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

สร้าง Standard Data Format

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

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

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

Examples

แปลงข้อความเป็นตัวพิมพ์เล็กทั่วไปText.Lower("HELLO WORLD")

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

fx
= Text.Lower("HELLO WORLD")

ผลลัพธ์hello world
จัดการข้อความผสมตัวพิมพ์เล็ก-ใหญ่Text.Lower("ApPLe PiE 123")

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

fx
= Text.Lower("ApPLe PiE 123")

ผลลัพธ์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 เพื่ออ้างอิงค่าในแต่ละแถว

fx
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"}
ตรวจสอบความเหมือนของอีเมลแบบไม่สนใจตัวพิมพ์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 ก่อนเปรียบเทียบจึงเป็นวิธีที่ดีที่สุดครับ เรียกได้ว่าเป็นเคล็ดลับการจับคู่ข้อมูลที่ผมใช้เสมอ

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

ผลลัพธ์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 มีความสำคัญมากครับ

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

ผลลัพธ์{"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

ฟังก์ชันที่ผู้เขียนโยงไว้กับ Text.Lower จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง

ฟังก์ชันนี้Text.LowerText functions
Text functions (6)
Text.Contains

Text.Contains ใช้สำหรับตรวจสอบว่าข้อความที่กำหนด (text) มีข้อความย่อยที่ต้องการค้นหา (substring) อยู่ภายในหรือไม่ ส่งคืนค่า true หรือ false

Text.Proper

แปลงอักษรตัวแรกของทุกคำเป็นตัวพิมพ์ใหญ่ (Title Case) และส่วนที่เหลือเป็นตัวพิมพ์เล็ก

Text.Replace

Text.Replace ใช้สำหรับแทนที่ทุกส่วนของข้อความเก่าในข้อความหลักด้วยข้อความใหม่ เป็น Case Sensitive และแทนที่ทีละครั้งที่เจอในข้อความทั้งหมด

Text.Reverse

กลับด้านข้อความ (Reverse String)

Text.Trim

Text.Trim ลบอักขระที่ระบุออกจากต้นและท้ายของข้อความ ค่าเริ่มต้นจะลบแค่ช่องว่าง

Text.Upper

Text.Upper แปลงอักขระทั้งหมดในข้อความเป็นตัวอักษรใหญ่ โดยรองรับการตั้งค่า culture ต่างๆ เพื่อจัดการการแปลงที่ถูกต้องตามภาษา

Date functions (1)
Date.DayOfWeekName

Date.DayOfWeekName คืนค่าชื่อวันในสัปดาห์เป็นข้อความ เหมาะสำหรับแสดงวันจากวันที่ในรูปแบบ Monday, Tuesday เป็นต้น สามารถกำหนด culture เพื่อแปลชื่อวันเป็นภาษาต่างๆ ได้

Record functions (1)
Record.TransformFields

Record.TransformFields แปลงค่าในฟิลด์ที่ระบุของเรคอร์ดโดยใช้ฟังก์ชันแปลงค่า สามารถแปลงฟิลด์เดียวหรือหลายฟิลด์พร้อมกันได้ เหมาะสำหรับการทำความสะอาดข้อมูลและการแปลงประเภทข้อมูล

Table functions (1)
Table.TransformColumnNames

Table.TransformColumnNames ใช้ฟังก์ชันแปลงชื่อ (Name Generator) เพื่อเปลี่ยนชื่อคอลัมน์ทั้งหมดในตาราง เหมาะสำหรับจัดรูปแบบชื่อคอลัมน์เป็นแบบเดียวกัน เช่น ตัวพิมพ์ใหญ่ ลบช่องว่าง หรือเพิ่ม Prefix

Comments

อีเมลของคุณจะไม่ถูกเผยแพร่