Value.Type คืนค่า Type ของข้อมูลที่กำหนด ช่วยตรวจสอบว่าเป็น number, text, date, table, list หรือชนิดอื่นๆ มีประโยชน์มากสำหรับ data validation และการเขียน dynamic functions
| อาร์กิวเมนต์ | ชนิด | คำอธิบาย |
|---|---|---|
| value | any | ค่าหรือข้อมูลใดๆ ที่ต้องการตรวจสอบชนิด เป็น any type ก็ได้ (number, text, list, table, record, null, ฯลฯ) |
Value.Type เป็นฟังก์ชันสำคัญใน Power Query ที่ใช้ตรวจสอบชนิดข้อมูล (Data Type) ของค่าใดๆ ว่าเป็น type text, type number, type date, type table, type list, type record, type null, type logical หรือชนิดอื่นๆ
ที่เจ๋งคือสามารถใช้ Value.Type เพื่อเขียน custom functions ที่ work ได้กับ input หลายชนิด (polymorphic functions) ได้ เหมาะสำหรับสถานการณ์ที่ข้อมูลมาจากหลายแหล่งที่มี structure ไม่เหมือนกัน
ส่วนตัวผมใช้ Value.Type เมื่อต้องเขียน error handling หรือต้องรู้ว่าค่ากลับมาจากการแปลงข้อมูลเป็นชนิดอะไร เช่น Text.From คืนค่ามาเป็น text แล้วจริงหรือเปล่า 😎
เช็คว่าค่าในคอลัมน์นี้เป็นตัวเลขหรือข้อความ เพื่อเลือกวิธีการจัดการที่เหมาะสม
เขียนฟังก์ชันที่ทำงานต่างกันตามชนิดข้อมูลที่รับเข้ามา (Polymorphic Function)
ค่า 123 เป็นตัวเลข ดังนั้นคืนค่า type number กลับมา ซึ่งเป็นชนิดข้อมูลตัวเลขพื้นฐาน
ค่า "Hello World" เป็นข้อความหรือสตริง ดังนั้นคืนค่า type text ซึ่งเป็นชนิดข้อมูลข้อความ
ค่า #date(2025, 12, 25) เป็นวันที่ ดังนั้นคืนค่า type date ซึ่งเป็นชนิดข้อมูลวันที่
ค่า {1, 2, 3} เป็นรายการหรือลิสต์ ดังนั้นคืนค่า type list ซึ่งเป็นชนิดข้อมูลแบบรายการ
ค่า [Name = "Sira", Age = 30] เป็นเรคคอร์ด ดังนั้นคืนค่า type record ซึ่งเป็นชนิดข้อมูลแบบเรคคอร์ด
ค่า null เป็น null type ดังนั้นคืนค่า type null
ค่า true เป็น logical (boolean) ดังนั้นคืนค่า type logical
ตรวจสอบว่า Input เป็น text หรือไม่ ถ้าใช่จะแปลงเป็น number ด้วย Number.From
สร้าง function ที่ accept input ได้หลายชนิด แล้วทำ different action ขึ้นอยู่กับชนิดของ input ที่รับเข้ามา
Value.Type คืนค่า type ที่เป็น actual type ของ value ออกมา เช่น type number, type text ส่วน Value.Is คืนค่า true/false เพื่อตรวจสอบว่า value เป็น type ที่ระบุหรือไม่ เช่น Value.Is(123, type number) = true ผมแนะนำให้ใช้ Value.Type เมื่อต้องรู้ว่า value เป็นชนิดอะไร และใช้ Value.Is เมื่อต้องเช็คว่า value เป็น specific type ที่คาด หรือไม่
Value.Type(null) คืนค่า type null กลับมา เป็น type ที่ represent ค่า null หรือค่าว่าง ผมเคยใช้อันนี้ในการตรวจสอบว่า query กลับค่ามา null จากการ process ข้อมูล
Value.Type มีประโยชน์เมื่อต้องทำสิ่งที่ต่างๆ ขึ้นอยู่กับชนิดข้อมูล (multiple conditions) เพราะสามารถ store type ไว้ในตัวแปร แล้ว compare ได้หลายครั้ง ส่วน Value.Is นั้นเป็น shorthand สำหรับการเช็คชนิด specific เพียง 1 ครั้ง ผมชอบใช้ Value.Type ใน custom functions ที่ต้องรองรับ input หลายชนิด
ได้ครับ Value.Type ใช้ได้กับ table Type คืนค่า type table กลับมา แต่ถ้าต้องรู้ว่า table มี column อะไรบ้าง หรือ schema เป็นอย่างไร ต้องใช้ Table.Schema() แทน
Value.Type นั้นเป็น lightweight operation ไม่มี performance issue ผมใช้มันในการ validate data แบบ row-by-row ก็ไม่เห็นปัญหา แต่ถ้าต้องเช็ค type ของข้อมูลหลาย millions rows อาจจะควร cache type check ขั้นบน level ของ table schema แทนจะดีกว่า
ฟังก์ชันที่ผู้เขียนโยงไว้กับ Value.Type จัดกลุ่มตามหมวด · ชี้ที่ชื่อใดชื่อหนึ่ง แล้วฟังก์ชันที่ใช้คู่กันจะมีจุดทอง
Value.As ใช้สำหรับการประมวลผล
Value.Is ใช้สำหรับการประมวลผล
Value.ReplaceType แทนที่ประเภทข้อมูล (type) ของค่าด้วยประเภทใหม่ที่กำหนด โดยไม่เปลี่ยนข้อมูลจริง
List.Count ใช้นับจำนวนสมาชิกทั้งหมดในลิสต์ (รวม null) ส่งคืนค่าตัวเลข ถ้าต้องการนับเฉพาะที่ไม่ว่างให้ใช้ List.NonNullCount แทน
Number.From จะพยายามแปลงค่า Input ให้เป็น Number หากเป็น Text จะพยายาม Parse ตัวเลขออกมา หากเป็น Date/Time จะแปลงเป็น Serial Number (เช่นเดียวกับ Excel)
แปลงค่าใดๆ เป็นข้อความ (Text)
ยังไม่มีบทความที่เกี่ยวข้องกับฟังก์ชันนี้
Comments
อีเมลของคุณจะไม่ถูกเผยแพร่