แชร์ผ่าน


ชนิดและการแปลงชนิด

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.TypeCurrency.Type จะแม่นยําเสมอและเป็นประโยชน์ในกรณีที่การกระทบยอดของเครื่องหมายจุดทศนิยมลอยตัวอาจทําให้เกิดข้อผิดพลาดได้
Percentage.Type โดยพื้นฐานแล้วจะเหมือนกับ Decimal.Typeแต่จะมีรูปแบบสําหรับจัดรูปแบบค่าเป็นค่าเปอร์เซ็นต์
Int8.Type แสดงค่าจํานวนเต็มที่มีเครื่องหมาย 8 บิต (หนึ่งไบต์) เนื่องจากเป็นจํานวนเต็ม จึงไม่มีตัวเลขทางด้านขวาของทศนิยม อนุญาตให้มี 3 หลัก จํานวนเต็มบวกหรือลบระหว่าง –128 และ 127 เช่นเดียวกับ Currency.TypeInt8.Type จะมีประโยชน์ในกรณีที่คุณจําเป็นต้องควบคุมการปัดเศษขึ้น
Int16.Type แสดงค่าจํานวนเต็มที่มีเครื่องหมาย 16 บิต (สองไบต์) เนื่องจากเป็นจํานวนเต็ม จึงไม่มีตัวเลขทางด้านขวาของทศนิยม อนุญาตให้ใช้ตัวเลข 6 หลัก จํานวนเต็มบวกหรือลบระหว่าง –32,768 (–2^15) และ 32,767 (2^15-1) เช่นเดียวกับ Currency.TypeInt16.Type จะมีประโยชน์ในกรณีที่คุณจําเป็นต้องควบคุมการปัดเศษขึ้น
Int32.Type แสดงค่าจํานวนเต็มที่มีเครื่องหมาย 32 บิต (สี่ไบต์) เนื่องจากเป็นจํานวนเต็ม จึงไม่มีตัวเลขทางด้านขวาของทศนิยม อนุญาตให้มี 10 หลัก จํานวนเต็มบวกหรือลบระหว่าง –2,147,483,648 (–2^31) และ 2,147,483,647 (2^31–1) เช่นเดียวกับ Currency.TypeInt32.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.TypeInt64.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(วันที่ เวลา วันที่เวลา หรือวันที่เขตเวลา เป็นวันที่ เวลา วันที่เวลา หรือวันที่เขตเวลา) แสดงเรกคอร์ดที่มีส่วนของค่าวันที่ เวลา วันที่เวลา หรือวันที่เขตเวลา
  • ชนิด
  • ระบบชนิดของ Power Query M