Thep Excel

DAX · Text

LOWERแปลงเป็นตัวพิมพ์เล็ก

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

fx
=LOWER(<Text>)

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

อัปเดต 13 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
Text text ข้อความหรือการอ้างอิงชุดข้อมูลของคอลัมน์ที่ต้องการแปลงเป็นตัวพิมพ์เล็ก

Additional Notes

LOWER คือฟังก์ชันข้อความที่แปลงตัวอักษรในสตริงให้เป็นตัวพิมพ์เล็กทั้งหมด ส่วนตัวเลขและอักขระพิเศษจะคงอยู่เหมือนเดิม เจ๋งของ LOWER คือมันอย่างง่ายแต่ช่วยแก้ปัญหาใหญ่ ลองนึกดูว่าคุณมีข้อมูลเมล “User@ThepExcel.COM” “user@thepexcel.com” “USER@THEPEXCEL.COM” ถ้าไม่ใช้ LOWER ระบบจะมองเป็นต่างคน แต่พอใช้ LOWER ทั้งหมดจะเป็นเหมือนอย่างเดียวและการ MATCH ก็ได้ผลถูกต้อง อีกอย่างที่ผมชอบในการใช้ LOWER คือรวมกับ TRIM เพื่อแก้ปัญหาข้อมูลในโลกจริง เพราะข้อมูลจากระบบต่างๆ มักจะมีช่องว่างเกินและรูปแบบตัวพิมพ์บ้านปลาย ใช้ LOWER(TRIM(Data[Field])) ไปเลยสะดวก

How it works

ทำให้คีย์/อีเมลเป็นมาตรฐาน

ช่วยให้การจัดกลุ่ม/เทียบค่าไม่สะดุดจากความต่างของเคส

Examples

ตัวอย่างที่ 1: แปลงอีเมลเป็นตัวพิมพ์เล็กEmailNormalized = LOWER(Users[Email])

ทำให้อีเมลทั้งหมดมีรูปแบบเดียวกัน ช่วยให้การตรวจสอบอีเมลซ้ำหรือการ JOIN ข้อมูลแม่นยำขึ้น

fx
EmailNormalized = LOWER(Users[Email])

ผลลัพธ์"Admin@Company.COM" → "admin@company.com"
ตัวอย่างที่ 2: ทำความสะอาดข้อมูลร่วมกับ TRIMKeyNormalized = LOWER(TRIM(Products[Code]))

ตัดช่องว่างหัวท้ายและแปลงเป็นตัวพิมพ์เล็ก เหมาะกับข้อมูลที่นำเข้ามาจากไฟล์ CSV หรือระบบเก่าๆ ที่รูปแบบไม่บริสุทธิ์

fx
KeyNormalized = LOWER(TRIM(Products[Code]))

ผลลัพธ์" ABC123 " → "abc123"
ตัวอย่างที่ 3: ใช้ใน Calculated Column เพื่อเปรียบเทียบค่าVAR OriginalValue = Orders[CustomerName] NormalizedValue = LOWER(OriginalValue) RETURN NormalizedValue

ทำให้ข้อมูลสม่ำเสมอตั้งแต่ต้น ช่วยให้การ GROUPBY และการ LOOKUPVALUE ทำงานได้อย่างถูกต้อง โดยไม่เสียเวลามาจัดการกับปัญหาคีย์ไม่ตรงกัน

fx
VAR
OriginalValue = Orders[CustomerName]
NormalizedValue = LOWER(OriginalValue)
RETURN
NormalizedValue

ผลลัพธ์"John Smith" → "john smith"
ตัวอย่างที่ 4: ใช้ใน Measure เพื่อตรวจค้นหาMatchingCount = COUNTROWS( FILTER( Products, LOWER(Products[Category]) = "electronics" ) )

หลีกเลี่ยงปัญหาที่ผู้ใช้ส่วนประกวดคิวรีด้วยตัวพิมพ์ต่างกัน ใช้เวลาคิดหาผลลัพธ์เดียวกัน ความเป็นตรงไปตรงมา

fx
MatchingCount = COUNTROWS(
FILTER(
Products,
LOWER(Products[Category]) = "electronics"
)
)

ผลลัพธ์นับจำนวนสินค้าในหมวด "electronics" ไม่ว่าจะเขียน "Electronics" หรือ "ELECTRONICS"

FAQs

LOWER มีผลกับตัวเลขและอักขระพิเศษไหม?+

ไม่มีผล LOWER เปลี่ยนแต่ตัวอักษรโรมัน (A-Z) เป็นตัวเล็ก ส่วนตัวเลข (0-9) และอักขระพิเศษเช่น @, #, -, _ จะคงเดิมเสมอ ตัวอย่าง: LOWER("Test123@ABC") ได้ผล "test123@abc"

LOWER กับ UPPER ต่างกันอย่างไร?+

