หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
บทความนี้อธิบายชนิดข้อมูลที่ Power BI และนิพจน์การวิเคราะห์ข้อมูล (DAX) สนับสนุน
เมื่อ Power BI โหลดข้อมูล Power BI จะพยายามแปลงชนิดข้อมูลของคอลัมน์ต้นฉบับเป็นชนิดข้อมูลที่สนับสนุนการจัดเก็บ การคํานวณ และการแสดงข้อมูลด้วยภาพที่มีประสิทธิภาพมากขึ้น ตัวอย่างเช่น ถ้าคอลัมน์ของค่าที่คุณนําเข้าจาก Excel ไม่มีค่าเศษส่วน Power BI จะแปลงคอลัมน์ข้อมูลเป็นชนิดข้อมูล จํานวนเต็ม ซึ่งเหมาะกว่าสําหรับการจัดเก็บจํานวนเต็ม
แนวคิดนี้มีความสําคัญเนื่องจากฟังก์ชัน DAX บางฟังก์ชันมีข้อกําหนดชนิดข้อมูลพิเศษ ในหลายกรณี DAX แปลงชนิดข้อมูลโดยปริยาย แต่ในบางกรณีจะไม่แปลง ตัวอย่างเช่น ถ้าฟังก์ชัน DAX ต้องการชนิดข้อมูล วันที่ แต่ชนิดข้อมูลสําหรับคอลัมน์ของคุณคือ ข้อความ ฟังก์ชัน DAX จะทํางานไม่ถูกต้อง ดังนั้นจึงเป็นสิ่งสําคัญและมีประโยชน์ในการใช้ชนิดข้อมูลที่ถูกต้องสําหรับคอลัมน์
กําหนดและระบุชนิดข้อมูลของคอลัมน์
ใน Power BI คุณสามารถกําหนดและระบุชนิดข้อมูลของคอลัมน์ในตัวแก้ไข Power Query ในมุมมองตาราง หรือในมุมมองรายงาน:
ในตัวแก้ไข Power Query เลือกคอลัมน์ แล้วเลือก ชนิดข้อมูล ในกลุ่ม แปลง ของ Ribbon
ในมุมมองตารางหรือมุมมองรายงาน ให้เลือกคอลัมน์ แล้วเลือกลูกศรดรอปดาวน์ถัดจาก ชนิดข้อมูล บนแท็บ เครื่องมือคอลัมน์ ของ Ribbon
คุณยังสามารถตั้งค่าชนิดข้อมูลในโค้ด Power Query M ได้โดยใช้ตัวแก้ไขขั้นสูง สําหรับข้อมูลเพิ่มเติมเกี่ยวกับชนิดข้อมูล M และTable.TransformColumnTypesฟังก์ชัน โปรดดู ชนิดข้อมูลใน Power Query และ ชนิดและการแปลงชนิด
การเลือกดรอปดาวน์ ชนิดข้อมูล ในตัวแก้ไข Power Query มีชนิดข้อมูลสองชนิดที่ไม่มีอยู่ในมุมมองตารางหรือมุมมองรายงาน: วันที่/เวลา/เขตเวลา และ ระยะเวลา เมื่อคุณโหลดคอลัมน์ที่มีชนิดข้อมูลเหล่านี้ลงในแบบจําลอง Power BI คอลัมน์วันที่/เวลา/เขตเวลาจะแปลงเป็นชนิดข้อมูลวันที่/เวลาและคอลัมน์ระยะเวลาจะแปลงเป็นชนิดข้อมูลตัวเลขทศนิยม
ชนิดข้อมูล ไบนารี ไม่ได้รับการสนับสนุนภายนอกตัวแก้ไข Power Query ในตัวแก้ไข Power Query คุณสามารถใช้ชนิดข้อมูลไบ นารี เมื่อคุณโหลดไฟล์ไบนารีถ้าคุณแปลงเป็นชนิดข้อมูลอื่นก่อนที่จะโหลดลงในแบบจําลอง Power BI การเลือก ไบนารี มีอยู่ในเมนูมุมมองตารางและมุมมองรายงานด้วยเหตุผลดั้งเดิม แต่ถ้าคุณพยายามโหลดคอลัมน์ ไบนารี ลงในแบบจําลอง Power BI คุณอาจพบข้อผิดพลาด
ประเภทตัวเลข
Power BI สนับสนุนตัวเลขสามชนิด: เลขทศนิยม เลขทศนิยมคงที่ และ จํานวนเต็ม
คุณสามารถใช้คุณสมบัติคอลัมน์ DataType แบบจําลองวัตถุแบบตาราง (TOM) เพื่อระบุ DataType Enums สําหรับชนิดตัวเลข สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการปรับเปลี่ยนวัตถุโดยทางโปรแกรมใน Power BI โปรดดู ตั้งโปรแกรมแบบจําลองความหมาย Power BI ด้วยแบบจําลองวัตถุแบบตาราง
เลขทศนิยม
เลขทศนิยม เป็นประเภทตัวเลขที่พบบ่อยที่สุด และสามารถจัดการตัวเลขที่มีค่าเศษส่วนและจํานวนเต็มได้ เลขทศนิยมแสดงถึงตัวเลขทศนิยม 64 บิต (แปดไบต์) ที่มีค่าลบตั้งแต่ -1.79E +308 ถึง -2.23E -308 ค่าบวกตั้งแต่ 2.23E -308 ถึง 1.79E +308 และ 0 ตัวเลขเช่น 34, 34.01 และ 34.000367063 เป็นตัวเลขทศนิยมที่ถูกต้อง
ความแม่นยําสูงสุดที่ชนิด ตัวเลขทศนิยม สามารถแสดงได้คือ 15 หลัก ตัวคั่นทศนิยมสามารถเกิดขึ้นที่ใดก็ได้ในตัวเลข ชนิดนี้สอดคล้องกับวิธีที่ Excel จัดเก็บตัวเลข และ TOM ระบุชนิด DataType.Double นี้เป็น Enum
เลขทศนิยมคงที่
ชนิดข้อมูล เลขทศนิยมคงที่ มีตําแหน่งคงที่สําหรับตัวคั่นทศนิยม ตัวคั่นทศนิยมจะมีตัวเลขสี่หลักทางด้านขวาเสมอ และอนุญาตให้มีนัยสําคัญ 19 หลัก ค่าที่ใหญ่ที่สุดที่เลขทศนิยมคงที่สามารถแสดงได้คือบวกหรือลบ 922,337,203,685,477.5807
ชนิด ตัวเลขทศนิยมคงที่ มีประโยชน์ในกรณีที่การปัดเศษอาจทําให้เกิดข้อผิดพลาด ตัวเลขที่มีค่าเศษส่วนน้อยบางครั้งอาจสะสมและบังคับให้ตัวเลขไม่ถูกต้องเล็กน้อย ชนิด เลขทศนิยมคงที่ สามารถช่วยคุณหลีกเลี่ยงข้อผิดพลาดประเภทนี้ได้โดยการตัดทอนค่าผ่านตัวเลขสี่หลักทางด้านขวาของตัวคั่นทศนิยม
ชนิดข้อมูลนี้สอดคล้องกับท ศนิยม (19,4) ของ SQL Server หรือชนิดข้อมูล สกุลเงิน ใน Analysis Services และ Power Pivot ใน Excel TOM ระบุชนิด DataType.Decimal นี้เป็น Enum
จำนวนเต็ม
จํานวนเต็ม แสดงถึงค่าจํานวนเต็ม 64 บิต (แปดไบต์) เนื่องจากเป็นจํานวนเต็ม จํานวนเต็ม จึงไม่มีตัวเลขทางด้านขวาของตําแหน่งทศนิยม ประเภทนี้อนุญาตให้มีจํานวนเต็มบวกหรือลบ 19 หลักระหว่าง -9,223,372,036,854,775,807 (-2^63+1) และ 9,223,372,036,854,775,806 (2^63-2) ดังนั้นจึงสามารถแสดงจํานวนที่มากที่สุดเท่าที่จะเป็นไปได้ของประเภทข้อมูลตัวเลข
เช่นเดียวกับชนิด ทศนิยมคงที่ ชนิด จํานวนเต็ม จะมีประโยชน์เมื่อคุณต้องการควบคุมการปัดเศษ TOM แสดงชนิดข้อมูล จํานวนเต็ม เป็น DataType.Int64 Enum
Note
แบบจําลองข้อมูล Power BI สนับสนุนค่าจํานวนเต็ม 64 บิต แต่เนื่องจากข้อจํากัดของ JavaScript วิชวล Power BI จํานวนมากที่สุดสามารถแสดงได้อย่างปลอดภัยคือ 9,007,199,254,740,991 (2^53-1) ถ้าแบบจําลองข้อมูลของคุณมีตัวเลขที่ใหญ่กว่า คุณสามารถลดขนาดได้ผ่านการคํานวณก่อนที่คุณจะเพิ่มลงในวิชวล
ความแม่นยําของการคํานวณประเภทตัวเลข
ค่าคอลัมน์ของชนิดข้อมูล เลขทศนิยม จะถูกจัดเก็บเป็นชนิดข้อมูล โดยประมาณ ตามมาตรฐาน IEEE 754 สําหรับตัวเลขทศนิยม ชนิดข้อมูลโดยประมาณมีข้อจํากัดด้านความแม่นยําโดยธรรมชาติ เนื่องจากแทนที่จะจัดเก็บค่าตัวเลขที่แน่นอน อาจจัดเก็บค่าประมาณที่ใกล้เคียงกันมากหรือปัดเศษ
การสูญเสียความแม่นยําหรือ ความไม่แม่นยําอาจเกิดขึ้นได้หากค่าทศนิยมไม่สามารถหาปริมาณตัวเลขทศนิยมได้อย่างน่าเชื่อถือ ความไม่แม่นยําอาจปรากฏเป็นผลการคํานวณที่ไม่คาดคิดหรือไม่ถูกต้องในบางสถานการณ์การรายงาน
การคํานวณการเปรียบเทียบที่เกี่ยวข้องกับความเท่าเทียมกันระหว่างค่าของชนิดข้อมูล เลขทศนิยม อาจส่งคืนผลลัพธ์ที่ไม่คาดคิด การเปรียบเทียบความเท่าเทียมกันรวมถึงเท่ากับ =, มากกว่า >, น้อยกว่า <, มากกว่าหรือเท่ากับ >=, และน้อยกว่าหรือเท่ากับ <=.
ปัญหานี้ชัดเจนที่สุดเมื่อคุณใช้ ฟังก์ชัน RANKX ในนิพจน์ DAX ซึ่งคํานวณผลลัพธ์สองครั้ง ซึ่งส่งผลให้ตัวเลขต่างกันเล็กน้อย ผู้ใช้รายงานอาจไม่สังเกตเห็นความแตกต่างระหว่างตัวเลขสองตัว แต่ผลลัพธ์การจัดอันดับอาจไม่ถูกต้องอย่างเห็นได้ชัด เพื่อหลีกเลี่ยงผลลัพธ์ที่ไม่คาดคิด คุณสามารถเปลี่ยนชนิดข้อมูลคอลัมน์จากเลขทศนิยมเป็น เลขทศนิยมคงที่ หรือ จํานวนเต็ม หรือทําการปัดเศษแบบบังคับโดยใช้ ROUND ชนิดข้อมูล เลขทศนิยมคงที่ มีความแม่นยํามากกว่า เนื่องจากตัวคั่นทศนิยมจะมีตัวเลขสี่หลักอยู่ทางด้านขวาเสมอ
การคํานวณที่รวมค่าของคอลัมน์ของชนิดข้อมูล ตัวเลขทศนิยม สามารถส่งกลับผลลัพธ์ที่ไม่คาดคิดได้ ผลลัพธ์นี้น่าจะเกิดขึ้นกับคอลัมน์ที่มีทั้งจํานวนบวกและจํานวนลบจํานวนมาก ผลลัพธ์ผลรวมจะได้รับผลกระทบจากการกระจายของค่าในแถวในคอลัมน์
หากการคํานวณที่จําเป็นรวมจํานวนบวกส่วนใหญ่ก่อนที่จะรวมจํานวนลบส่วนใหญ่ผลรวมบางส่วนที่เป็นบวกขนาดใหญ่ในตอนเริ่มต้นอาจทําให้ผลลัพธ์บิดเบือนได้ ถ้าการคํานวณเกิดขึ้นเพื่อเพิ่มตัวเลขบวกและลบที่สมดุล แบบสอบถามจะยังคงมีความแม่นยํามากขึ้น และส่งกลับผลลัพธ์ที่แม่นยํายิ่งขึ้น เพื่อหลีกเลี่ยงผลลัพธ์ที่ไม่คาดคิดคุณสามารถเปลี่ยนชนิดข้อมูลคอลัมน์จากเลขทศนิยมเป็น เลขทศนิยมคงที่ หรือ จํานวนเต็ม.
ชนิดวันที่/เวลา
Power BI สนับสนุนชนิดข้อมูลวันที่/เวลาห้าชนิดในตัวแก้ไข Power Query ทั้ง วันที่/เวลา/เขตเวลา และ ระยะเวลา จะถูกแปลงระหว่างการโหลดเป็นแบบจําลองข้อมูล ดังนี้:
วันที่/เวลา แสดงถึงทั้งค่าวันที่และเวลา ค่า วันที่/เวลา พื้นฐานจะถูกเก็บไว้เป็น ตัวเลขทศนิยม ดังนั้นคุณจึงสามารถแปลงระหว่างสองค่าได้ ส่วนเวลาจะถูกเก็บเป็นเศษส่วนของทวีคูณทั้งหมดของ 1/300 วินาที (3.33 มิลลิวินาที) ชนิดข้อมูลสนับสนุนวันที่ระหว่างปี 1900 และ 9999
วันที่ แสดงเป็นเพียงวันที่ที่ไม่มีส่วนเวลา วันที่แปลงเป็นแบบจําลองเป็นค่าวันที่/เวลาโดยมีศูนย์สําหรับค่าเศษส่วน
เวลา แสดงเวลาที่ไม่มีส่วนวันที่ A เวลา จะแปลงเป็นแบบจําลองเป็นค่า วันที่/เวลา โดยไม่มีตัวเลขทางด้านซ้ายของจุดทศนิยม
วันที่/เวลา/เขตเวลา แสดงถึงวันที่/เวลา UTC ที่มีออฟเซ็ตเขตเวลา และแปลงเป็น วันที่/เวลา เมื่อโหลดลงในแบบจําลอง แบบจําลอง Power BI ไม่ได้ปรับโซนเวลาตามตําแหน่งที่ตั้งหรือตําแหน่งที่ตั้งของผู้ใช้ ค่า 09:00 ที่โหลดลงในแบบจําลองในสหรัฐอเมริกาจะแสดงเป็น 09:00 เมื่อใดก็ตามที่เปิดหรือดูรายงาน
ระยะเวลา แสดงถึงระยะเวลา และแปลงเป็น ตัวเลขทศนิยม เมื่อโหลดลงในโมเดล ดังนั้น คุณสามารถเพิ่มหรือลบค่าจากค่า วันที่/เวลา ด้วยผลลัพธ์ที่ถูกต้อง และใช้ในการแสดงภาพที่แสดงขนาดได้อย่างง่ายดาย
Note
คุณสามารถจัดรูปแบบค่า วันที่/เวลา ที่แปลงแล้วในแบบจําลองเป็น วันที่ หรือ เวลา โดยใช้ UI ชนิดข้อมูลในมุมมองรายงาน ตาราง และแบบจําลอง โปรดทราบว่าการจัดรูปแบบจะไม่เปลี่ยนวิธีการจัดเก็บข้อมูลในแบบจําลอง และการคํานวณหรือความสัมพันธ์ใดๆ ยังคงได้รับการประเมินด้วยข้อมูล วันที่/เวลา ที่จัดเก็บไว้ โดยไม่ขึ้นกับการจัดรูปแบบ
ประเภทข้อความ
ชนิดข้อมูล ข้อความ เป็นสตริงข้อมูลอักขระ Unicode ซึ่งอาจเป็นตัวอักษร ตัวเลข หรือวันที่ที่แสดงในรูปแบบข้อความ ขีดจํากัดสูงสุดในทางปฏิบัติสําหรับความยาวของสตริงคือประมาณ 32,000 อักขระ Unicode โดยยึดตามกลไกจัดการ Power Query พื้นฐานของ Power BI และขีดจํากัดเกี่ยวกับความยาวของชนิดข้อมูลข้อความ ชนิดข้อมูลข้อความที่เกินขีดจํากัดสูงสุดในทางปฏิบัติมีแนวโน้มที่จะส่งผลให้เกิดข้อผิดพลาด
วิธีที่ Power BI จัดเก็บข้อมูลข้อความอาจทําให้ข้อมูลแสดงแตกต่างกันในบางสถานการณ์ ส่วนถัดไปจะอธิบายสถานการณ์ทั่วไปที่อาจทําให้ข้อมูล ข้อความ เปลี่ยนลักษณะที่ปรากฏเล็กน้อยระหว่างการคิวรีข้อมูลในตัวแก้ไข Power Query และการโหลดลงใน Power BI
การใช้ตัวพิมพ์ใหญ่-เล็ก
กลไกจัดการที่จัดเก็บและคิวรีข้อมูลใน Power BI ไม่ คํานึงถึงตัวพิมพ์ใหญ่และตัวพิมพ์ใหญ่ และถือว่าการใช้ตัวพิมพ์ใหญ่ที่แตกต่างกันของตัวอักษรเป็นค่าเดียวกัน "A" เท่ากับ "a" อย่างไรก็ตาม Power Query คํานึงถึง ตัวพิมพ์เล็กและใหญ่ โดยที่ "A" ไม่เหมือนกับ "a" ความแตกต่างในความสําคัญของตัวพิมพ์เล็กและตัวพิมพ์ใหญ่อาจนําไปสู่สถานการณ์ที่ข้อมูลข้อความเปลี่ยนตัวพิมพ์ใหญ่อย่างอธิบายไม่ได้หลังจากโหลดลงใน Power BI
ตัวอย่างต่อไปนี้แสดงข้อมูลใบสั่ง: คอลัมน์ OrderNo ที่ไม่ซ้ํากันสําหรับแต่ละใบสั่ง และคอลัมน์ ผู้รับ ที่แสดงชื่อผู้รับที่ป้อนด้วยตนเองในเวลาสั่งซื้อ ตัวแก้ไข Power Query แสดงคําสั่งซื้อหลายใบที่มีชื่อ ผู้รับเดียวกัน ที่ป้อนลงในระบบด้วยตัวพิมพ์ใหญ่ที่แตกต่างกัน
หลังจาก Power BI โหลดข้อมูล การใช้ตัวพิมพ์ใหญ่ของชื่อที่ซ้ํากันในแท็บ ข้อมูล จะเปลี่ยนจากรายการเดิมเป็นตัวแปรตัวพิมพ์ใหญ่ตัวใดตัวหนึ่ง
การเปลี่ยนแปลงนี้เกิดขึ้นเนื่องจากตัวแก้ไข Power Query คํานึงถึงตัวพิมพ์เล็กและใหญ่ ดังนั้นจึงแสดงข้อมูลตรงตามที่จัดเก็บไว้ในระบบต้นทาง กลไกจัดการที่จัดเก็บข้อมูลใน Power BI ไม่คํานึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ดังนั้นจึงถือว่าอักขระเวอร์ชันตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เหมือนกัน ข้อมูล Power Query ที่โหลดลงในกลไกจัดการ Power BI สามารถเปลี่ยนแปลงได้ตามนั้น
กลไกจัดการ Power BI จะประเมินแต่ละแถวแยกกันเมื่อโหลดข้อมูล โดยเริ่มจากด้านบน สําหรับแต่ละคอลัมน์ข้อความ เช่น ผู้รับ กลไกจัดการจะจัดเก็บพจนานุกรมของค่าที่ไม่ซ้ํากัน เพื่อปรับปรุงประสิทธิภาพผ่านการบีบอัดข้อมูล กลไกจัดการจะเห็นค่าสามค่าแรกในคอลัมน์ ผู้รับ ไม่ซ้ํากัน และเก็บไว้ในพจนานุกรม หลังจากนั้น เนื่องจากเอ็นจิ้นไม่คํานึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ จึงประเมินชื่อว่าเหมือนกัน
เอ็นจิ้นเห็นว่าชื่อ "Taina Hasu" เหมือนกับ "TAINA HASU" และ "Taina HASU" ดังนั้นจึงไม่เก็บรูปแบบเหล่านั้น แต่หมายถึงรูปแบบแรกที่เก็บไว้ ชื่อ "MURALI DAS" ปรากฏเป็นตัวพิมพ์ใหญ่ เพราะนั่นคือลักษณะที่ชื่อปรากฏในครั้งแรกที่เอ็นจิ้นประเมินเมื่อโหลดข้อมูลจากบนลงล่าง
ภาพนี้แสดงกระบวนการประเมินผล:
ในตัวอย่างก่อนหน้านี้ กลไกจัดการ Power BI จะโหลดข้อมูลแถวแรก สร้างพจนานุกรม ผู้รับ และเพิ่ม Taina Hasu ลงในนั้น กลไกจัดการยังเพิ่มการอ้างอิงไปยังค่านั้นในคอลัมน์ ผู้รับ บนตารางที่โหลด กลไกจัดการจะทําเช่นเดียวกันกับแถวที่สองและแถวที่สาม เนื่องจากชื่อเหล่านี้ไม่เทียบเท่ากับชื่ออื่นๆ เมื่อละเว้นกรณี
สําหรับแถวที่สี่ เอ็นจิ้นจะเปรียบเทียบค่ากับชื่อในพจนานุกรมและค้นหาชื่อ เนื่องจากเอ็นจิ้นไม่คํานึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ "TAINA HASU" และ "Taina Hasu" จึงเหมือนกัน กลไกจัดการไม่ได้เพิ่มชื่อใหม่ลงในพจนานุกรม แต่อ้างถึงชื่อที่มีอยู่ กระบวนการเดียวกันนี้เกิดขึ้นกับแถวที่เหลือ
สําคัญ
เนื่องจากกลไกจัดการที่จัดเก็บและคิวรีข้อมูลใน Power BI ไม่คํานึงถึงตัวพิมพ์เล็กและใหญ่ โปรดใช้ความระมัดระวังเป็นพิเศษเมื่อคุณทํางานในโหมด DirectQuery ด้วยแหล่งข้อมูลที่คํานึงถึงตัวพิมพ์เล็กและใหญ่ Power BI ถือว่าแหล่งที่มาได้กําจัดแถวที่ซ้ํากัน เนื่องจาก Power BI ไม่คํานึงถึงตัวพิมพ์เล็กและใหญ่ จึงถือว่าค่าสองค่าที่แตกต่างกันตามตัวพิมพ์ใหญ่และตัวพิมพ์ใหญ่เป็นค่าที่ซ้ํากัน ในกรณีเช่นนี้ ผลลัพธ์สุดท้ายจะไม่ถูกกําหนดไว้
เพื่อหลีกเลี่ยงสถานการณ์นี้ ถ้าคุณใช้โหมด DirectQuery กับแหล่งข้อมูลที่ตรงตามตัวพิมพ์เล็กและใหญ่ ให้ปรับตัวพิมพ์ใหญ่ให้เป็นมาตรฐานในคิวรีต้นฉบับหรือในตัวแก้ไข Power Query
ช่องว่างนําหน้าและต่อท้าย
กลไกจัดการ Power BI จะตัดช่องว่างต่อท้ายที่ติดตามข้อมูลข้อความโดยอัตโนมัติ แต่จะไม่ลบช่องว่างนําหน้าข้อมูล เพื่อหลีกเลี่ยงความสับสนเมื่อคุณทํางานกับข้อมูลที่มีช่องว่างนําหน้าหรือต่อท้ายคุณควรใช้ฟังก์ชัน Text.Trim เพื่อลบช่องว่างที่จุดเริ่มต้นหรือจุดสิ้นสุดของข้อความ ถ้าคุณไม่ลบช่องว่างนําหน้า ความสัมพันธ์อาจล้มเหลวในการสร้างเนื่องจากค่าที่ซ้ํากัน หรือวิชวลอาจส่งกลับผลลัพธ์ที่ไม่คาดคิด
ตัวอย่างต่อไปนี้แสดงข้อมูลเกี่ยวกับลูกค้า: คอลัมน์ ชื่อ ที่มีชื่อของลูกค้า และคอลัมน์ ดัชนี ที่ไม่ซ้ํากันสําหรับแต่ละรายการ ชื่อจะปรากฏในเครื่องหมายคําพูดเพื่อความชัดเจน ชื่อลูกค้าจะซ้ําสี่ครั้ง แต่แต่ละครั้งจะมีการผสมผสานระหว่างช่องว่างนําหน้าและต่อท้ายที่แตกต่างกัน การเปลี่ยนแปลงเหล่านี้สามารถเกิดขึ้นได้กับการป้อนข้อมูลด้วยตนเองเมื่อเวลาผ่านไป
| Row | พื้นที่ชั้นนํา | ช่องว่างต่อท้าย | Name | Index | ความยาวของข้อความ |
|---|---|---|---|---|---|
| 1 | No | No | "ดีแลน วิลเลียมส์" | 1 | 14 |
| 2 | No | Yes | "ดีแลน วิลเลียมส์" | 10 | 15 |
| 3 | Yes | No | " ดีแลน วิลเลียมส์" | 20 | 15 |
| 4 | Yes | Yes | " ดีแลน วิลเลียมส์ " | 40 | 16 |
ในตัวแก้ไข Power Query ข้อมูลผลลัพธ์จะปรากฏดังนี้
เมื่อคุณไปที่แท็บ ตาราง ใน Power BI หลังจากที่คุณโหลดข้อมูล ตารางเดียวกันจะมีลักษณะเหมือนรูปต่อไปนี้ โดยมีจํานวนแถวเท่ากันกับก่อนหน้านี้
อย่างไรก็ตาม วิชวลที่ยึดตามข้อมูลนี้จะส่งกลับเพียงสองแถว
ในรูปก่อนหน้า แถวแรกมีค่ารวม 60 สําหรับเขตข้อมูล ดัชนี ดังนั้นแถวแรกในวิชวลจึงแสดงถึงสองแถวสุดท้ายของข้อมูลที่โหลด แถวที่สองที่มีค่า ดัชนี รวมเป็น 11 แสดงถึงสองแถวแรก ความแตกต่างของจํานวนแถวระหว่างวิชวลและตารางข้อมูลเกิดจากกลไกจัดการลบหรือตัดแต่งช่องว่างต่อท้ายโดยอัตโนมัติ แต่ไม่ใช่ช่องว่างนําหน้า ดังนั้นกลไกจัดการจะประเมินแถวแรกและแถวที่สอง และแถวที่สามและสี่ว่าเหมือนกัน และวิชวลจะส่งกลับผลลัพธ์เหล่านี้
ลักษณะการทํางานนี้อาจทําให้เกิดข้อความแสดงข้อผิดพลาดที่เกี่ยวข้องกับความสัมพันธ์ เนื่องจากตรวจพบค่าที่ซ้ํากัน ตัวอย่างเช่น ขึ้นอยู่กับการกําหนดค่าของความสัมพันธ์ของคุณ คุณอาจเห็นข้อผิดพลาดที่คล้ายกับรูปต่อไปนี้:
ในสถานการณ์อื่นๆ คุณอาจไม่สามารถสร้างความสัมพันธ์แบบกลุ่มต่อหนึ่งหรือหนึ่งต่อหนึ่งได้เนื่องจากตรวจพบค่าที่ซ้ํากัน
คุณสามารถติดตามข้อผิดพลาดเหล่านี้กลับไปยังช่องว่างนําหน้าหรือต่อท้าย และแก้ไขได้โดยใช้ Text.Trim หรือ Format>Trim ภายใต้ แปลง เพื่อลบช่องว่างในตัวแก้ไข Power Query
ชนิดจริง/เท็จ
ชนิดข้อมูล จริง/เท็จ เป็นค่าบูลีนของจริงหรือเท็จ เมื่อคุณโหลดคอลัมน์ที่มีข้อมูลบูลีนจริง/เท็จลงใน Power BI ให้ตั้งค่าชนิดคอลัมน์เป็น จริง/เท็จ
Power BI แปลงและแสดงข้อมูลแตกต่างกันในบางสถานการณ์ ส่วนนี้อธิบายกรณีทั่วไปของการแปลงค่าบูลีน และวิธีจัดการกับการแปลงที่สร้างผลลัพธ์ที่ไม่คาดคิดใน Power BI
ในตัวอย่างนี้ คุณจะโหลดข้อมูลว่าลูกค้าของคุณได้สมัครรับจดหมายข่าวของคุณหรือไม่ ค่า TRUE บ่งชี้ว่าลูกค้าได้ลงทะเบียนเพื่อรับจดหมายข่าว และค่า FALSE บ่งชี้ว่าลูกค้ายังไม่ได้ลงทะเบียน
อย่างไรก็ตาม เมื่อคุณเผยแพร่รายงานไปยังบริการของ Power BI คอลัมน์สถานะการสมัครรับจดหมายข่าวจะแสดง 0 และ -1 แทนที่จะเป็นค่าที่คาดไว้ของ TRUE หรือ FALSE ขั้นตอนต่อไปนี้จะอธิบายวิธีที่ Conversion นี้เกิดขึ้น และวิธีป้องกัน
แบบสอบถามแบบง่ายสําหรับตารางนี้จะปรากฏในรูปต่อไปนี้:
ชนิดข้อมูลของคอลัมน์ สมัครรับจดหมายข่าว ถูกตั้งค่าเป็น ใดๆ และด้วยเหตุนี้ Power BI จึงโหลดข้อมูลลงในแบบจําลองเป็น ข้อความ
เมื่อคุณเพิ่มการแสดงภาพอย่างง่ายที่แสดงข้อมูลโดยละเอียดต่อลูกค้า ข้อมูลจะปรากฏในวิชวลตามที่คาดไว้ ทั้งใน Power BI Desktop และเมื่อเผยแพร่ไปยังบริการของ Power BI
อย่างไรก็ตาม เมื่อคุณรีเฟรชแบบจําลองความหมายในบริการของ Power BI คอลัมน์ สมัครรับจดหมายข่าว ในวิชวลจะแสดงค่าเป็น -1 และ 0 แทนที่จะแสดงเป็น TRUE หรือ FALSE:
ถ้าคุณเผยแพร่รายงานจาก Power BI Desktop คอลัมน์ สมัครรับจดหมายข่าว อีกครั้งจะแสดง TRUE หรือ FALSE ตามที่คุณคาดไว้ แต่เมื่อมีการรีเฟรชเกิดขึ้นในบริการของ Power BI ค่าจะเปลี่ยนเป็น -1 และ 0 อีกครั้ง
วิธีแก้ปัญหาเพื่อป้องกันสถานการณ์นี้คือการตั้งค่าคอลัมน์บูลีนใดๆ ให้พิมพ์ จริง/เท็จ ใน Power BI Desktop และเผยแพร่รายงานของคุณอีกครั้ง
เมื่อคุณทําการเปลี่ยนแปลง การแสดงภาพจะแสดงค่าในคอลัมน์ สมัคร รับจดหมายข่าว แตกต่างกันเล็กน้อย แทนที่จะเป็นตัวอักษรตัวพิมพ์ใหญ่ทั้งหมดตามที่ป้อนในตาราง จะมีเพียงตัวอักษรตัวแรกเท่านั้นที่เป็นตัวพิมพ์ใหญ่ การเปลี่ยนแปลงนี้เป็นผลมาจากการเปลี่ยนชนิดข้อมูลของคอลัมน์
เมื่อคุณเปลี่ยนชนิดข้อมูล ให้เผยแพร่ไปยังบริการของ Power BI อีกครั้ง และการรีเฟรชเกิดขึ้น รายงานจะแสดงค่าเป็น จริง หรือ เท็จ ตามที่คาดไว้
เมื่อต้องการสรุป เมื่อทํางานกับข้อมูลบูลีนใน Power BI ตรวจสอบให้แน่ใจว่าคอลัมน์ของคุณถูกตั้งค่าเป็นชนิดข้อมูล จริง/เท็จ ใน Power BI Desktop
ประเภทว่างเปล่า
ว่างเปล่า เป็นชนิดข้อมูล DAX ที่แสดงและแทนที่ค่า Null ของ SQL คุณสามารถสร้างช่องว่าง โดยใช้ฟังก์ชัน BLANK และทดสอบช่องว่าง โดยใช้ฟังก์ชันตรรกะ ISBLANK
ประเภทไบนารี
คุณสามารถใช้ชนิดข้อมูล ไบนารี เพื่อแสดงข้อมูลใดๆ ด้วยรูปแบบไบนารี ในตัวแก้ไข Power Query คุณสามารถใช้ชนิดข้อมูลนี้เมื่อโหลดไฟล์ไบนารี ถ้าคุณแปลงเป็นชนิดข้อมูลอื่นก่อนที่คุณจะโหลดลงในแบบจําลอง Power BI
คอลัมน์ไบนารีไม่ได้รับการสนับสนุนในแบบจําลองข้อมูล Power BI การเลือก ไบนารี มีอยู่ในเมนูมุมมองตารางและมุมมองรายงานด้วยเหตุผลดั้งเดิม แต่ถ้าคุณพยายามโหลดคอลัมน์ไบนารีไปยังแบบจําลอง Power BI คุณอาจพบข้อผิดพลาด
Note
ถ้าคอลัมน์ไบนารีอยู่ในผลลัพธ์ของขั้นตอนของคิวรี การพยายามรีเฟรชข้อมูลผ่านเกตเวย์อาจทําให้เกิดข้อผิดพลาดได้ ขอแนะนําให้คุณลบคอลัมน์ไบนารีออกอย่างชัดเจนเป็นขั้นตอนสุดท้ายในคิวรีของคุณ
ชนิดของตาราง
DAX ใช้ชนิดข้อมูลตารางในหลายฟังก์ชัน เช่น การรวมและการคํานวณข่าวกรองเวลา ฟังก์ชันบางอย่างต้องการการอ้างอิงไปยังตาราง ฟังก์ชันอื่นๆ จะส่งกลับตารางที่คุณสามารถใช้เป็นอินพุตไปยังฟังก์ชันอื่นๆ ได้
ในบางฟังก์ชันที่ต้องใช้ตารางเป็นอินพุต คุณสามารถระบุนิพจน์ที่ประเมินเป็นตารางได้ ฟังก์ชันบางอย่างต้องการการอ้างอิงไปยังตารางฐาน สําหรับข้อมูลเกี่ยวกับข้อกําหนดของฟังก์ชันเฉพาะ ให้ดูที่ การอ้างอิงฟังก์ชัน DAX
การแปลงประเภทข้อมูลโดยนัยและชัดเจน
ฟังก์ชัน DAX แต่ละฟังก์ชันมีข้อกําหนดเฉพาะสําหรับชนิดของข้อมูลที่จะใช้เป็นอินพุตและเอาต์พุต ตัวอย่างเช่น ฟังก์ชันบางอย่างต้องการจํานวนเต็มสําหรับอาร์กิวเมนต์บางตัวและวันที่สําหรับอาร์กิวเมนต์อื่นๆ ฟังก์ชันอื่นๆ ต้องใช้ข้อความหรือตาราง
ถ้าข้อมูลในคอลัมน์ที่คุณระบุเป็นอาร์กิวเมนต์เข้ากันไม่ได้กับชนิดข้อมูลที่ฟังก์ชันต้องการ DAX อาจส่งกลับข้อผิดพลาด อย่างไรก็ตาม เมื่อใดก็ตามที่เป็นไปได้ DAX จะพยายามแปลงข้อมูลเป็นชนิดข้อมูลที่ต้องการโดยปริยาย
เช่น:
- ถ้าคุณพิมพ์วันที่เป็นสตริง DAX จะแยกวิเคราะห์สตริงและพยายามส่งเป็นรูปแบบวันที่และเวลาของ Windows รูปแบบใดรูปแบบหนึ่ง
- คุณสามารถเพิ่ม TRUE + 1 และรับผลลัพธ์ 2 ได้ เนื่องจาก DAX แปลง TRUE เป็นหมายเลข 1 โดยปริยาย และดําเนินการ 1+1
- ถ้าคุณเพิ่มค่าในสองคอลัมน์โดยมีค่าหนึ่งแสดงเป็นข้อความ ("12") และอีกค่าหนึ่งเป็นตัวเลข (12) DAX จะแปลงสตริงเป็นตัวเลขโดยปริยาย แล้วทําการบวกสําหรับผลลัพธ์ที่เป็นตัวเลข นิพจน์ = "22" + 22 ส่งกลับ 44
- ถ้าคุณพยายามเชื่อมต่อตัวเลขสองตัว DAX จะแสดงตัวเลขเหล่านั้นเป็นสตริง แล้วเชื่อมต่อกัน นิพจน์ = 12 & 34 ส่งกลับ "1234"
ตารางการแปลงข้อมูลโดยนัย
ตัวดําเนินการกําหนดชนิดของการแปลง DAX ดําเนินการโดยการแคสต์ค่าที่ต้องการก่อนที่จะดําเนินการตามที่ร้องขอ ตารางต่อไปนี้แสดงรายการตัวดําเนินการ และการแปลง DAX ทํากับแต่ละชนิดข้อมูลเมื่อจับคู่กับชนิดข้อมูลในเซลล์ที่ตัดกัน
Note
ตารางเหล่านี้ไม่มีชนิดข้อมูล ข้อความ เมื่อตัวเลขถูกแสดงในรูปแบบข้อความ ในบางกรณี Power BI จะพยายามกําหนดชนิดตัวเลขและแสดงข้อมูลเป็นตัวเลข
การบวก (+)
| INTEGER | CURRENCY | REAL | Date/time | |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | Date/time |
| CURRENCY | CURRENCY | CURRENCY | REAL | Date/time |
| REAL | REAL | REAL | REAL | Date/time |
| Date/time | Date/time | Date/time | Date/time | Date/time |
ตัวอย่างเช่น ถ้าการดําเนินการบวกใช้จํานวนจริงร่วมกับข้อมูลสกุลเงิน DAX จะแปลงค่าทั้งสองเป็น REAL และส่งกลับผลลัพธ์เป็น REAL
การลบ (-)
ในตารางต่อไปนี้ ส่วนหัวของแถวคือ minuend (ด้านซ้าย) และส่วนหัวของคอลัมน์คือ subtrahend (ด้านขวา)
| INTEGER | CURRENCY | REAL | Date/time | |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | CURRENCY | REAL | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Date/time | Date/time | Date/time | Date/time | Date/time |
ตัวอย่างเช่น ถ้าการดําเนินการลบใช้วันที่กับชนิดข้อมูลอื่นๆ DAX จะแปลงค่าทั้งสองเป็นวันที่ และค่าที่ส่งกลับก็เป็นวันที่ด้วย
Note
แบบจําลองข้อมูลสนับสนุนตัวดําเนินการแบบยูนารี - (เชิงลบ) แต่ตัวดําเนินการนี้ไม่เปลี่ยนชนิดข้อมูลของตัวถูกดําเนินการ
การคูณ (*)
| INTEGER | CURRENCY | REAL | Date/time | |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | INTEGER |
| CURRENCY | CURRENCY | REAL | CURRENCY | CURRENCY |
| REAL | REAL | CURRENCY | REAL | REAL |
ตัวอย่างเช่น ถ้าการดําเนินการคูณรวมจํานวนเต็มกับจํานวนจริง DAX จะแปลงตัวเลขทั้งสองเป็นจํานวนจริง และค่าที่ส่งกลับจะเป็น REAL ด้วย
ดิวิชั่น (/)
ในตารางต่อไปนี้ ส่วนหัวของแถวคือตัวเศษ และส่วนหัวของคอลัมน์เป็นตัวส่วน
| INTEGER | CURRENCY | REAL | Date/time | |
|---|---|---|---|---|
| INTEGER | REAL | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | REAL | CURRENCY | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Date/time | REAL | REAL | REAL | REAL |
ตัวอย่างเช่น ถ้าการดําเนินการหารรวมจํานวนเต็มกับค่าสกุลเงิน DAX จะแปลงค่าทั้งสองเป็นจํานวนจริง และผลลัพธ์ก็เป็นจํานวนจริงด้วย
ตัวดําเนินการเปรียบเทียบ
ในนิพจน์การเปรียบเทียบ DAX จะพิจารณาค่าบูลีนที่มากกว่าค่าสตริง และค่าสตริงที่มากกว่าค่าตัวเลขหรือวันที่/เวลา ตัวเลขและค่าวันที่/เวลามีอันดับเท่ากัน
DAX จะไม่ทําการแปลงโดยนัยสําหรับค่าบูลีนหรือสตริง BLANK หรือค่าว่างจะถูกแปลงเป็น 0, "" หรือ False ขึ้นอยู่กับชนิดข้อมูลของค่าที่เปรียบเทียบอื่น
นิพจน์ DAX ต่อไปนี้แสดงให้เห็นถึงลักษณะการทํางานนี้:
=IF(FALSE()>"true","Expression is true", "Expression is false")ส่งกลับ "นิพจน์เป็นจริง"=IF("12">12,"Expression is true", "Expression is false")ส่งกลับ "นิพจน์เป็นจริง"=IF("12"=12,"Expression is true", "Expression is false")ส่งกลับ "นิพจน์เป็นเท็จ"
DAX ทําการแปลงโดยนัยสําหรับชนิดตัวเลขหรือวันที่/เวลา ตามที่ตารางต่อไปนี้อธิบาย:
| Comparison Operator |
INTEGER | CURRENCY | REAL | Date/time |
|---|---|---|---|---|
| INTEGER | INTEGER | CURRENCY | REAL | REAL |
| CURRENCY | CURRENCY | CURRENCY | REAL | REAL |
| REAL | REAL | REAL | REAL | REAL |
| Date/time | REAL | REAL | REAL | Date/Time |
ช่องว่าง สตริงว่าง และค่าศูนย์
DAX แสดงค่า Null ค่าว่าง เซลล์ว่าง หรือค่าที่หายไปตามชนิดค่าใหม่เดียวกัน BLANK คุณยังสามารถสร้างช่องว่างโดยใช้ฟังก์ชัน BLANK หรือทดสอบช่องว่างโดยใช้ฟังก์ชัน ISBLANK
วิธีที่การดําเนินการ เช่น การบวกหรือการต่อกันจัดการกับช่องว่างขึ้นอยู่กับแต่ละฟังก์ชัน ตารางต่อไปนี้สรุปความแตกต่างระหว่างวิธีที่สูตร DAX และ Microsoft Excel จัดการกับช่องว่าง
| Expression | DAX | Excel |
|---|---|---|
| ว่างเปล่า + ว่างเปล่า | BLANK | 0 (ศูนย์) |
| ว่างเปล่า + 5 | 5 | 5 |
| ว่างเปล่า * 5 | BLANK | 0 (ศูนย์) |
| 5/BLANK | Infinity | Error |
| 0/BLANK | NaN | Error |
| BLANK/BLANK | BLANK | Error |
| เท็จหรือว่างเปล่า | FALSE | FALSE |
| เท็จและว่างเปล่า | FALSE | FALSE |
| จริงหรือว่างเปล่า | TRUE | TRUE |
| จริงและว่างเปล่า | FALSE | TRUE |
| ว่างเปล่าหรือว่างเปล่า | BLANK | Error |
| ว่างเปล่าและว่างเปล่า | BLANK | Error |
เนื้อหาที่เกี่ยวข้อง
คุณสามารถทําสิ่งต่างๆ ได้ทุกประเภทด้วย Power BI และข้อมูล สําหรับข้อมูลเพิ่มเติมเกี่ยวกับความสามารถของ Power BI โปรดดูแหล่งข้อมูลต่อไปนี้: