ชนิดข้อมูลใน Power BI Desktop
บทความนี้อธิบายชนิดข้อมูลที่สนับสนุน Power BI Desktop และ Data Analysis Expressions (DAX)
เมื่อ Power BI โหลดข้อมูล จะพยายามแปลงชนิดข้อมูลของคอลัมน์ต้นทางเป็นชนิดข้อมูลที่สนับสนุนการจัดเก็บข้อมูล การคํานวณ และการจัดรูปแบบการแสดงข้อมูลที่มีประสิทธิภาพมากขึ้น ตัวอย่างเช่น ถ้าคอลัมน์ของค่าที่คุณนําเข้าจาก Excel ไม่มีค่าเศษส่วน Power BI Desktop จะแปลงคอลัมน์ข้อมูลเป็นชนิดข้อมูลตัวเลขใครชนิด ซึ่งเหมาะสมกว่าสําหรับการจัดเก็บจํานวนเต็ม
แนวคิดนี้มีความสําคัญเนื่องจากฟังก์ชัน DAX บางฟังก์ชันมีข้อกําหนดชนิดข้อมูลพิเศษ ในหลายกรณี DAX จะแปลงชนิดข้อมูลโดยนัย แต่ในบางกรณีจะไม่แปลง ตัวอย่างเช่น ถ้าฟังก์ชัน DAX จําเป็นต้องมี ชนิดข้อมูลวันที่ แต่ชนิดข้อมูลสําหรับคอลัมน์ของคุณคือ ข้อความ ฟังก์ชัน DAX จะไม่ทํางานอย่างถูกต้อง ดังนั้นจึงเป็นเรื่องสําคัญและมีประโยชน์ในการใช้ชนิดข้อมูลที่ถูกต้องสําหรับคอลัมน์
กําหนดและระบุชนิดข้อมูลของคอลัมน์
ใน Power BI Desktop คุณสามารถกําหนดและระบุชนิดข้อมูลของคอลัมน์ในตัวแก้ไข Power Query ในมุมมองข้อมูล หรือในมุมมองรายงาน:
ในตัวแก้ไข Power Query ให้เลือกคอลัมน์ จากนั้นเลือกชนิดข้อมูล ในกลุ่มแปลงของ ribbon
ในมุมมองข้อมูลหรือมุมมองรายงาน ให้เลือกคอลัมน์ จากนั้นเลือกลูกศรดรอปดาวน์ที่อยู่ถัดจาก ชนิดข้อมูล บนแท็บ เครื่องมือ คอลัมน์ ของริบบอน
การเลือกดรอปดาวน์ชนิดข้อมูลใน ตัวแก้ไข Power Query มีชนิดข้อมูลสองชนิดที่ไม่อยู่ในมุมมองข้อมูลหรือมุมมองรายงาน: วันที่/เวลา/โซนเวลา และ ระยะเวลา เมื่อคุณโหลดคอลัมน์ที่มีชนิดข้อมูลเหล่านี้ลงในแบบจําลอง Power BI คอลัมน์ วันที่/เวลา/โซน เวลาจะแปลงเป็น ชนิดข้อมูลวันที่/เวลา และ คอลัมน์ระยะเวลา จะแปลงเป็น ชนิดข้อมูลตัวเลข ทศนิยม
ข้อมูลประเภทไบนารีไม่ได้รับการสนับสนุนภายนอกตัวแก้ไข Power Query ในตัวแก้ไข Power Query คุณสามารถใช้ชนิดข้อมูลไบนารีเมื่อคุณโหลดไฟล์ไบนารีถ้าคุณแปลงเป็นข้อมูลประเภทอื่นก่อนที่จะโหลดลงในแบบจําลอง Power BI การเลือก ไบนารี มีอยู่ในเมนูมุมมองข้อมูลและมุมมองรายงานสําหรับเหตุผลดั้งเดิม แต่ถ้าคุณพยายามโหลด คอลัมน์ไบนารี ลงในแบบจําลอง Power BI คุณอาจพบข้อผิดพลาดได้
ชนิดตัวเลข
Power BI Desktop สนับสนุนชนิดตัวเลขสามแบบ: เลขทศนิยม จํานวนทศนิยมตายตัว และตัวเลขใคร le
คุณสามารถใช้คุณสมบัติ Tabular Object Model (TOM) Column DataType เพื่อระบุ DataType Enums สําหรับชนิดตัวเลข สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการแก้ไขวัตถุทางโปรแกรมใน Power BI โปรดดู โปรแกรมแบบจําลองความหมาย Power BI ด้วยแบบจําลองวัตถุ Tabular
เลขทศนิยม
เลข ทศนิยมเป็นชนิดตัวเลขที่พบบ่อยที่สุด และสามารถจัดการตัวเลขที่มีค่าเศษส่วนและจํานวนเต็มได้ ตัวเลขทศนิยมแสดงจํานวนจุดทศนิยม 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
ชนิดตัวเลขทศนิยมคงที่มีประโยชน์ในกรณีที่การปัดเศษอาจเกิดข้อผิดพลาด ในบางครั้งตัวเลขที่มีค่าเศษส่วนน้อยสามารถสะสมและบังคับให้ตัวเลขไม่ถูกต้องเล็กน้อย ชนิดตัวเลขทศนิยมคงที่สามารถช่วยให้คุณหลีกเลี่ยงข้อผิดพลาดชนิดนี้โดยการปัดเศษค่าให้เหลือสี่หลักทางด้านขวาของตัวคั่นทศนิยม
ชนิดข้อมูลนี้สอดคล้องกับค่าทศนิยมของ SQL Server (19,4) หรือ ชนิดข้อมูลสกุลเงิน ใน Analysis Services และ Power Pivot ใน Excel TOM ระบุชนิด DataType.Decimal
นี้เป็น Enum
จำนวนเต็ม
ตัวเลขใครแทนค่าจํานวนเต็ม 64 บิต (แปดไบต์) เนื่องจากเป็นจํานวนเต็ม ใคร le ไม่มีตัวเลขทางด้านขวาของทศนิยม ชนิดนี้อนุญาตให้ใช้ตัวเลขจํานวนเต็มบวกหรือลบ 19 ตัวระหว่าง -9,223,372,036,854,775,807 (-2^63+1) และ 9,223,372,036,854,775,806 (2^63-2), เพื่อให้สามารถแสดงจํานวนที่มากที่สุดเท่าที่เป็นไปได้ของชนิดข้อมูลตัวเลข
เช่นเดียวกับชนิดทศนิยมคงที่ ชนิดตัวเลขใครจะมีประโยชน์เมื่อคุณต้องการควบคุมการปัดเศษ TOM แสดงชนิดข้อมูลตัวเลขใคร le เป็น DataType.Int64
Enum
หมายเหตุ
แบบจําลองข้อมูล Power BI Desktop สนับสนุนค่าจํานวนเต็ม 64 บิต แต่เนื่องจากข้อจํากัดของ JavaScript วิชวล Power BI จํานวนมากที่สุดสามารถแสดงได้อย่างปลอดภัยคือ 9,007,199,254,740,991 (2^53-1) หากแบบจําลองข้อมูลของคุณมีตัวเลขที่ใหญ่กว่า คุณสามารถลดขนาดได้โดยการคํานวณก่อนที่คุณจะเพิ่มลงในวิชวล
ความแม่นยําของการคํานวณชนิดตัวเลข
ค่าคอลัมน์ของ ชนิดข้อมูลเลข ทศนิยมจะถูกจัดเก็บเป็น ชนิดข้อมูลโดยประมาณ ตามมาตรฐาน IEEE 754 สําหรับตัวเลขจุดทศนิยมลอยตัว ชนิดข้อมูลโดยประมาณมีข้อจํากัดความแม่นยําโดยธรรมชาติ เนื่องจากแทนที่จะจัดเก็บค่าจํานวนที่แน่นอน ชนิดข้อมูลเหล่านั้นอาจจัดเก็บใกล้มาก หรือปัดเศษเป็นประมาณการ
การสูญเสียความแม่นยําหรือ ความบกพร่อง สามารถเกิดขึ้นได้ถ้าค่าจุดทศนิยมลอยตัวไม่สามารถหาจํานวนตัวเลขจุดทศนิยมลอยตัวได้อย่างน่าเชื่อถือ ผลกระทบอาจปรากฏขึ้นเป็นผลลัพธ์การคํานวณที่ไม่คาดคิดหรือไม่แม่นยําในบางสถานการณ์การรายงาน
การคํานวณการเปรียบเทียบที่เกี่ยวข้องกับความเท่ากันระหว่างค่าของ ชนิดข้อมูลตัวเลข ทศนิยมสามารถส่งกลับผลลัพธ์ที่ไม่คาดคิดได้ การเปรียบเทียบความเท่ากันรวมถึง , =
มากกว่า >
, น้อยกว่า <
, มากกว่าหรือเท่ากับ >=
และน้อยกว่าหรือเท่ากับ<=
ปัญหานี้เห็นได้ชัดเจนมากที่สุดเมื่อคุณใช้ ฟังก์ชัน RANKX ในนิพจน์ DAX ซึ่งจะคํานวณผลลัพธ์สองครั้ง ส่งผลให้มีตัวเลขที่แตกต่างกันเล็กน้อย ผู้ใช้รายงานอาจไม่สังเกตเห็นความแตกต่างระหว่างสองตัวเลข แต่ผลลัพธ์อันดับอาจไม่ถูกต้องอย่างเห็นได้ชัด เพื่อหลีกเลี่ยงผลลัพธ์ที่ไม่คาดคิด คุณสามารถเปลี่ยนชนิดข้อมูลของคอลัมน์จากเลขทศนิยมเป็นเลขทศนิยมคงที่หรือตัวเลขใคร le หรือทําการปัดเศษแบบบังคับโดยใช้ ROUND ชนิดข้อมูล เลขทศนิยมคงที่ มีความแม่นยํามากกว่า เนื่องจากตัวคั่นทศนิยมมีสี่หลักทางด้านขวาเสมอ
ไม่ค่อยมีการคํานวณที่รวมค่าของคอลัมน์ของ ชนิดข้อมูลตัวเลข ทศนิยมสามารถส่งกลับผลลัพธ์ที่ไม่คาดคิดได้ ผลลัพธ์นี้น่าจะเป็นไปได้มากที่สุดกับคอลัมน์ที่มีทั้งจํานวนบวกและจํานวนลบจํานวนมาก ผลลัพธ์ผลรวมได้รับผลกระทบจากการแจกแจงค่าในแถวต่าง ๆ ในคอลัมน์
ถ้าการคํานวณที่จําเป็นหาผลรวมของจํานวนบวกส่วนใหญ่ก่อนที่จะหาผลรวมจํานวนลบส่วนใหญ่ ผลรวมบางส่วนที่เป็นบวกขนาดใหญ่ที่จุดเริ่มต้นอาจบิดเบื้องผลลัพธ์ได้ หากการคํานวณเกิดขึ้นเพื่อเพิ่มจํานวนบวกและค่าลบที่สมดุล คิวรียังคงมีความแม่นยํามากขึ้น ดังนั้นจึงส่งกลับผลลัพธ์ที่ถูกต้องมากขึ้น เพื่อหลีกเลี่ยงผลลัพธ์ที่ไม่คาดคิด คุณสามารถเปลี่ยนชนิดข้อมูลของคอลัมน์จากเลขทศนิยมเป็นเลขทศนิยมคงที่หรือใครจํานวน
ชนิดวันที่/เวลา
Power BI Desktop สนับสนุนชนิดข้อมูลวันที่/เวลาห้าประเภทในตัวแก้ไข Power Query ทั้ง วันที่/เวลา/โซน เวลาและ ระยะเวลา แปลงในระหว่างการโหลดลงในแบบจําลองข้อมูล Power BI Desktop แบบจําลองสนับสนุน วันที่/เวลา หรือคุณสามารถจัดรูปแบบค่าเป็น วันที่ หรือ เวลา ได้อย่างอิสระ
วันที่/เวลา แสดงทั้งค่าวันที่และเวลา ค่าวันที่/เวลาต้นแบบจะถูกจัดเก็บเป็นชนิดตัวเลขทศนิยม ดังนั้นคุณสามารถแปลงระหว่างสองชนิดได้ ส่วนเวลาจะจัดเก็บเป็นเศษส่วนเป็นผลคูณทั้งหมดของ 1/300 วินาที (3.33 มิลลิวินาที) ชนิดข้อมูลสนับสนุนวันที่ระหว่างปี 1900 ถึง 9999
วันที่ แสดงเพียงวันที่ที่ไม่มีส่วนเวลา วันที่ แปลง เป็นรูปแบบเป็นค่าวันที่/เวลาที่มีศูนย์สําหรับค่าเศษส่วน
เวลา แสดงเพียงเวลาที่ไม่มีส่วนวันที่ Time แปลงเป็นรูปแบบเป็นค่าวันที่/เวลา โดยไม่มีตัวเลขทางด้านซ้ายของจุดทศนิยม
วันที่/เวลา/โซน เวลาแสดงวันที่/เวลา UTC ด้วยค่าออฟเซ็ตโซนเวลา และแปลงเป็น วันที่/เวลา เมื่อโหลดลงในแบบจําลอง โมเดล Power BI ไม่ปรับโซนเวลาตามตำแหน่งที่ตั้งหรือระบบภาษาของผู้ใช้ ค่า 09:00 ที่โหลดลงในแบบจําลองในสหรัฐอเมริกาจะแสดงเป็น 09:00 ที่ใดก็ตามที่เปิดหรือดูรายงาน
ระยะเวลา แสดงถึงระยะเวลา และแปลงเป็น ชนิดตัวเลข ทศนิยมเมื่อโหลดลงในแบบจําลอง เป็น ชนิดตัวเลข ทศนิยม คุณสามารถเพิ่มหรือลบค่าจาก ค่าวันที่/เวลา ด้วยผลลัพธ์ที่ถูกต้อง และใช้ค่าในการแสดงภาพที่แสดงแมกนิจูดได้อย่างง่ายดาย
ชนิดข้อความ
ชนิดข้อมูล Text เป็นสตริงข้อมูลอักขระ Unicode ซึ่งสามารถเป็นตัวอักษร ตัวเลข หรือวันที่ที่แสดงในรูปแบบข้อความ ขีดจํากัดสูงสุดที่ใช้ได้จริงสําหรับความยาวสตริงคืออักขระ Unicode ประมาณ 32,000 ตัว โดยขึ้นอยู่กับกลไกจัดการ Power Query พื้นฐานของ Power BI และขีดจํากัดของความยาวชนิดข้อมูลข้อความ ชนิดข้อมูลข้อความที่เกินขีดจํากัดสูงสุดในทางปฏิบัติมีแนวโน้มที่จะส่งผลให้เกิดข้อผิดพลาด
วิธีการที่ Power BI จัดเก็บข้อมูลข้อความอาจทําให้ข้อมูลแสดงข้อมูลแตกต่างกันในบางสถานการณ์ ส่วนถัดไปจะอธิบายสถานการณ์ทั่วไปที่อาจทําให้ข้อมูลตัวอักษรเปลี่ยนลักษณะที่ปรากฏเล็กน้อยระหว่างการคิวรีข้อมูลใน ตัวแก้ไข Power Query และโหลดลงใน Power BI
การใช้ตัวพิมพ์ใหญ่-เล็ก
กลไกที่จัดเก็บและคิวรีข้อมูลใน Power BI ไม่ ตรงตามตัวพิมพ์ใหญ่-เล็ก และถือว่าตัวอักษรเป็นตัวพิมพ์ใหญ่ที่แตกต่างกันเป็นค่าเดียวกัน "A" เท่ากับ "a" อย่างไรก็ตาม Power Query ต้อง ตรงตามตัวพิมพ์ใหญ่-เล็ก ซึ่ง "A" ไม่เหมือนกับ "a" ความแตกต่างในกรณีที่ต้องตรงตามตัวพิมพ์ใหญ่-เล็กอาจนําไปสู่สถานการณ์ที่ข้อมูลตัวอักษรเปลี่ยนเป็นตัวพิมพ์ใหญ่ดูเหมือนจะไม่สามารถอธิบายได้หลังจากโหลดลงใน Power BI
ตัวอย่างต่อไปนี้แสดงข้อมูลคําสั่งซื้อ: คอลัมน์ OrderNo ที่ไม่ซ้ํากันสําหรับแต่ละคําสั่งซื้อ และ คอลัมน์ Addressee ที่แสดงชื่อผู้รับที่ป้อนด้วยตนเองในเวลาที่สั่งซื้อ ตัวแก้ไข Power Query แสดงใบสั่งหลายใบที่เหมือนกันชื่อ Addressee ที่ป้อนลงในระบบโดยมีตัวพิมพ์ใหญ่แตกต่างกัน
หลังจากที่ Power BI โหลดข้อมูลแล้ว การทําเป็นตัวพิมพ์ใหญ่ของชื่อที่ซ้ํากันในแท็บ ข้อมูล จะเปลี่ยนจากรายการเดิมไปเป็นหนึ่งในตัวแปรตัวพิมพ์ใหญ่
การเปลี่ยนแปลงนี้เกิดขึ้นเนื่องจากตัวแก้ไข Power Query แยกตามตัวพิมพ์ใหญ่-เล็ก ดังนั้นการเปลี่ยนแปลงนี้จึงแสดงข้อมูลเหมือนกับที่จัดเก็บไว้ในระบบต้นทาง กลไกที่จัดเก็บข้อมูลใน Power BI ต้องตรงตามตัวพิมพ์ใหญ่-เล็ก ดังนั้นจะถือว่าอักขระเป็นตัวอักษรพิมพ์เล็กและตัวพิมพ์ใหญ่เหมือนกัน ข้อมูล Power Query ที่โหลดลงในกลไกจัดการ Power BI สามารถเปลี่ยนแปลงได้ตามนั้น
กลไกจัดการ Power BI จะประเมินแต่ละแถวเมื่อโหลดข้อมูล โดยเริ่มต้นจากด้านบน สําหรับแต่ละคอลัมน์ข้อความ เช่น Addressee กลไกจัดการจะจัดเก็บพจนานุกรมของค่าที่ไม่ซ้ํากัน เพื่อปรับปรุงประสิทธิภาพการทํางานผ่านการบีบอัดข้อมูล กลไกจัดการจะเห็นค่าสามค่าแรกใน คอลัมน์ Addressee เป็นค่าเฉพาะและจัดเก็บไว้ในพจนานุกรม หลังจากนั้นเนื่องจากกลไกไม่ตรงตามตัวพิมพ์ใหญ่-เล็ก ระบบจะประเมินชื่อว่าเหมือนกัน
กลไกจะเห็นชื่อ "Taina Hasu" เหมือนกับ "TAINA HASU" และ "Taina HASU" ดังนั้นจึงไม่ได้จัดเก็บการเปลี่ยนแปลงเหล่านั้น แต่หมายถึงการเปลี่ยนแปลงแรกที่จัดเก็บไว้ ชื่อ "MURALI DAS" ปรากฏในตัวอักษรพิมพ์ใหญ่ เนื่องจากเป็นวิธีการที่ชื่อปรากฏครั้งแรกที่กลไกจัดการประเมินเมื่อโหลดข้อมูลจากบนลงล่าง
รูปภาพนี้แสดงให้เห็นถึงกระบวนการประเมินผล:
ในตัวอย่างก่อนหน้า กลไก Power BI จะโหลดแถวแรกของข้อมูล สร้าง พจนานุกรม Addressee และเพิ่ม Taina Hasu เข้าไป กลไกจัดการยังเพิ่มการอ้างอิงไปยังค่านั้นใน คอลัมน์ Addressee บนตารางที่โหลด กลไกจัดการทํางานเหมือนกันสําหรับแถวที่สองและแถวที่สาม เนื่องจากชื่อเหล่านี้ไม่เทียบเท่ากับรายการอื่นเมื่อละเว้นกรณี
สําหรับแถวที่สี่ กลไกจัดการเปรียบเทียบค่ากับชื่อในพจนานุกรมและค้นหาชื่อ เนื่องจากเครื่องยนต์ไม่ตรงตามตัวพิมพ์ใหญ่-เล็ก "TAINA HASU" และ "Taina Hasu" จึงเหมือนกัน กลไกจัดการไม่เพิ่มชื่อใหม่ลงในพจนานุกรม แต่อ้างอิงถึงชื่อที่มีอยู่ กระบวนการเดียวกันนี้เกิดขึ้นสําหรับแถวที่เหลือ
หมายเหตุ
เนื่องจากกลไกที่จัดเก็บและคิวรีข้อมูลใน Power BI ไม่ไวต่ออักษรใหญ่-เล็ก โปรดดูแลเป็นพิเศษเมื่อคุณทํางานในโหมด DirectQuery ด้วยแหล่งข้อมูลที่ตรงตามตัวพิมพ์ใหญ่-เล็ก Power BI จะสันนิษฐานว่าแหล่งข้อมูลตัดแถวที่ซ้ํากันออกแล้ว เนื่องจาก Power BI ไม่ตรงตามตัวพิมพ์ใหญ่-เล็ก ซึ่งถือว่ามีสองค่าที่แตกต่างกันเฉพาะในกรณีที่ซ้ํา ในขณะที่แหล่งข้อมูลอาจไม่ถือว่าเป็นเช่นนั้น ในกรณีดังกล่าว ผลลัพธ์สุดท้ายจะไม่ได้ถูกกําหนด
เพื่อหลีกเลี่ยงไม่ให้เกิดสถานการณ์เช่นนี้ หากคุณใช้โหมด DirectQuery กับแหล่งข้อมูลที่ไวต่ออักษรใหญ่-เล็ก ให้ปรับมาตรฐานปลอกในคิวรีต้นทางหรือในตัวแก้ไข Power Query
ช่องว่างนําหน้าและต่อท้าย
กลไกจัดการ Power BI จะตัดแต่งช่องว่างต่อท้ายใดๆ ที่ตามหลังข้อมูลข้อความโดยอัตโนมัติ แต่จะไม่ลบช่องว่างนําหน้าที่มีข้อมูลอยู่ก่อนหน้า เพื่อหลีกเลี่ยงความสับสน เมื่อคุณทํางานกับข้อมูลที่ประกอบด้วยช่องว่างนําหน้าหรือต่อท้าย คุณควรใช้ ฟังก์ชัน Text.Trim เพื่อเอาช่องว่างที่ส่วนเริ่มต้นหรือส่วนท้ายของข้อความออก หากคุณไม่ลบช่องว่างนําหน้า ความสัมพันธ์อาจล้มเหลวในการสร้างเนื่องจากค่าที่ซ้ํากัน หรือวิชวลอาจส่งคืนผลลัพธ์ที่ไม่คาดคิด
ตัวอย่างต่อไปนี้แสดงข้อมูลเกี่ยวกับลูกค้า: คอลัมน์ชื่อ ที่ประกอบด้วยชื่อของลูกค้าและ คอลัมน์ดัชนี ที่ไม่ซ้ํากันสําหรับแต่ละรายการ ชื่อจะปรากฏภายในเครื่องหมายอัญประกาศเพื่อความชัดเจน ชื่อลูกค้าทําซ้ําสี่ครั้ง แต่แต่ละครั้งมีการรวมกันที่แตกต่างกันของช่องว่างนําหน้าและต่อท้าย รูปแบบเหล่านี้สามารถเกิดขึ้นได้กับการป้อนข้อมูลด้วยตนเองเมื่อเวลาผ่านไป
Row | พื้นที่นําหน้า | ช่องว่างต่อท้าย | ชื่อ | Index | Text length |
---|---|---|---|---|---|
1 | จำนวน | ไม่ | "ดีแลน วิลเลียมส์" | 1 | 14 |
2 | ไม่ใช่ | ใช่ | "ดีแลน วิลเลียมส์" | 10 | 15 |
3 | ตกลง | ไม่ใช่ | " ดีแลน วิลเลียมส์" | 20 | วันที่ 15 ก.ย. |
4 | ใช่ | ใช่ | " ดีแลน วิลเลียมส์ " | 40 | 16 |
ในตัวแก้ไข Power Query ข้อมูลผลลัพธ์จะปรากฏดังนี้
เมื่อคุณไปที่แท็บ ข้อมูล ใน Power BI หลังจากที่คุณโหลดข้อมูลแล้ว ตารางเดียวกันจะมีลักษณะเหมือนรูปภาพต่อไปนี้ ซึ่งมีจํานวนแถวเท่ากันก่อนหน้านี้
อย่างไรก็ตาม วิชวลที่ยึดตามข้อมูลนี้คืนค่าเพียงสองแถว
ในรูปก่อนหน้า แถวแรกมีค่ารวม 60 สําหรับ เขตข้อมูล ดัชนี ดังนั้นแถวแรกในวิชวลจะแสดงสองแถวสุดท้ายของข้อมูลที่โหลด แถวที่สองที่มีค่าดัชนีทั้งหมด 11 แทนสองแถวแรก ความแตกต่างของจํานวนแถวระหว่างวิชวลและตารางข้อมูลนั้นเกิดจากกลไกจัดการเพื่อลบหรือตัดแต่งช่องว่างต่อท้ายโดยอัตโนมัติ แต่ไม่ใช่ช่องว่างนําหน้า ดังนั้นกลไกจัดการจะประเมินแถวแรกและแถวที่สอง และแถวที่สามและสี่ จะเหมือนกัน และวิชวลส่งกลับผลลัพธ์เหล่านี้
ลักษณะการทํางานนี้ยังอาจทําให้เกิดข้อความข้อผิดพลาดที่เกี่ยวข้องกับความสัมพันธ์ เนื่องจากตรวจพบค่าที่ซ้ํากัน ตัวอย่างเช่น คุณอาจเห็นข้อผิดพลาดที่คล้ายกับรูปภาพต่อไปนี้ ทั้งนี้ขึ้นอยู่กับการกําหนดค่าของความสัมพันธ์ของคุณ:
ในสถานการณ์อื่น คุณอาจไม่สามารถสร้างความสัมพันธ์แบบกลุ่มต่อหนึ่งหรือหนึ่งต่อหนึ่งได้ เนื่องจากตรวจพบค่าที่ซ้ํากัน
คุณสามารถติดตามข้อผิดพลาดเหล่านี้กลับไปยังช่องว่างนําหน้าหรือต่อท้าย และแก้ไขปัญหาดังกล่าวได้โดยใช้ Text.Trim หรือ Trim ภายใต้ Transform เพื่อเอาช่องว่างในตัวแก้ไข Power Query ออก
ชนิดจริง/เท็จ
ชนิดข้อมูล True/false เป็นค่าบูลีนของ True หรือ False เพื่อให้ได้ผลลัพธ์ที่ดีที่สุดและสอดคล้องกันมากที่สุด เมื่อคุณโหลดคอลัมน์ที่ประกอบด้วยข้อมูลบูลีน true/false ลงใน Power BI ให้ตั้งค่าชนิดคอลัมน์เป็น จริง/เท็จ
Power BI แปลงและแสดงข้อมูลที่แตกต่างกันในบางสถานการณ์ ในส่วนนี้จะอธิบายกรณีทั่วไปของการแปลงค่าบูลีนและวิธีการแก้ไขการแปลงที่สร้างผลลัพธ์ที่ไม่คาดคิดใน Power BI
ในตัวอย่างนี้ คุณโหลดข้อมูลเกี่ยวกับว่าลูกค้าของคุณได้ลงทะเบียนรับจดหมายข่าวของคุณหรือไม่ ค่า TRUE แสดงว่าลูกค้าได้ลงทะเบียนรับจดหมายข่าว และค่า FALSE แสดงว่าลูกค้ายังไม่ได้ลงทะเบียน
อย่างไรก็ตาม เมื่อคุณเผยแพร่รายงานไปยังบริการของ Power BI คอลัมน์สถานะการลงทะเบียนจดหมายข่าวจะแสดง 0 และ -1 แทนค่าที่คาดไว้ของ TRUE หรือ FALSE ขั้นตอนต่อไปนี้อธิบายวิธีการที่การแปลงนี้เกิดขึ้นและวิธีการป้องกัน
คิวรีแบบง่ายสําหรับตารางนี้จะปรากฏในรูปต่อไปนี้:
ชนิดข้อมูลของคอลัมน์ สมัครใช้งานไปยังจดหมายข่าว ถูกตั้งค่าเป็น ใดก็ตาม และด้วยเหตุนี้ Power BI จะโหลดข้อมูลลงในรูปแบบเป็น ข้อความ
เมื่อคุณเพิ่มการแสดงภาพอย่างง่ายที่แสดงข้อมูลโดยละเอียดต่อลูกค้า ข้อมูลจะปรากฏในวิชวลตามที่คาดไว้ ทั้งใน Power BI Desktop และเมื่อเผยแพร่ไปยังบริการของ Power BI
อย่างไรก็ตาม เมื่อคุณรีเฟรชแบบจําลองความหมายในบริการของ Power BI คอลัมน์ สมัครใช้งานไปยังจดหมายข่าว ในวิชวลจะแสดงค่าเป็น -1 และ 0 แทนที่จะแสดงเป็น TRUE หรือ FALSE:
ถ้าคุณเผยแพร่รายงานจาก Power BI Desktop อีกครั้ง คอลัมน์ สมัครใช้งานในจดหมายข่าว อีกครั้งจะแสดง TRUE หรือ FALSE ตามที่คุณคาดหวัง แต่เมื่อมีการรีเฟรชเกิดขึ้นในบริการของ Power BI ค่าจะเปลี่ยนอีกครั้งเพื่อแสดง -1 และ 0
การแก้ปัญหาเพื่อป้องกันสถานการณ์นี้คือการตั้งค่าคอลัมน์บูลีนใด ๆ เพื่อพิมพ์ True/False ใน Power BI Desktop และเผยแพร่รายงานของคุณอีกครั้ง
เมื่อคุณทําการเปลี่ยนแปลง การแสดงภาพจะแสดงค่าใน คอลัมน์สมัครใช้งานจดหมายข่าว แตกต่างกันเล็กน้อย แทนที่จะเป็นข้อความตัวพิมพ์ใหญ่ทั้งหมดตามที่ป้อนไว้ในตาราง เฉพาะตัวอักษรแรกเท่านั้นที่เป็นตัวพิมพ์ใหญ่ การเปลี่ยนแปลงนี้เป็นผลลัพธ์หนึ่งของการเปลี่ยนแปลงชนิดข้อมูลของคอลัมน์
เมื่อคุณเปลี่ยนชนิดข้อมูลให้เผยแพร่ซ้ําไปยังบริการของ Power BI และการรีเฟรชเกิดขึ้น รายงานจะแสดงค่าเป็น จริง หรือ เท็จ ตามที่คาดไว้
โดยสรุป เมื่อทํางานกับข้อมูลบูลีนใน Power BI ตรวจสอบให้แน่ใจว่าคอลัมน์ของคุณถูกตั้งค่า เป็นชนิดข้อมูล True/False ใน Power BI Desktop
ชนิดที่ว่างเปล่า
ค่าว่าง เป็นชนิดข้อมูล DAX ที่แสดงและแทนที่ SQL null คุณสามารถสร้างช่องว่างโดยใช้ฟังก์ชัน BLANK และทดสอบช่องว่างโดยใช้ฟังก์ชันตรรกะ ISBLANK
ชนิดไบนารี
คุณสามารถใช้ ชนิดข้อมูลไบนารี เพื่อแสดงข้อมูลใด ๆ ที่มีรูปแบบไบนารีได้ ในตัวแก้ไข Power Query คุณสามารถใช้ชนิดข้อมูลนี้เมื่อโหลดไฟล์ไบนารีถ้าคุณแปลงเป็นข้อมูลประเภทอื่น ก่อนที่คุณจะโหลดลงในแบบจําลอง Power BI
คอลัมน์ไบนารีไม่ได้รับการสนับสนุนในแบบจําลองข้อมูล Power BI การเลือก ไบนารี มีอยู่ในมุมมองข้อมูลและเมนูมุมมองรายงานด้วยเหตุผลดั้งเดิม แต่ถ้าคุณพยายามโหลดคอลัมน์ไบนารีไปยังแบบจําลอง Power BI คุณอาจพบข้อผิดพลาดได้
หมายเหตุ
ถ้าคอลัมน์ไบนารีอยู่ในผลลัพธ์ของขั้นตอนของคิวรี การพยายามรีเฟรชข้อมูลผ่านเกตเวย์อาจทําให้เกิดข้อผิดพลาดได้ ขอแนะนําให้คุณลบคอลัมน์ไบนารีใด ๆ เป็นขั้นตอนสุดท้ายในคิวรีของคุณอย่างชัดเจน
ชนิดของตาราง
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 ใช้กับข้อมูลแต่ละชนิดเมื่อจับคู่กับชนิดข้อมูลในเซลล์ที่ตัดกัน
หมายเหตุ
ตารางเหล่านี้ไม่รวมชนิดข้อมูล Text เมื่อตัวเลขถูกแสดงในรูปแบบข้อความ ในบางกรณี Power BI จะพยายามกําหนดชนิดตัวเลขและแสดงข้อมูลเป็นตัวเลข
การเพิ่ม (+)
จํานวนเต็ม | CURRENCY | จริง | วันที่/เวลา | |
---|---|---|---|---|
จํานวนเต็ม | จํานวนเต็ม | CURRENCY | จริง | วันที่/เวลา |
สกุล เงิน | CURRENCY | CURRENCY | จริง | วันที่/เวลา |
จริง | จริง | จริง | จริง | วันที่/เวลา |
วันที่/เวลา | วันที่/เวลา | วันที่/เวลา | วันที่/เวลา | วันที่/เวลา |
ตัวอย่างเช่น ถ้าการดําเนินการเพิ่มเติมใช้จํานวนจริงร่วมกับข้อมูลสกุลเงิน DAX จะแปลงค่าทั้งสองเป็น จริง และส่งกลับผลลัพธ์เป็น จริง
การลบ (-)
ในตารางต่อไปนี้ ส่วนหัวของแถวคือ ตัวตั้ง (ทางด้านซ้าย) และส่วนหัวของคอลัมน์คือ ตัวลบ (ด้านขวา)
จํานวนเต็ม | CURRENCY | จริง | วันที่/เวลา | |
---|---|---|---|---|
จํานวนเต็ม | จํานวนเต็ม | CURRENCY | จริง | จริง |
สกุล เงิน | CURRENCY | CURRENCY | จริง | จริง |
จริง | จริง | จริง | จริง | จริง |
วันที่/เวลา | วันที่/เวลา | วันที่/เวลา | วันที่/เวลา | วันที่/เวลา |
ตัวอย่างเช่น ถ้าการดําเนินการลบใช้วันที่ที่มีชนิดข้อมูลอื่นๆ DAX จะแปลงค่าทั้งสองเป็นวันที่ และค่าที่ส่งกลับจะเป็นวันที่ด้วย
หมายเหตุ
แบบจําลองข้อมูลสนับสนุนตัวดําเนินการเอกภาค - (ลบ) แต่ตัวดําเนินการนี้ไม่เปลี่ยนแปลงชนิดข้อมูลของตัวถูกดําเนินการ (operand)
การคูณ (*)
จํานวนเต็ม | CURRENCY | จริง | วันที่/เวลา | |
---|---|---|---|---|
จํานวนเต็ม | จํานวนเต็ม | CURRENCY | จริง | จํานวนเต็ม |
สกุล เงิน | CURRENCY | จริง | CURRENCY | CURRENCY |
จริง | จริง | CURRENCY | จริง | จริง |
ตัวอย่างเช่น ถ้าการดําเนินการคูณรวมจํานวนเต็มด้วยจํานวนจริง DAX จะแปลงตัวเลขทั้งสองเป็นจํานวนจริง และค่าที่ส่งกลับจะเป็น จริง ด้วย
การหาร (/)
ในตารางต่อไปนี้ ส่วนหัวของแถวเป็นตัวเศษ และส่วนหัวของคอลัมน์คือตัวหาร
จํานวนเต็ม | CURRENCY | จริง | วันที่/เวลา | |
---|---|---|---|---|
จํานวนเต็ม | จริง | CURRENCY | จริง | จริง |
สกุล เงิน | CURRENCY | จริง | CURRENCY | จริง |
จริง | จริง | จริง | จริง | จริง |
วันที่/เวลา | จริง | จริง | จริง | จริง |
ตัวอย่างเช่น ถ้าการดําเนินการหารรวมจํานวนเต็มกับค่าสกุลเงิน 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 จะทําการแปลงโดยนัยสําหรับชนิดตัวเลขหรือวันที่/เวลา ตามตารางต่อไปนี้อธิบายไว้:
เปรียบ เทียบ ตัวดำเนินการ |
จํานวนเต็ม | CURRENCY | จริง | วันที่/เวลา |
---|---|---|---|---|
จํานวนเต็ม | จํานวนเต็ม | CURRENCY | จริง | จริง |
สกุล เงิน | CURRENCY | CURRENCY | จริง | จริง |
จริง | จริง | จริง | จริง | จริง |
วันที่/เวลา | จริง | จริง | จริง | วันที่/เวลา |
ช่องว่าง สตริงว่าง และค่าศูนย์
DAX แสดงค่า null, ค่าว่าง, เซลล์ว่าง หรือค่าที่ขาดหายไปโดยชนิดค่าใหม่เดียวกัน ซึ่งเป็น BLANK คุณสามารถสร้างช่องว่างโดยใช้ฟังก์ชัน BLANK หรือทดสอบช่องว่างโดยใช้ฟังก์ชัน ISBLANK
วิธีการที่การดําเนินการเช่น การบวกหรือการเรียงต่อกัน จัดการกับช่องว่างขึ้นอยู่กับฟังก์ชันแต่ละรายการ ตารางต่อไปนี้สรุปความแตกต่างระหว่างวิธีที่สูตร DAX และ Microsoft Excel จัดการกับช่องว่าง
นิพจน์ | DAX | Excel |
---|---|---|
ว่างเปล่า + ว่างเปล่า | BLANK | 0 (ศูนย์) |
ว่างเปล่า + 5 | 5 | 5 |
ว่างเปล่า * 5 | BLANK | 0 (ศูนย์) |
5/ว่างเปล่า | อินฟินิตี้ | Error |
0/ว่างเปล่า | NaN | Error |
ว่างเปล่า/ว่างเปล่า | BLANK | Error |
เท็จ หรือ ว่างเปล่า | FALSE | FALSE |
เท็จ และ ว่างเปล่า | FALSE | FALSE |
จริง หรือ ว่างเปล่า | TRUE | TRUE |
จริง และ ว่างเปล่า | FALSE | TRUE |
ว่างเปล่า หรือ ว่างเปล่า | BLANK | Error |
ว่างเปล่า และ ว่างเปล่า | BLANK | Error |
เนื้อหาที่เกี่ยวข้อง
คุณสามารถทําการเรียงลําดับของต่างๆ ด้วย Power BI Desktop และข้อมูลได้ สําหรับข้อมูลเพิ่มเติมเกี่ยวกับความสามารถของ Power BI โปรดดูทรัพยากรต่อไปนี้: