Thep Excel

Number.FromTextแปลงข้อความเป็นตัวเลข

Number.FromText แปลงค่าข้อความที่เป็นตัวแทนของตัวเลขเป็นค่าตัวเลขจริง รองรับการจัดรูปแบบตัวเลขต่างๆ รวมถึงสัญกรณ์วิทยาศาสตร์

fx
=Number.FromText(text, [culture]) as nullable number

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

อัปเดต 12 December 2025

Syntax & Arguments

อาร์กิวเมนต์ ชนิด ค่าเริ่มต้น คำอธิบาย
text text ค่าข้อความที่ต้องการแปลงเป็นตัวเลข เช่น “15”, “3,423.10”, “5.0E-10”
[culture]ไม่บังคับ nullable text null รหัส culture ที่บอกให้ระบบรู้ว่าข้อมูลนี้เป็นรูปแบบของประเทศไหน เช่น “en-US” สำหรับสหรัฐอเมริกา “de-DE” สำหรับเยอรมนี “th-TH” สำหรับไทย

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

Additional Notes

Number.FromText แปลงข้อความที่ดูเหมือนตัวเลข เช่น “1,234.56” ให้เป็นตัวเลขจริงที่คำนวณได้ ฟังก์ชันตัวนี้เจ๋งเพราะ Power Query เข้าใจตัวเลขจากประเทศต่างๆ ไม่ว่าจะใช้จุด หรือจุลภาคเป็นทศนิยมก็ได้

ที่เจ๋งคือ ถ้าข้อมูลมาจากเยอรมนี (ใช้ 1.234,56) หรือสหรัฐ (ใช้ 1,234.56) ระบบเข้าใจทั้งสอง ไม่ต้องล้างข้อมูลพิเศษ แถมรองรับสัญกรณ์วิทยาศาสตร์ด้วย เช่น “5.0E-10” ที่มักจะปรากฏในข้อมูลทางวิทยาศาสตร์

ส่วนตัวผม ตอนแรกคิดว่า Power Query รู้จักรูปแบบตัวเลขอยู่แล้ว แต่พอเอาข้อมูลจากต่างประเทศมา โลเคล (culture) ก็ไม่ตรง ข้อมูลทั้งหมดกลายเป็น null ตั้งแต่นั้นมา culture parameter จึงกลายเป็นเพื่อนแท้ ไม่มี ไม่ได้สำหรับงานข้ามประเทศจริงๆ

How it works

แปลงราคาจากข้อความเป็นตัวเลข

แปลงข้อมูลราคาที่นำเข้าจากแหล่งข้อมูลอื่นเป็นตัวเลขเพื่อคำนวณต่อไป

จัดการข้อมูลจากหลายประเทศ

แปลงตัวเลขจากประเทศต่างๆ ที่ใช้รูปแบบที่แตกต่างกัน (เช่น 1,234 vs 1.234)

Examples

แปลงตัวเลขเต็ม (Integer)Number.FromText("4")

แปลงข้อความ "4" เป็นค่าตัวเลข 4 ที่สามารถใช้ในการคำนวณได้

fx
=Number.FromText("4")

ผลลัพธ์4
แปลงข้อความเป็นตัวเลขทศนิยมNumber.FromText("123.45")

แปลงข้อความ "123.45" เป็นตัวเลข 123.45 ที่สามารถใช้ในการคำนวณต่อไป

fx
=Number.FromText("123.45")

ผลลัพธ์123.45
แปลงสัญกรณ์วิทยาศาสตร์Number.FromText("5.0e-10")

แปลงข้อความในสัญกรณ์วิทยาศาสตร์ให้เป็นค่าตัวเลขที่ถูกต้อง

fx
=Number.FromText("5.0e-10")

ผลลัพธ์5E-10
แปลงตัวเลขทศนิยม (รูปแบบอเมริกา)Number.FromText("1,234.56", "en-US")

แปลงข้อความที่มีจุลภาคแยกหลักและจุดเป็นทศนิยม ตามรูปแบบสหรัฐอเมริกา

fx
=Number.FromText("1,234.56", "en-US")

ผลลัพธ์1234.56
แปลงตัวเลขทศนิยม (รูปแบบยุโรป)Number.FromText("1.234,56", "de-DE")

