ชนิดและการแปลงชนิด
Power Query M ใช้ชนิดเพื่อจัดประเภทค่าเพื่อให้มีชุดข้อมูลที่มีโครงสร้างมากขึ้น บทความนี้อธิบายชนิด M ที่ใช้กันทั่วไปมากที่สุดและวิธีการแปลงชนิดหนึ่งเป็นประเภทอื่น
ชนิดที่ใช้บ่อย
ชนิดข้อมูลอ้างอิงถึงชนิดใดก็ตามที่ใช้เพื่อทําให้โครงสร้างของข้อมูลที่เฉพาะเจาะจงชัดเจนขึ้น ชนิดข้อมูลที่ใช้บ่อยที่สุดเป็นชนิดแรกเริ่ม ประเภทเหล่านี้รวมถึง:
-
type any
ซึ่งจัดประเภทค่าใด ๆ -
type null
ซึ่งจัดประเภทค่า null -
type logical
ซึ่งจัดประเภทค่าจริงและเท็จ -
type number
ซึ่งจัดประเภทค่าตัวเลข -
type time
ซึ่งจัดประเภทค่าเวลา -
type date
ซึ่งจัดประเภทค่าวันที่ -
type datetime
ซึ่งจัดประเภทค่าวันที่เวลา -
type datetimezone
ซึ่งจัดประเภทค่าโซนวันที่เวลา -
type duration
ซึ่งจัดประเภทค่าระยะเวลา -
type text
ซึ่งจัดประเภทค่าข้อความ -
type binary
ซึ่งจัดประเภทค่าไบนารี -
type type
ซึ่งจัดประเภทค่าชนิด -
type list
ซึ่งจัดประเภทค่ารายการ -
type record
ซึ่งจัดประเภทค่าเรกคอร์ด -
type table
ซึ่งจัดประเภทค่าตาราง -
type function
ซึ่งจัดประเภทค่าฟังก์ชัน -
type anynonnull
ซึ่งจัดประเภทค่าทั้งหมด ยกเว้น null -
type none
ซึ่งจัดประเภทไม่มีค่า
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับชนิดเหล่านี้ ให้ไปที่ Types
นอกจากชนิดข้อมูลทั่วไปเหล่านี้แล้ว ยังมีชุดของชนิดข้อมูลที่ใช้รูปแบบ *.Type
ชนิดข้อมูลที่ใช้บ่อยที่สุดของรูปแบบนี้คือ:
-
Byte.Type
ซึ่งจัดประเภทค่าตัวเลข 8 บิต -
Int8.Type
ซึ่งจัดประเภทค่าตัวเลข 8 บิต -
Int16.Type
ซึ่งจัดประเภทค่าตัวเลข 16 บิต -
Int32.Type
ซึ่งจัดประเภทค่าตัวเลข 32 บิต -
Int64.Type
ซึ่งจัดประเภทค่าตัวเลข 64 บิต -
Single.Type
ซึ่งจัดประเภทค่าตัวเลขทศนิยม 9 หลัก -
Double.Type
ซึ่งจัดประเภทค่าตัวเลขทศนิยม 17 หลัก -
Decimal.Type
ซึ่งจัดประเภทค่าตัวเลขทศนิยม 15 หลัก -
Currency.Type
ซึ่งจัดประเภทค่าตัวเลข 19 หลักด้วยเลขสี่หลักทางด้านขวาของตัวคั่น "." -
Percentage.Type
ซึ่งจัดประเภทค่าตัวเลข 15 หลักด้วยรูปแบบเพื่อจัดรูปแบบค่าเป็นเปอร์เซ็นต์ -
Guid.Type
ซึ่งจัดประเภทค่าข้อความ GUID
นอกจากนี้ คุณยังสามารถเขียนชนิดแรกเริ่มในรูปแบบ *.Type
ได้เช่นกัน ดังนั้น คุณสามารถเขียน number
เป็น Number.Type
, record
เป็น Record.Type
และอื่นๆ ได้
เมื่อคุณใช้ชนิดเหล่านี้ โปรดระวังว่า เช่นเดียวกับรหัส M ทั้งหมด ประเภทเหล่านี้จะตรงตามตัวพิมพ์ใหญ่-เล็ก
ตารางต่อไปนี้ประกอบด้วยข้อมูลเพิ่มเติมเกี่ยวกับแต่ละชนิดเหล่านี้
ชนิดข้อมูล | คำอธิบาย |
---|---|
any |
ชนิดข้อมูล any คือสถานะที่ระบุเมื่อค่าไม่มีข้อกําหนดชนิดข้อมูลที่ชัดเจน ชนิด any คือชนิดข้อมูลที่จัดประเภทค่าทั้งหมด |
binary |
ชนิดข้อมูล binary สามารถใช้เพื่อแสดงข้อมูลอื่น ๆ ที่มีรูปแบบไบนารีได้ |
type |
ค่าที่ใช้ในการจัดประเภทค่าอื่น ๆ สําหรับข้อมูลเพิ่มเติม ไปที่ ชนิด |
null |
แสดงถึงการขาดหายไปของค่า หรือค่าของสถานะที่ไม่แน่นอนหรือไม่รู้จัก |
anynonnull |
แสดงชนิดใด ๆ ที่ไม่สามารถยกเลิกได้ |
date |
แสดงเพียงวันที่ (ไม่มีเวลา) |
time |
แสดงเพียงเวลา (ไม่มีส่วนวันที่) |
datetime |
แสดงทั้งค่าวันที่และเวลา ส่วนเวลาของวันที่ถูกจัดเก็บเป็นเศษส่วนเป็นพหุคูณทั้งหมดของ 1/300 วินาที (3.33 มิลลิวินาที) วันที่ระหว่างปี 1900 ถึง 9999 ได้รับการสนับสนุน |
datetimezone |
แสดงวันที่และเวลา UTC ด้วยค่าออฟเซ็ตเขตเวลา |
duration |
แสดงเป็นระยะเวลา คุณสามารถเพิ่มหรือลบชนิดนี้ได้จากเขตข้อมูล datetime ที่มีผลลัพธ์ที่ถูกต้อง สําหรับข้อมูลเพิ่มเติม ไปที่ ระยะเวลา |
text |
สตริงข้อมูลอักขระ Unicode อาจเป็นสตริง ตัวเลข หรือวันที่ที่แสดงในรูปแบบข้อความ ความยาวสตริงสูงสุดคือ อักขระ Unicode 268,435,456 ตัว (โดยที่อักขระ Unicode แต่ละตัวเป็นสองไบต์) หรือ 536,870,912 ไบต์ |
logical |
ค่าบูลีนของ true หรือ false |
list |
ค่า ที่สร้างลําดับของค่าเมื่อแจกแจง สําหรับข้อมูลเพิ่มเติม ให้ไปที่ ชนิดของรายการ และค่ารายการ |
record |
ลําดับเขตข้อมูลที่เรียงลําดับ แต่ละเขตข้อมูลประกอบด้วยชื่อเขตข้อมูลและค่าเขตข้อมูล สําหรับข้อมูลเพิ่มเติม ไปที่ ชนิดของเรกคอร์ด และ ค่าเรกคอร์ด |
table |
ลําดับแถวที่เรียงลําดับแบ่งออกเป็นคอลัมน์ สําหรับข้อมูลเพิ่มเติม ไปที่ ชนิดตาราง และ ค่าตาราง |
function |
ค่าที่แมปชุดอาร์กิวเมนต์เป็นค่าเดียว สําหรับข้อมูลเพิ่มเติม ไปที่ ฟังก์ชัน และชนิดฟังก์ชัน |
number |
แสดงตัวเลขใดๆ ที่ใช้สําหรับการดําเนินการตัวเลขและเลขคณิต สําหรับข้อมูลเพิ่มเติม ไปที่ หมายเลข |
Decimal.Type |
แสดงจํานวนจุดทศนิยม 64 บิต (แปดไบต์) เป็นชนิดตัวเลขที่พบบ่อยที่สุด และสอดคล้องกับตัวเลขตามที่คุณมักจะคิดว่าเป็นอย่างนั้น แม้ว่าได้รับการออกแบบมาเพื่อจัดการกับตัวเลขที่มีค่าเศษส่วน เลขทศนิยมมีตัวเลขจํานวนเต็มด้วย
Decimal.Type สามารถจัดการค่าลบตั้งแต่ –1.79E +308 จนถึง –2.23E –308, 0 และค่าบวกจาก 2.23E –308 จนถึง 1.79E + 308 ตัวอย่างเช่น ตัวเลขเช่น 34, 34.01 และ 34.000367063 เป็นตัวเลขทศนิยมที่ใช้ได้ ความแม่นยําที่มากที่สุดที่สามารถแสดงใน Decimal.Type มีความยาว 15 หลัก ตัวคั่นทศนิยมสามารถเกิดขึ้นที่ใดก็ได้ในตัวเลข
Decimal.Type สอดคล้องกับวิธีที่ Excel จัดเก็บตัวเลข โปรดทราบว่าเลขจุดทศนิยมลอยตัวไบนารีไม่สามารถแสดงจํานวนทั้งหมดภายในช่วงที่รองรับด้วยความแม่นยํา 100% ดังนั้น ความแตกต่างเล็กน้อยในความแม่นยําอาจเกิดขึ้นเมื่อแสดงตัวเลขทศนิยมบางตัว |
Currency.Type |
ชนิดข้อมูลนี้มีตําแหน่งที่ตั้งคงที่สําหรับตัวคั่นทศนิยม ตัวคั่นทศนิยมแสดงตัวเลขทศนิยมสี่หลักทางด้านขวาและแสดงตัวเลขนัยสําคัญ 19 หลักเสมอ ค่ามากที่สุดที่สามารถแสดงได้คือ 922,337,203,685,477.5807 (บวกหรือลบ) ซึ่งแตกต่างจาก Decimal.Type Currency.Type จะแม่นยําเสมอและเป็นประโยชน์ในกรณีที่การกระทบยอดของเครื่องหมายจุดทศนิยมลอยตัวอาจทําให้เกิดข้อผิดพลาดได้ |
Percentage.Type |
โดยพื้นฐานแล้วจะเหมือนกับ Decimal.Type แต่จะมีรูปแบบสําหรับจัดรูปแบบค่าเป็นค่าเปอร์เซ็นต์ |
Int8.Type |
แสดงค่าจํานวนเต็มที่มีเครื่องหมาย 8 บิต (หนึ่งไบต์) เนื่องจากเป็นจํานวนเต็ม จึงไม่มีตัวเลขทางด้านขวาของทศนิยม อนุญาตให้มี 3 หลัก จํานวนเต็มบวกหรือลบระหว่าง –128 และ 127 เช่นเดียวกับ Currency.Type Int8.Type จะมีประโยชน์ในกรณีที่คุณจําเป็นต้องควบคุมการปัดเศษขึ้น |
Int16.Type |
แสดงค่าจํานวนเต็มที่มีเครื่องหมาย 16 บิต (สองไบต์) เนื่องจากเป็นจํานวนเต็ม จึงไม่มีตัวเลขทางด้านขวาของทศนิยม อนุญาตให้ใช้ตัวเลข 6 หลัก จํานวนเต็มบวกหรือลบระหว่าง –32,768 (–2^15) และ 32,767 (2^15-1) เช่นเดียวกับ Currency.Type Int16.Type จะมีประโยชน์ในกรณีที่คุณจําเป็นต้องควบคุมการปัดเศษขึ้น |
Int32.Type |
แสดงค่าจํานวนเต็มที่มีเครื่องหมาย 32 บิต (สี่ไบต์) เนื่องจากเป็นจํานวนเต็ม จึงไม่มีตัวเลขทางด้านขวาของทศนิยม อนุญาตให้มี 10 หลัก จํานวนเต็มบวกหรือลบระหว่าง –2,147,483,648 (–2^31) และ 2,147,483,647 (2^31–1) เช่นเดียวกับ Currency.Type Int32.Type จะมีประโยชน์ในกรณีที่คุณจําเป็นต้องควบคุมการปัดเศษขึ้น |
Int64.Type |
แสดงค่าจํานวนเต็มที่มีเครื่องหมาย 64 บิต (แปดไบต์) เนื่องจากเป็นจํานวนเต็ม จึงไม่มีตัวเลขทางด้านขวาของทศนิยม อนุญาตให้มี 19 หลัก จํานวนเต็มบวกหรือลบระหว่าง –9,223,372,036,854,775,808 (–2^63) และ 9,223,372,036,854,775,807 (2^63–1) ซึ่งสามารถแสดงความแม่นยําที่มากที่สุดเท่าที่เป็นไปได้ของชนิดข้อมูลตัวเลขต่างๆ เช่นเดียวกับ Currency.Type Int64.Type จะมีประโยชน์ในกรณีที่คุณจําเป็นต้องควบคุมการปัดเศษขึ้น |
Byte.Type |
แสดงค่าจํานวนเต็มที่ไม่มีเครื่องหมาย 8 บิต (หนึ่งไบต์) เนื่องจากเป็นจํานวนเต็มที่ไม่มีเครื่องหมาย จึงไม่มีตัวเลขทางด้านขวาของตําแหน่งทศนิยมและสามารถมีค่าบวกได้เท่านั้น อนุญาตให้มี 3 หลัก จํานวนบวกระหว่าง 0 และ 255 |
Single.Type |
แสดงจํานวนจุดทศนิยมลอยตัวความแม่นยําเดียว ซึ่งมีช่วงประมาณ –3.99 X 1038 ถึง 3.99 X 1038 และรองรับความแม่นยําประมาณ 9 หลัก นอกจากนี้ยังสามารถแสดงค่าอินฟินิตี้ด้านบวกและลบ และ NaN (ไม่ใช่ตัวเลข) |
Double.Type |
แสดงจํานวนจุดทศนิยมลอยตัวความแม่นยําสองเท่า ซึ่งมีช่วงประมาณ –1.7976931348623158 X 10307 ถึง 1.7976931348623158 X 10307 และรองรับความแม่นยําประมาณ 17 หลัก นอกจากนี้ยังสามารถแสดงค่าอินฟินิตี้ด้านบวกและลบ และ NaN (ไม่ใช่ตัวเลข) |
Guid.Type |
แสดงค่าข้อความ 128 บิตที่ประกอบด้วยค่าเลขฐานสิบหก 32 ค่าโดยใช้ปัจจัยฟอร์มของค่าฐานสิบหก <8 ค่าฐานสิบหก>-<4 ค่าฐานสิบหก>- ค่า hex<4>-<4 ค่าเลขหก>- ค่า hex<12>ซึ่งสร้างค่า GUID |
none |
ชนิดข้อมูลที่ไม่ได้จัดประเภทไม่มีค่า |
ค่า *.Type
ที่ใช้บ่อยอื่น ๆ เท่านั้นที่มีการแจงนับ สําหรับข้อมูลเพิ่มเติม ไปที่การแจงนับ
ชนิดการแปลง
ภาษาสูตร Power Query M มีสูตรสําหรับแปลงประเภทต่างๆ ต่อไปนี้คือข้อมูลสรุปของสูตรการแปลงใน M
หมายเลข
ชนิดการแปลง | คำอธิบาย |
---|---|
Number.FromText(ข้อความเป็นข้อความ) เป็นตัวเลข | แสดงค่าตัวเลขจากค่าข้อความ |
Number.ToText(ตัวเลขเป็นตัวเลข) เป็นข้อความ | แสดงค่าข้อความจากค่าตัวเลข |
Number.From(เป็นค่าใดๆ) เป็นตัวเลข | แสดงค่าตัวเลขจากค่า |
Byte.From(เป็นค่าใดๆ) เป็นตัวเลข | ส่งกลับค่าจํานวนเต็ม 8 บิตจากค่าที่กําหนดให้ |
Int8.From(เป็นค่าใดๆ) เป็นตัวเลข | ส่งกลับค่าจํานวนเต็ม 8 บิตจากค่าที่กําหนดให้ |
Int16.From(เป็นค่าใดๆ) เป็นตัวเลข | ส่งกลับค่าจํานวนเต็ม 16 บิตจากค่าที่กําหนดให้ |
Int32.From(เป็นค่าใดๆ) เป็นตัวเลข | ส่งกลับค่าจํานวนเต็ม 32 บิตจากค่าที่กําหนดให้ |
Int64.From(เป็นค่าใดๆ) เป็นตัวเลข | ส่งกลับค่าจํานวนเต็ม 64 บิตจากค่าที่กําหนดให้ |
Single.From(เป็นค่าใดๆ) เป็นตัวเลข | ส่งกลับค่าตัวเลขเดียวจากค่าที่กําหนดให้ |
Double.From(เป็นค่าใดๆ) เป็นตัวเลข | ส่งกลับค่าตัวเลข Double จากค่าที่กําหนดให้ |
Decimal.From(เป็นค่าใดๆ) เป็นตัวเลข | แสดงค่าตัวเลขทศนิยมจากค่าที่กําหนดให้ |
Currency.From(เป็นค่าใดๆ) เป็นตัวเลข | ส่งกลับค่าตัวเลขสกุลเงินจากค่าที่กําหนดให้ |
Percentage.From(เป็นค่าใดๆ) เป็นตัวเลข | ส่งกลับค่าตัวเลขเปอร์เซ็นต์จากค่าที่กําหนดให้ |
ข้อความ
ชนิดการแปลง | คำอธิบาย |
---|---|
Text.From(เป็นค่าใดๆ) เป็นข้อความ | แสดงข้อความของตัวเลข วันที่ เวลา วันที่เวลา โซนวันที่เวลา ตรรกะ ระยะเวลา หรือค่าไบนารี |
Guid.From(ค่าเป็นข้อความ) เป็นข้อความ | แสดงการแสดง GUID ของข้อความที่ระบุ |
ตรรกะ
ชนิดการแปลง | คำอธิบาย |
---|---|
Logical.FromText(ข้อความเป็นข้อความ) เป็นตรรกะ | แสดงค่าตรรกะจริงหรือเท็จจากค่าข้อความ |
Logical.ToText(ตรรกะเป็นตรรกะ) เป็นข้อความ | แสดงค่าข้อความจากค่าตรรกะ |
Logical.From(เป็นค่าใดๆ) เป็นตรรกะ | แสดงค่าตรรกะจากค่า |
วันที่ เวลา วันที่เวลา และวันที่เขตเวลา
ชนิดการแปลง | คำอธิบาย |
---|---|
. FromText(ข้อความเป็นข้อความ) เป็นวันที่ เวลา วันที่เวลา หรือวันที่เขตเวลา | แสดงค่าวันที่ เวลา วันที่เวลา หรือวันที่เขตเวลาจากชุดของรูปแบบวันที่และค่าวัฒนธรรม |
. ToText(วันที่ เวลา วันที่เวลา หรือวันที่เขตเวลา เป็นวันที่ เวลา วันที่เวลา หรือวันที่เขตเวลา) เป็นข้อความ | แสดงค่าข้อความจากค่าวันที่ เวลา วันที่เวลา หรือวันที่เขตเวลา |
. From(เป็นค่าใดๆ) | แสดงค่าวันที่ เวลา วันที่เวลา หรือวันที่เขตเวลาจากค่า |
. ToRecord(วันที่ เวลา วันที่เวลา หรือวันที่เขตเวลา เป็นวันที่ เวลา วันที่เวลา หรือวันที่เขตเวลา) | แสดงเรกคอร์ดที่มีส่วนของค่าวันที่ เวลา วันที่เวลา หรือวันที่เขตเวลา |