Thep Excel

DAX · Text

RIGHTตัดข้อความจากขวา (DAX)

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

fx
=RIGHT(<text>, [<num_chars>])

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

อัปเดต 14 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
text text ข้อความที่ต้องการตัดคำ หรือคอลัมน์ที่มีข้อความ (Table[Column] format)
[num_chars]ไม่บังคับ integer 1 จำนวนตัวอักษรที่ต้องการดึง ถ้าไม่ใส่จะดึง 1 ตัว สามารถเป็นค่าคงที่หรือคอลัมน์อื่นได้

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

Additional Notes

ฟังก์ชัน RIGHT ใน DAX ใช้สำหรับดึงตัวอักษรจากด้านขวาสุดของข้อความตามจำนวนที่กำหนด เมื่อคุณต้องการแยกส่วนท้ายของข้อมูล เช่น ปีจากวันที่ รหัสหมวดหมู่จากรหัสสินค้า หรือคำนำหน้า/นามสกุลจากชื่อเต็ม

ส่วนตัวผมคิดว่า RIGHT กับ LEFT เป็นเหมือนกรรไกรของนักเขียนโค้ด – ธรรมชาติแล้วเราต้องตัดข้อความประมาณนี้ทุกวันในการทำความสะอาดข้อมูล 😎

ความเจ๋งของ RIGHT คือมันทำงานได้ดีทั้งในเมิจเมอร์ (Calculated Column) และมิเจอร์ (Measure) แต่ต้องเข้าใจ Row Context – ถ้าคุณใช้มันในเมิจเมอร์ มันจะรันแต่ละแถวทีละแถว (Row Context) ถ้าใช้ในมิเจอร์ต้องผ่าน CONCATENATEX หรือสร้างคอลัมน์ช่วย

ข้อควรระวัง: RIGHT คืนค่าเป็น Text เสมอ ถ้าตัวอักษรที่ดึงมาคือตัวเลขและต้องคำนวณต่อ ต้องแปลงด้วย VALUE() ก่อน

How it works

ดึงปีจากรหัส

ดึงตัวเลข 4 ตัวท้ายของรหัส Invoice ที่แสดงปี (เช่น INV-2023)

Examples

ดึง 4 ตัวท้าย (Calculated Column)Year Suffix = RIGHT(Sales[InvoiceNo], 4)

ถ้า InvoiceNo คือ "INV-001-2023" จะได้ "2023" (ใช้ Row Context โดยอัตโนมัติในเมิจเมอร์)

fx
Year Suffix = RIGHT(Sales[InvoiceNo], 4)

ผลลัพธ์"2023"
ดึงตัวสุดท้าย (Default)Last Code = RIGHT(Product[Code])

ถ้า Code คือ "ABC-D" จะได้ "D" (ดึง 1 ตัวเพราะ num_chars ไม่ระบุ)

fx
Last Code = RIGHT(Product[Code])

ผลลัพธ์"D"
ตรวจสอบ Suffix ด้วย IFIs Premium = IF(RIGHT(Product[SKU], 3) = "PRE", TRUE, FALSE)

ตรวจสอบว่า SKU ลงท้ายด้วย "PRE" หรือไม่ (ใช้เงื่อนไขกับผลลัพธ์ของ RIGHT)

fx
Is Premium = IF(RIGHT(Product[SKU], 3) = "PRE", TRUE, FALSE)

ผลลัพธ์TRUE/FALSE
แปลงผลลัพธ์เป็นตัวเลขLast 2 Digits = VALUE(RIGHT(Sales[OrderID], 2))

ดึง 2 ตัวท้ายแล้วแปลงเป็นตัวเลข เพื่อนำไปคำนวณต่อได้

fx
Last 2 Digits = VALUE(RIGHT(Sales[OrderID], 2))

ผลลัพธ์23 (Number, not Text)
ใช้กับตัวเลขแปรผันVariable Extract = RIGHT(Product[Description], Product[CharCount])

ดึงจำนวนตัวอักษรตามค่าในคอลัมน์ CharCount (ต่างจากจำนวนคงที่)

fx
Variable Extract = RIGHT(Product[Description], Product[CharCount])

ผลลัพธ์ขึ้นอยู่กับค่า CharCount

FAQs

ผลลัพธ์เป็น Text หรือ Number?+

เป็น Text เสมอ ถ้าต้องการนำไปคำนวณทางคณิตศาสตร์ต้องใช้ฟังก์ชัน VALUE() แปลง เช่น RIGHT(Code, 3) + 100 จะเกิดข้อผิดพลาด ต้องเป็น VALUE(RIGHT(Code, 3)) + 100

ใช้ได้กับ Power Query (M) ไหม?+

ไม่ใช่ ฟังก์ชัน RIGHT เป็นของ DAX เท่านั้น Power Query จะใช้ Text.End() แทน

ถ้า num_chars มากกว่าความยาวข้อความ จะเกิดอะไรขึ้น?+

DAX จะคืนค่าข้อความทั้งหมด เช่น RIGHT("Hello", 10) จะคืน "Hello" ไม่ใช่ข้อผิดพลาด

RIGHT กับ LEFT ต่างกันยังไง?+

RIGHT ดึงจากด้านขวา LEFT ดึงจากด้านซ้าย เช่น RIGHT("ABC123", 3) ได้ "123" แต่ LEFT("ABC123", 3) ได้ "ABC"

ใช้ได้กับ DirectQuery ไหม?+

ไม่ได้ ถ้าใช้ DirectQuery สำหรับ Calculated Column หรือ RLS จะเกิดข้อผิดพลาด ต้องใช้ Import Mode

Resources & Related

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

ฟังก์ชันนี้RIGHTText
Text (7)
FIND

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

LEFT

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

LEN (DAX)

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

LOWER

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

MID

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

REPLACE

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

UPPER

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

Comments

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