แปลงข้อความที่มีจุดแยกหลักและจุลภาคเป็นทศนิยม ตามรูปแบบเยอรมนี

fx
=Number.FromText("1.234,56", "de-DE")

ผลลัพธ์1234.56
ใช้กับตัวเลขลบNumber.FromText("-250.75")

แปลงข้อความที่มีเครื่องหมายลบเป็นค่าตัวเลขลบ

fx
=Number.FromText("-250.75")

ผลลัพธ์-250.75

FAQs

ผลต่างระหว่าง Number.FromText และ Value.FromText คืออะไร?+

Number.FromText โฟกัสแค่ตัวเลข ส่วน Value.FromText เป็นผู้อ้อมแขนรับข้อมูล ทำได้ทั้งตัวเลข ข้อความ วันที่ แบบครบครัน ถ้าคุณแน่ใจว่าอยากได้ตัวเลข Number.FromText มันเร็วและตรงประเด็นกว่า

จะเกิดอะไรขึ้นถ้าแปลงข้อความที่ไม่ใช่ตัวเลข?+

ฟังก์ชันจะส่งคืน null หรือชน error ขึ้น ถ้าอยากรองรับข้อมูลแปลกประหลาด ให้ใช้ try-otherwise เพื่อให้ Power Query ไม่ขึ้ง แพร่เพียร ส่งค่าแทนกันได้ตามใจเรา

พารามิเตอร์ culture มีความสำคัญหรือไม่?+

จริงเด๋ว ถ้างานนั้นเกี่ยวข้องกับต่างประเทศ Culture เป็นเจ้ากุญแจ เยอรมนีใช้จุลภาคเป็นทศนิยม สหรัฐใช้จุด ถ้าลืมระบุ culture ข้อมูลที่ "123,45" ก็จะเป็น null ได้ แทนที่จะเป็น 123.45

สามารถแปลงข้อความเป็นตัวเลขเต็ม (integer) ได้หรือไม่?+

Number.FromText แปลงเป็นตัวเลขทั่วไป แต่ถ้าคุณอยากได้เต็มๆ ใช้ Int32.From หรือ Number.IntegerDivide ไปตัดทศนิยมให้หาย ขึ้นอยู่ว่าจะปัดหรือตัดฉันนะ

Resources & Related

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

ฟังก์ชันนี้Number.FromTextNumber functions
Text functions (3)
Text.Clean

Text.Clean ลบตัวอักษรควบคุมที่ไม่สามารถพิมพ์ได้ (Control Characters) เช่น Line Feed, Tab, Carriage Return ออกจากข้อความ โดยเก็บเฉพาะตัวอักษรที่มองเห็นได้และพิมพ์ได้

Text.Remove

Text.Remove จะคืนค่าข้อความใหม่ที่ตัดตัวอักษรที่อยู่ใน removeChars ออกไปทั้งหมด เป็นฟังก์ชันตรงข้ามกับ Text.Select

Value.FromText

Value.FromText ใช้สำหรับแปลงข้อความเป็นค่าที่เหมาะสม สามารถแปลงเป็น number, logical, null, datetime, duration หรือ text ตามรูปแบบ

Number functions (2)
Number.From

Number.From จะพยายามแปลงค่า Input ให้เป็น Number หากเป็น Text จะพยายาม Parse ตัวเลขออกมา หากเป็น Date/Time จะแปลงเป็น Serial Number (เช่นเดียวกับ Excel)

Number.ToText

Number.ToText จะแปลงค่าตัวเลขให้เป็น Text String โดยสามารถระบุ format เพื่อจัดรูปแบบการแสดงผลได้ (เช่น "N2" สำหรับทศนิยม 2 ตำแหน่ง หรือ "C" สำหรับสกุลเงิน) และระบุ culture ได้

Record functions (1)
Record.TransformFields

Record.TransformFields แปลงค่าในฟิลด์ที่ระบุของเรคอร์ดโดยใช้ฟังก์ชันแปลงค่า สามารถแปลงฟิลด์เดียวหรือหลายฟิลด์พร้อมกันได้ เหมาะสำหรับการทำความสะอาดข้อมูลและการแปลงประเภทข้อมูล

Comments

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