Number.FromText แปลงค่าข้อความที่เป็นตัวแทนของตัวเลขเป็นค่าตัวเลขจริง รองรับการจัดรูปแบบตัวเลขต่างๆ รวมถึงสัญกรณ์วิทยาศาสตร์
=Number.FromText(text as nullable text, optional culture as nullable text) as nullable number
=Number.FromText(text as nullable text, optional culture as nullable text) as nullable number
| Argument | Type | Required | Default | Description |
|---|---|---|---|---|
| text | text | Yes | ค่าข้อความที่ต้องการแปลงเป็นตัวเลข เช่น “15”, “3,423.10”, “5.0E-10” | |
| culture | nullable text | Optional | null | รหัส culture ที่บอกให้ระบบรู้ว่าข้อมูลนี้เป็นรูปแบบของประเทศไหน เช่น “en-US” สำหรับสหรัฐอเมริกา “de-DE” สำหรับเยอรมนี “th-TH” สำหรับไทย |
แปลงข้อมูลราคาที่นำเข้าจากแหล่งข้อมูลอื่นเป็นตัวเลขเพื่อคำนวณต่อไป
แปลงตัวเลขจากประเทศต่างๆ ที่ใช้รูปแบบที่แตกต่างกัน (เช่น 1,234 vs 1.234)
Number.FromText("4")=Number.FromText("4")
4
Number.FromText("123.45")=Number.FromText("123.45")
123.45
Number.FromText("5.0e-10")=Number.FromText("5.0e-10")
5E-10
Number.FromText("1,234.56", "en-US")=Number.FromText("1,234.56", "en-US")
1234.56
Number.FromText("1.234,56", "de-DE")=Number.FromText("1.234,56", "de-DE")
1234.56
Number.FromText("-250.75")=Number.FromText("-250.75")
-250.75
Number.FromText โฟกัสแค่ตัวเลข ส่วน Value.FromText เป็นผู้อ้อมแขนรับข้อมูล ทำได้ทั้งตัวเลข ข้อความ วันที่ แบบครบครัน ถ้าคุณแน่ใจว่าอยากได้ตัวเลข Number.FromText มันเร็วและตรงประเด็นกว่า
ฟังก์ชันจะส่งคืน null หรือชน error ขึ้น ถ้าอยากรองรับข้อมูลแปลกประหลาด ให้ใช้ try-otherwise เพื่อให้ Power Query ไม่ขึ้ง แพร่เพียร ส่งค่าแทนกันได้ตามใจเรา
จริงเด๋ว ถ้างานนั้นเกี่ยวข้องกับต่างประเทศ Culture เป็นเจ้ากุญแจ เยอรมนีใช้จุลภาคเป็นทศนิยม สหรัฐใช้จุด ถ้าลืมระบุ culture ข้อมูลที่ “123,45” ก็จะเป็น null ได้ แทนที่จะเป็น 123.45
Number.FromText แปลงเป็นตัวเลขทั่วไป แต่ถ้าคุณอยากได้เต็มๆ ใช้ Int32.From หรือ Number.IntegerDivide ไปตัดทศนิยมให้หาย ขึ้นอยู่ว่าจะปัดหรือตัดฉันนะ
Number.FromText แปลงข้อความที่ดูเหมือนตัวเลข เช่น “1,234.56” ให้เป็นตัวเลขจริงที่คำนวณได้ ฟังก์ชันตัวนี้เจ๋งเพราะ Power Query เข้าใจตัวเลขจากประเทศต่างๆ ไม่ว่าจะใช้จุด หรือจุลภาคเป็นทศนิยมก็ได้
ที่เจ๋งคือ ถ้าข้อมูลมาจากเยอรมนี (ใช้ 1.234,56) หรือสหรัฐ (ใช้ 1,234.56) ระบบเข้าใจทั้งสอง ไม่ต้องล้างข้อมูลพิเศษ แถมรองรับสัญกรณ์วิทยาศาสตร์ด้วย เช่น “5.0E-10” ที่มักจะปรากฏในข้อมูลทางวิทยาศาสตร์
ส่วนตัวผม ตอนแรกคิดว่า Power Query รู้จักรูปแบบตัวเลขอยู่แล้ว แต่พอเอาข้อมูลจากต่างประเทศมา โลเคล (culture) ก็ไม่ตรง ข้อมูลทั้งหมดกลายเป็น null ตั้งแต่นั้นมา culture parameter จึงกลายเป็นเพื่อนแท้ ไม่มี ไม่ได้สำหรับงานข้ามประเทศจริงๆ