Number.FromText แปลงค่าข้อความที่เป็นตัวแทนของตัวเลขเป็นค่าตัวเลขจริง รองรับการจัดรูปแบบตัวเลขต่างๆ รวมถึงสัญกรณ์วิทยาศาสตร์
| อาร์กิวเมนต์ | ชนิด | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
| text | text | ค่าข้อความที่ต้องการแปลงเป็นตัวเลข เช่น “15”, “3,423.10”, “5.0E-10” | |
| [culture]ไม่บังคับ | nullable text | null | รหัส culture ที่บอกให้ระบบรู้ว่าข้อมูลนี้เป็นรูปแบบของประเทศไหน เช่น “en-US” สำหรับสหรัฐอเมริกา “de-DE” สำหรับเยอรมนี “th-TH” สำหรับไทย |
[ ] = อาร์กิวเมนต์ที่ไม่บังคับ
Number.FromText แปลงข้อความที่ดูเหมือนตัวเลข เช่น “1,234.56” ให้เป็นตัวเลขจริงที่คำนวณได้ ฟังก์ชันตัวนี้เจ๋งเพราะ Power Query เข้าใจตัวเลขจากประเทศต่างๆ ไม่ว่าจะใช้จุด หรือจุลภาคเป็นทศนิยมก็ได้
ที่เจ๋งคือ ถ้าข้อมูลมาจากเยอรมนี (ใช้ 1.234,56) หรือสหรัฐ (ใช้ 1,234.56) ระบบเข้าใจทั้งสอง ไม่ต้องล้างข้อมูลพิเศษ แถมรองรับสัญกรณ์วิทยาศาสตร์ด้วย เช่น “5.0E-10” ที่มักจะปรากฏในข้อมูลทางวิทยาศาสตร์
ส่วนตัวผม ตอนแรกคิดว่า Power Query รู้จักรูปแบบตัวเลขอยู่แล้ว แต่พอเอาข้อมูลจากต่างประเทศมา โลเคล (culture) ก็ไม่ตรง ข้อมูลทั้งหมดกลายเป็น null ตั้งแต่นั้นมา culture parameter จึงกลายเป็นเพื่อนแท้ ไม่มี ไม่ได้สำหรับงานข้ามประเทศจริงๆ
แปลงข้อมูลราคาที่นำเข้าจากแหล่งข้อมูลอื่นเป็นตัวเลขเพื่อคำนวณต่อไป
แปลงตัวเลขจากประเทศต่างๆ ที่ใช้รูปแบบที่แตกต่างกัน (เช่น 1,234 vs 1.234)
แปลงข้อความ "4" เป็นค่าตัวเลข 4 ที่สามารถใช้ในการคำนวณได้
แปลงข้อความ "123.45" เป็นตัวเลข 123.45 ที่สามารถใช้ในการคำนวณต่อไป
แปลงข้อความในสัญกรณ์วิทยาศาสตร์ให้เป็นค่าตัวเลขที่ถูกต้อง
แปลงข้อความที่มีจุลภาคแยกหลักและจุดเป็นทศนิยม ตามรูปแบบสหรัฐอเมริกา
แปลงข้อความที่มีจุดแยกหลักและจุลภาคเป็นทศนิยม ตามรูปแบบเยอรมนี
แปลงข้อความที่มีเครื่องหมายลบเป็นค่าตัวเลขลบ
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 จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
Text.Clean ลบตัวอักษรควบคุมที่ไม่สามารถพิมพ์ได้ (Control Characters) เช่น Line Feed, Tab, Carriage Return ออกจากข้อความ โดยเก็บเฉพาะตัวอักษรที่มองเห็นได้และพิมพ์ได้
Text.Remove จะคืนค่าข้อความใหม่ที่ตัดตัวอักษรที่อยู่ใน removeChars ออกไปทั้งหมด เป็นฟังก์ชันตรงข้ามกับ Text.Select
Value.FromText ใช้สำหรับแปลงข้อความเป็นค่าที่เหมาะสม สามารถแปลงเป็น number, logical, null, datetime, duration หรือ text ตามรูปแบบ
Number.From จะพยายามแปลงค่า Input ให้เป็น Number หากเป็น Text จะพยายาม Parse ตัวเลขออกมา หากเป็น Date/Time จะแปลงเป็น Serial Number (เช่นเดียวกับ Excel)
Number.ToText จะแปลงค่าตัวเลขให้เป็น Text String โดยสามารถระบุ format เพื่อจัดรูปแบบการแสดงผลได้ (เช่น "N2" สำหรับทศนิยม 2 ตำแหน่ง หรือ "C" สำหรับสกุลเงิน) และระบุ culture ได้
Record.TransformFields แปลงค่าในฟิลด์ที่ระบุของเรคอร์ดโดยใช้ฟังก์ชันแปลงค่า สามารถแปลงฟิลด์เดียวหรือหลายฟิลด์พร้อมกันได้ เหมาะสำหรับการทำความสะอาดข้อมูลและการแปลงประเภทข้อมูล
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่