| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| Text | string | สตริงข้อความที่ต้องการนับจำนวนอักขระ สามารถเป็นค่าคงที่ คอลัมน์ หรือนิพจน์ที่คืนข้อความ |
LEN คืนจำนวนอักขระทั้งหมดในข้อความ (รวมช่องว่าง) เป็นจำนวนเต็ม
ฟังก์ชันนี้เป็นสตริงง่ายๆ ที่ใช้ได้ทั้ง Calculated Column (row context) และ Measure ส่วนตัวผมใช้ LEN บ่อย เวลาต้องตรวจสอบว่า ID มีความยาวถูกต้อง หรือค่าว่างไหม หลังจาก TRIM ข้อมูล
จุดเจ๋งของ LEN คือมัน handle Unicode ได้อัตโนมัติ สตริงไทย สตริงโรมัน นับเหมือนกัน (1 อักขระ = 1) ต่างจาก Excel สมัยโบราณที่มี LEN กับ LENB ต่างกัน
เทคนิคคือต้องอย่าลืม LEN นับช่องว่างด้วย ถ้าข้อมูลมาจาก ETL ที่สกปรก ให้ TRIM ก่อน แล้ว LEN ทีหลัง
เช็คว่าโค้ด/รหัสมีความยาวตามที่กำหนดหรือไม่
ใช้คู่กับ TRIM เพื่อตรวจว่าข้อความว่างจริงหรือไม่
นับจำนวนอักขระในข้อความ "DAX" ได้ 3 ตัว
ใช้ใน Calculated Column – ทุกแถวจะคำนวณความยาวของชื่อในแถวนั้นเอง (row context)
TRIM ตัดช่องว่างส่วนเกิน แล้ว LEN ตรวจว่าเหลืออักขระจริงหรือไม่ – trick สำคัญสำหรับ data quality
ใช้ตรวจสอบว่า ID ยาวพอมาตรฐานหรือไม่ – validation แบบง่ายๆ
รวมความยาวจากหลายคอลัมน์ – วิธีผสมผสาน LEN กับ logic ที่ซับซ้อน
ใช่ LEN นับ space เป็นอักขระ ถ้า "ABC " (มี space สุดท้าย) จะได้ 4 ตัว ถ้าต้องการไม่นับ ให้ TRIM ก่อน: LEN(TRIM("ABC ")) = 3
BLANK ส่วนใหญ่ LEN จะ handle เป็น 0 แต่ถ้าต้องการปลอดภัย ให้ใช้ IF(ISBLANK(…), 0, LEN(…)) หรือ COALESCE([Column], "") ก่อน
ได้ DAX จะแปลงตัวเลขเป็นข้อความก่อนแล้วนับ เช่น LEN(12345) = 5 แต่วิธีนี้ไม่ recommended – ให้ใช้ explicit คือ LEN(TEXT(12345, "0")) เด่นชัดกว่า
ใช่ DAX ใช้ Unicode ดังนั้นไม่ว่าจะไทย, อังกฤษ, แม่นจีน – นับเหมือนกันทั้งหมด ต่างจาก Excel สมัยจอม LENB (สำหรับ double-byte)
ฟังก์ชันที่ผู้เขียนโยงไว้กับ LEN (DAX) จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
CONCATENATE ต่อข้อความ 2 ค่าให้เป็นสตริงเดียว เหมาะกับการทำ label หรือรวมข้อความจาก 2 แหล่งในบริบทปัจจุบัน
EXACT เปรียบเทียบ Text1 กับ Text2 แบบตรงตัวและคำนึงถึงตัวพิมพ์เล็ก/ใหญ่ คืน TRUE เมื่อเหมือนกันทุกตัวอักษร เหมาะกับงานตรวจรหัส/ข้อความที่ต้องแยก case
FIND คืนค่าตำแหน่งเริ่มต้นของ FindText ภายใน WithinText (เริ่มนับที่ 1) โดยค้นหาแบบแยกตัวพิมพ์ใหญ่/เล็ก และสามารถระบุ StartNum/NotFoundValue เพื่อควบคุมจุดเริ่มค้นหาและผลลัพธ์เมื่อไม่พบได้
LEFT คืนค่าตัวอักษรจำนวนหนึ่งจากจุดเริ่มต้นของข้อความ ใช้ได้กับ Calculated Column โดยจะประมวลผลภาษาต่างๆ (Unicode) อย่างเดียวกัน
LOWER แปลงข้อความให้เป็นตัวพิมพ์เล็กทั้งหมด มีประโยชน์มากสำหรับการทำความสะอาดข้อมูลและแก้ปัญหาคีย์ไม่ตรงกันเพราะเหตุคำต่างชั้นอักษร
MID คืนสตริงย่อยจากข้อความ โดยเริ่มที่ StartNum (เริ่มนับที่ 1) และดึง NumChars ตัว ใช้บ่อยในการแยก/ตัดข้อความร่วมกับ LEFT/RIGHT/FIND/SEARCH
REPLACE แทนที่อักขระจำนวนหนึ่งในสตริง โดยเริ่มจากตำแหน่งที่ระบุ เหมาะกับการแก้ไขข้อความเฉพาะตำแหน่ง เช่น เปลี่ยนคำนำหน้า แทนที่ตัวเลขบางหลัก หรือซ่อนบางส่วนของข้อมูล
REPT ทำซ้ำข้อความตามจำนวนที่กำหนด ช่วยสร้างสัญลักษณ์ซ้ำๆ เช่น ดาว, จุด, หรือเครื่องหมายคั่น เพื่อจัดรูปแบบและเน้นข้อมูลในรายงาน
RIGHT คืนค่าตัวอักษรจำนวนหนึ่งจากจุดสิ้นสุดของข้อความ (ด้านขวา) ตามจำนวนที่ระบุ
SEARCH คืนค่าตำแหน่งเริ่มต้นของข้อความที่ค้นหา (ค้นหาแบบไม่สนตัวพิมพ์) หากไม่พบจะเกิดข้อผิดพลาด สามารถใช้กับ IFERROR หรือ COALESCE เพื่อจัดการกรณีไม่พบ
SUBSTITUTE ค้นหาและแทนที่ข้อความในสตริง สามารถแทนที่ทุกครั้งหรือเพียงครั้งที่ n เหมาะกับการปรับรูปแบบและทำความสะอาดข้อมูลโดยตรวจสอบเนื้อหา ไม่ใช่ตำแหน่ง
ฟังก์ชันทำความสะอาดข้อความ ลบช่องว่างส่วนเกินนำหน้า ท้าย และช่องว่างหลายตัวระหว่างคำ โดยคงไว้ช่องว่างเดี่ยวระหว่างคำเท่านั้น
UNICODE คืนค่า code point ของอักขระตัวแรกในข้อความ ใช้ในการตรวจสอบ/จำแนกข้อความตามอักขระนำหน้า หรือทำตรรกะเกี่ยวกับการเข้ารหัส และมักใช้คู่กับ UNICHAR
UPPER แปลงข้อความให้เป็นตัวพิมพ์ใหญ่ทั้งหมด ใช้บ่อยเพื่อปรับปรุงคุณภาพข้อมูลและทำให้การเปรียบเทียบข้อความแม่นยำ
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่