LOWER แปลงตัวอักษรทั้งหมดเป็นตัวเล็ก UPPER แปลงตัวอักษรทั้งหมดเป็นตัวใหญ่ ส่วน PROPER แปลงตัวอักษรตัวแรกของแต่ละคำให้เป็นตัวใหญ่ เลือกใช้ตามความต้องการ บ่อยครั้งที่ผมใช้ LOWER มากกว่า UPPER เพราะฉันใช้เป็นมาตรฐาน lowercase ใน database ส่วนใหญ่

ใช้ LOWER ใน Calculated Column หรือ Measure ดีกว่า?+

ถ้ากำลังตั้งค่าข้อมูลเพื่อทำความสะอาด (normalization) ควรใช้ Calculated Column เพื่อให้ข้อมูลมีรูปแบบสม่ำเสมอตั้งแต่เก็บในโมเดล ถ้าต้องการเปรียบเทียบหรือกรองตามสิ่งที่ผู้ใช้กำหนด ใช้ใน Measure ก็ได้ แต่โดยทั่วไป ผมแนะนำให้ทำความสะอาดตั้งแต่ Calculated Column ช่วยประสิทธิภาพ query แล้วก็ logic ของ Measure จะง่ายขึ้น

LOWER รองรับ Unicode และภาษาอื่นๆ ไหม?+

ใช่ LOWER รองรับภาษาต่างๆ รวมถึงภาษาไทย ตัวอักษรไทยจะถูกแปลงตามกฎของภาษาที่ระบบตั้งไว้ แต่บ่อยครั้งที่ภาษาไทยไม่มีความแตกต่างระหว่างตัวใหญ่และตัวเล็กเหมือนภาษาอังกฤษ ดังนั้นการใช้ LOWER กับข้อมูลไทยมักเป็นเพื่อความเป็นมาตรฐานตามธรรมชาติของระบบมากกว่า

Resources & Related

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

ฟังก์ชันนี้LOWERText
Text (11)
CONCATENATE

CONCATENATE ต่อข้อความ 2 ค่าให้เป็นสตริงเดียว เหมาะกับการทำ label หรือรวมข้อความจาก 2 แหล่งในบริบทปัจจุบัน

EXACT

EXACT เปรียบเทียบ Text1 กับ Text2 แบบตรงตัวและคำนึงถึงตัวพิมพ์เล็ก/ใหญ่ คืน TRUE เมื่อเหมือนกันทุกตัวอักษร เหมาะกับงานตรวจรหัส/ข้อความที่ต้องแยก case

FIND

FIND คืนค่าตำแหน่งเริ่มต้นของ FindText ภายใน WithinText (เริ่มนับที่ 1) โดยค้นหาแบบแยกตัวพิมพ์ใหญ่/เล็ก และสามารถระบุ StartNum/NotFoundValue เพื่อควบคุมจุดเริ่มค้นหาและผลลัพธ์เมื่อไม่พบได้

LEFT

LEFT คืนค่าตัวอักษรจำนวนหนึ่งจากจุดเริ่มต้นของข้อความ ใช้ได้กับ Calculated Column โดยจะประมวลผลภาษาต่างๆ (Unicode) อย่างเดียวกัน

LEN (DAX)

LEN นับจำนวนอักขระของสตริง รวมช่องว่างด้วย ใช้สำหรับตรวจสอบความยาวข้อมูล การทำความสะอาด และงานเงื่อนไขตามความยาวข้อความ

MID

MID คืนสตริงย่อยจากข้อความ โดยเริ่มที่ StartNum (เริ่มนับที่ 1) และดึง NumChars ตัว ใช้บ่อยในการแยก/ตัดข้อความร่วมกับ LEFT/RIGHT/FIND/SEARCH

RIGHT

RIGHT คืนค่าตัวอักษรจำนวนหนึ่งจากจุดสิ้นสุดของข้อความ (ด้านขวา) ตามจำนวนที่ระบุ

SEARCH

SEARCH คืนค่าตำแหน่งเริ่มต้นของข้อความที่ค้นหา (ค้นหาแบบไม่สนตัวพิมพ์) หากไม่พบจะเกิดข้อผิดพลาด สามารถใช้กับ IFERROR หรือ COALESCE เพื่อจัดการกรณีไม่พบ

SUBSTITUTE

SUBSTITUTE ค้นหาและแทนที่ข้อความในสตริง สามารถแทนที่ทุกครั้งหรือเพียงครั้งที่ n เหมาะกับการปรับรูปแบบและทำความสะอาดข้อมูลโดยตรวจสอบเนื้อหา ไม่ใช่ตำแหน่ง

TRIM

ฟังก์ชันทำความสะอาดข้อความ ลบช่องว่างส่วนเกินนำหน้า ท้าย และช่องว่างหลายตัวระหว่างคำ โดยคงไว้ช่องว่างเดี่ยวระหว่างคำเท่านั้น

UPPER

UPPER แปลงข้อความให้เป็นตัวพิมพ์ใหญ่ทั้งหมด ใช้บ่อยเพื่อปรับปรุงคุณภาพข้อมูลและทำให้การเปรียบเทียบข้อความแม่นยำ

Comments

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