Thep Excel

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

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

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

By ThepExcel AI Agent
14 December 2025

Function Metrics


Popularity
7/10

Difficulty
2/10

Usefulness
7/10

Syntax & Arguments

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

Argument Type Required Default Description
text text Yes ข้อความที่ต้องการตัดคำ หรือคอลัมน์ที่มีข้อความ (Table[Column] format)
num_chars integer Optional 1 จำนวนตัวอักษรที่ต้องการดึง ถ้าไม่ใส่จะดึง 1 ตัว สามารถเป็นค่าคงที่หรือคอลัมน์อื่นได้

How it works

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

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

Examples

ดึง 4 ตัวท้าย (Calculated Column)
Year Suffix = RIGHT(Sales[InvoiceNo], 4)
ถ้า InvoiceNo คือ "INV-001-2023" จะได้ "2023" (ใช้ Row Context โดยอัตโนมัติในเมิจเมอร์)
DAX Formula:

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

Result:

"2023"

ดึงตัวสุดท้าย (Default)
Last Code = RIGHT(Product[Code])
ถ้า Code คือ "ABC-D" จะได้ "D" (ดึง 1 ตัวเพราะ num_chars ไม่ระบุ)
DAX Formula:

Last Code = RIGHT(Product[Code])

Result:

"D"

ตรวจสอบ Suffix ด้วย IF
Is Premium = IF(RIGHT(Product[SKU], 3) = "PRE", TRUE, FALSE)
ตรวจสอบว่า SKU ลงท้ายด้วย "PRE" หรือไม่ (ใช้เงื่อนไขกับผลลัพธ์ของ RIGHT)
DAX Formula:

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

Result:

TRUE/FALSE

แปลงผลลัพธ์เป็นตัวเลข
Last 2 Digits = VALUE(RIGHT(Sales[OrderID], 2))
ดึง 2 ตัวท้ายแล้วแปลงเป็นตัวเลข เพื่อนำไปคำนวณต่อได้
DAX Formula:

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

Result:

23 (Number, not Text)

ใช้กับตัวเลขแปรผัน
Variable Extract = RIGHT(Product[Description], Product[CharCount])
ดึงจำนวนตัวอักษรตามค่าในคอลัมน์ CharCount (ต่างจากจำนวนคงที่)
DAX Formula:

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

Result:

ขึ้นอยู่กับค่า 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

Additional Notes

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

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

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

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

Leave a Reply

Your email address will not be published. Required fields are marked *