=LEN(<Text>)
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| Text | string | Yes | สตริงข้อความที่ต้องการนับจำนวนอักขระ สามารถเป็นค่าคงที่ คอลัมน์ หรือนิพจน์ที่คืนข้อความ |
เช็คว่าโค้ด/รหัสมีความยาวตามที่กำหนดหรือไม่
ใช้คู่กับ TRIM เพื่อตรวจว่าข้อความว่างจริงหรือไม่
LEN("DAX")=LEN("DAX")
3
ชื่อมีความยาว = LEN(Customers[CustomerName])ชื่อมีความยาว =
LEN(Customers[CustomerName])
5 (ถ้า CustomerName = "Alice"), 7 (ถ้า = "Charlie")
มีชื่อจริงหรือ = IF( LEN(TRIM(Customers[NameInput])) = 0, "ว่าง", "มีข้อมูล" )มีชื่อจริงหรือ =
IF(
LEN(TRIM(Customers[NameInput])) = 0,
"ว่าง",
"มีข้อมูล"
)
"ว่าง" ถ้า NameInput เป็นช่องว่าง หรือเพียงแค่ spaces, "มีข้อมูล" ถ้ามีตัวอักษรจริง
ID ถูกต้องหรือ = IF( LEN(Customers[CustomerID]) >= 5, "OK", "ผิด - สั้นเกินไป" )ID ถูกต้องหรือ =
IF(
LEN(Customers[CustomerID]) >= 5,
"OK",
"ผิด - สั้นเกินไป"
)
"OK" ถ้า ID มีอักขระ >= 5, "ผิด - สั้นเกินไป" ถ้าน้อยกว่า
ความยาว_ที่อยู่_รวม = LEN(Customers[Address1]) + LEN(Customers[Address2])ความยาว_ที่อยู่_รวม =
LEN(Customers[Address1]) +
LEN(Customers[Address2])
25 (ถ้า Address1="123 Main St" มี 11 ตัว + Address2="Bangkok" มี 7 ตัว = 18)
ใช่ 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 คืนจำนวนอักขระทั้งหมดในข้อความ (รวมช่องว่าง) เป็นจำนวนเต็ม
ฟังก์ชันนี้เป็นสตริงง่ายๆ ที่ใช้ได้ทั้ง Calculated Column (row context) และ Measure ส่วนตัวผมใช้ LEN บ่อย เวลาต้องตรวจสอบว่า ID มีความยาวถูกต้อง หรือค่าว่างไหม หลังจาก TRIM ข้อมูล
จุดเจ๋งของ LEN คือมัน handle Unicode ได้อัตโนมัติ สตริงไทย สตริงโรมัน นับเหมือนกัน (1 อักขระ = 1) ต่างจาก Excel สมัยโบราณที่มี LEN กับ LENB ต่างกัน
เทคนิคคือต้องอย่าลืม LEN นับช่องว่างด้วย ถ้าข้อมูลมาจาก ETL ที่สกปรก ให้ TRIM ก่อน แล้ว LEN ทีหลัง