Thep Excel

DAX · Text

VALUEแปลงข้อความตัวเลขให้เป็นตัวเลข

VALUE แปลงข้อความที่แทนตัวเลขให้เป็นตัวเลข (decimal) เหมาะสำหรับข้อมูลนำเข้าที่ตัวเลขถูกเก็บเป็นข้อความหรือข้อมูลที่ไม่ทำความสะอาดอย่างถูกต้อง

fx
=VALUE(<text>)

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

อัปเดต 13 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด คำอธิบาย
text Text ข้อความที่ต้องการแปลงเป็นตัวเลข ยอมรับรูปแบบ: จำนวนเต็ม (“123”), ทศนิยม (“12.5”), สัญลักษณ์วิทยาศาสตร์ (“1e3”), วันที่ (“2020-10-23”), เวลา (“14:30:45”)

Additional Notes

VALUE ใช้แปลงข้อความที่เป็นตัวเลขให้กลายเป็นค่าตัวเลขจริง (decimal data type) โดยยอมรับรูปแบบต่างๆ เช่น จำนวนเต็ม ทศนิยม สัญลักษณ์วิทยาศาสตร์ วันที่ และเวลา

ที่เจ๋งคือ DAX โดยทั่วไปแล้วจะแปลงข้อความเป็นตัวเลขโดยอัตโนมัติ ดังนั้น VALUE จึงใช้ไม่บ่อยนักในงานประจำวัน แต่มันจะมีประโยชน์มากเมื่อคุณต้องการให้ชัดเจนว่ากำลังแปลงอะไร หรือเมื่อข้อมูลมีรูปแบบที่ DAX อาจไม่รู้จัก

ส่วนตัวผมแนะนำให้ใช้ VALUE เมื่อทำการแปลงคอลัมน์ข้อความที่อาจมีค่าไม่ใช่ตัวเลขซ่อนอยู่ เพื่อให้เห็นปัญหา error มากกว่าการพึ่งพาการแปลงโดยนัยที่อาจซ่อนข้อมูลเสียหาย 😎

How it works

แปลงคอลัมน์ตัวเลขที่ถูกเก็บเป็นข้อความ

เช่น ตัวเลขจากการนำเข้าที่ถูกตีความเป็นข้อความ

แปลงก่อนทำการสรุปหรือคำนวณ

ทำให้สามารถ SUM/AVERAGE/คำนวณทางคณิตศาสตร์ได้

Examples

แปลงข้อความตัวเลขธรรมดาVALUE("123")

VALUE แปลงสตริง "123" ให้เป็นค่าตัวเลข 123 ที่สามารถนำไปคำนวณได้

fx
= VALUE("123")

ผลลัพธ์123 (เป็นตัวเลข decimal)
แปลงคอลัมน์ข้อความเป็นตัวเลขAmount (Numeric) = VALUE(Transactions[AmountText])

เมื่อนำเข้าข้อมูลจากระบบอื่น Amount อาจเก็บเป็นข้อความ VALUE ช่วยแปลงให้เป็นตัวเลขได้ใช้งาน

fx
=Amount (Numeric) =
VALUE(Transactions[AmountText])

ผลลัพธ์คอลัมน์ของค่าตัวเลข decimal พร้อมใช้สำหรับการบวก ลบ คูณ หาร
แปลงข้อความทศนิยมและใช้ TRIM สำหรับความเสถียรTotal Amount = VAR CleanedAmount = TRIM(Sales[PriceText]) RETURN VALUE(CleanedAmount)

หากข้อความมีช่องว่างหัวท้าย (เช่น " 45.99 ") ให้ใช้ TRIM เพื่อตัดช่องว่างออกก่อน แล้วค่อย VALUE เพื่อให้แนวทางปฏิบัติที่ดีและลดความผิดพลาด

fx
Total Amount =
VAR CleanedAmount = TRIM(Sales[PriceText])
RETURN
VALUE(CleanedAmount)

ผลลัพธ์ค่าตัวเลขที่ถูกสะอาด แม้ว่าข้อมูลต้นฉบับมีช่องว่างหัวท้าย
จัดการข้อมูลที่อาจไม่ใช่ตัวเลขSafe Conversion = IF( CATCH(VALUE(Data[Text])) BLANK(), VALUE(Data[Text]), 0 )

ใช้ CATCH เพื่อจัดการข้อมูลที่อาจไม่สามารถแปลงได้ ซึ่งจะช่วยให้หลีกเลี่ยง error และแสดงค่าเริ่มต้นแทน

fx
Safe Conversion =
IF(
CATCH(VALUE(Data[Text])) <> BLANK(),
VALUE(Data[Text]),
0
)

ผลลัพธ์ค่าตัวเลขหากเป็นตัวเลขจริง หรือ 0 หากแปลงไม่ได้

FAQs

ทำไม DAX ไม่แปลงข้อความเป็นตัวเลขโดยอัตโนมัติเสมอ?+

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

VALUE ต่างจาก FORMAT อย่างไร?+

VALUE แปลงข้อความ → ตัวเลข (ทำให้สามารถคำนวณได้) ส่วน FORMAT แปลงตัวเลข → ข้อความ (ทำให้สวยงามสำหรับแสดงผล เช่น มีสัญลักษณ์สกุลเงิน)

ถ้าข้อความไม่ใช่ตัวเลขจริงจะเป็นอย่างไร?+

VALUE จะให้ error หากแปลงไม่ได้ ควรใช้ CATCH หรือ IFERROR เพื่อจัดการข้อมูลเสียหายหรือข้อมูลที่ไม่คาดคิด

Resources & Related

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

ฟังก์ชันนี้VALUEText
Text (6)
EXACT

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

FIXED

FIXED แปลงตัวเลขเป็นข้อความ พร้อมกำหนดจำนวนทศนิยม และเลือกใส่/ไม่ใส่ตัวคั่นหลักพัน เหมาะกับการแสดงผลแบบรูปแบบคงที่

FORMAT

FORMAT ใช้แปลงค่า (ตัวเลข วันที่ เวลา) เป็น Text ตามรูปแบบที่ต้องการ เช่น แปลง 0.25 เป็น "25%" หรือ 2025-12-20 เป็น "20/12/2025" โดยสนับสนุน locale ต่างๆ

REPLACE

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

TRIM

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

UNICHAR

UNICHAR รับค่าโค้ด Unicode (ฐานสิบ) และคืนอักขระที่ตรงกับโค้ดนั้น ใช้สร้างสัญลักษณ์หรืออักขระพิเศษใน Measures/Columns เพื่อเพิ่มความสื่อสารในรายงาน

Math and Trig (1)
CURRENCY

CURRENCY แปลงค่าตัวเลขให้เป็นชนิด Currency โดยเก็บเลขทศนิยมเพียง 4 ตำแหน่ง เหมาะสำหรับการคำนวณค่าเงินที่ต้องความแม่นยำในการปัดเศษ

Date and Time (1)
DATEVALUE

DATEVALUE แปลงข้อความวันที่ (text) ให้เป็น datetime โดยอ้างอิงตามการตั้งค่า locale ของ model เหมาะกับข้อมูลวันที่ที่เก็บเป็นข้อความและต้องแปลงเป็นวันที่จริงเพื่อการคำนวณตามเวลา

Logical (1)
IFERROR

IFERROR ใช้ดักจับข้อผิดพลาดในนิพจน์: ถ้า Value เกิด error จะคืนค่า ValueIfError แทน ถ้าไม่เกิด error จะคืนค่าของ Value เดิม เหมาะสำหรับการแปลงชนิดข้อมูล การหารที่อาจเป็นศูนย์ หรือ measure ที่ไม่เสถียร

Comments

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