ชนิดข้อมูลใน Power BI Desktop
บทความนี้อธิบายชนิดข้อมูลที่สนับสนุน Power BI Desktop และ Data Analysis Expressions (DAX)
เมื่อ Power BI โหลดข้อมูล จะพยายามแปลงชนิดข้อมูลของคอลัมน์ต้นทางเป็นชนิดข้อมูลที่สนับสนุนการจัดเก็บข้อมูล การคํานวณ และการจัดรูปแบบการแสดงข้อมูลที่มีประสิทธิภาพมากขึ้น ตัวอย่างเช่น ถ้าคอลัมน์ของค่าที่คุณนําเข้าจาก Excel ไม่มีค่าเศษส่วน Power BI Desktop จะแปลงคอลัมน์ข้อมูลเป็น จํานวนเต็ม ชนิดข้อมูล ซึ่งเหมาะสมกว่าสําหรับการจัดเก็บจํานวนเต็ม
แนวคิดนี้มีความสําคัญเนื่องจากฟังก์ชัน DAX บางฟังก์ชันมีข้อกําหนดชนิดข้อมูลพิเศษ ในหลายกรณี DAX แปลงชนิดข้อมูลโดยปริยาย แต่ในบางกรณีจะไม่แปลง ตัวอย่างเช่น ถ้าฟังก์ชัน DAX จําเป็นต้องมีชนิดข้อมูล วันที่
กําหนดและระบุชนิดข้อมูลของคอลัมน์
ใน Power BI Desktop คุณสามารถกําหนดและระบุชนิดข้อมูลของคอลัมน์ในตัวแก้ไข Power Query ในมุมมองตาราง หรือในมุมมองรายงาน:
ในตัวแก้ไข Power Query เลือกคอลัมน์ จากนั้นเลือก ชนิดข้อมูล
ในกลุ่ม แปลง ของริบบอนในมุมมองตารางหรือมุมมองรายงาน ให้เลือกคอลัมน์ จากนั้นเลือกลูกศรดรอปดาวน์ที่อยู่ถัดจาก ชนิดข้อมูล เครื่องมือคอลัมน์ แท็บ ของริบบอน
การเลือกดรอปดาวน์ชนิดข้อมูลใน Power Query Editor มีชนิดข้อมูลสองชนิดที่ไม่อยู่ในมุมมองตารางหรือมุมมองรายงาน: วันที่/เวลา/โซนเวลา และ Duration เมื่อคุณโหลดคอลัมน์ที่มีชนิดข้อมูลเหล่านี้ลงในแบบจําลอง Power BI คอลัมน์ วันที่/เวลา/โซน
ข้อมูลประเภท ไบนารี
ชนิดตัวเลข
Power BI Desktop สนับสนุนชนิดตัวเลขสามแบบ: เลขทศนิยมเลขทศนิยมคงที่และ จํานวนเต็ม
คุณสามารถใช้คุณสมบัติ DataType คอลัมน์ Tabular Object Model (TOM) เพื่อระบุ DataType Enums สําหรับชนิดตัวเลข สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการปรับเปลี่ยนวัตถุใน Power BI ทางโปรแกรม โปรดดูที่ แบบจําลองความหมายของโปรแกรม Power BI ด้วยแบบจําลองวัตถุแบบตาราง
เลขทศนิยม
เลขทศนิยม เป็นชนิดตัวเลขที่พบบ่อยที่สุด และสามารถจัดการกับตัวเลขที่มีค่าเศษส่วนและจํานวนเต็มได้ เลขทศนิยม แสดงจํานวนจุดทศนิยม 64 บิต (แปดไบต์) ที่มีค่าลบจาก -1.79E +308 ถึง -2.23E -308ค่าบวกจาก 2.23E -308 ถึง 1.79E +308และ 0 ตัวเลขเช่น 3434.01และ 34.000367063 เป็นเลขทศนิยมที่ถูกต้อง
ความแม่นยําสูงสุดที่ เลขทศนิยม ชนิดสามารถแสดงได้คือ 15 หลัก ตัวคั่นทศนิยมสามารถเกิดขึ้นที่ใดก็ได้ในตัวเลข ชนิดนี้สอดคล้องกับวิธีที่ Excel จัดเก็บตัวเลข และ TOM ระบุชนิดนี้เป็น DataType.Double
Enum
จํานวนทศนิยมตายตัว
เลขทศนิยมคงที่ ชนิดข้อมูลมีตําแหน่งที่ตั้งคงที่สําหรับตัวคั่นทศนิยม ตัวคั่นทศนิยมจะมีตัวเลขสี่หลักทางด้านขวาเสมอ และแสดงตัวเลขนัยสําคัญ 19 หลัก ค่าที่มากที่สุด เลขทศนิยมคงที่ สามารถแสดงเป็นค่าบวกหรือลบ 922,337,203,685,477.5807
เลขทศนิยมคงที่ชนิด มีประโยชน์ในกรณีที่การปัดเศษอาจเกิดข้อผิดพลาด ในบางครั้งตัวเลขที่มีค่าเศษส่วนน้อยสามารถสะสมและบังคับให้ตัวเลขไม่ถูกต้องเล็กน้อย เลขทศนิยมคงที่ ชนิดสามารถช่วยให้คุณหลีกเลี่ยงข้อผิดพลาดชนิดเหล่านี้โดยการปัดเศษค่าที่ผ่านตัวเลขสี่หลักทางด้านขวาของตัวคั่นทศนิยม
ชนิดข้อมูลนี้สอดคล้องกับชนิดข้อมูล 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 แสดง จํานวนเต็ม ชนิดข้อมูลเป็น enum DataType.Int64
โน้ต
แบบจําลองข้อมูล Power BI Desktop สนับสนุนค่าจํานวนเต็ม 64 บิต แต่เนื่องจากข้อจํากัดของ JavaScript วิชวล Power BI จํานวนมากที่สุดสามารถแสดงได้อย่างปลอดภัยคือ 9,007,199,254,740,991 (2^53-1) หากแบบจําลองข้อมูลของคุณมีตัวเลขที่ใหญ่กว่า คุณสามารถลดขนาดได้โดยการคํานวณก่อนที่คุณจะเพิ่มลงในวิชวล
ความแม่นยําของการคํานวณชนิดตัวเลข
ค่าคอลัมน์ของเลขทศนิยม ชนิดข้อมูลจะถูกจัดเก็บไว้เมื่อ ชนิดข้อมูลโดยประมาณ ตามมาตรฐาน IEEE 754 สําหรับตัวเลขจุดทศนิยมลอยตัว ชนิดข้อมูลโดยประมาณมีข้อจํากัดความแม่นยําโดยธรรมชาติ เนื่องจากแทนที่จะจัดเก็บค่าจํานวนที่แน่นอน ชนิดดังกล่าวอาจจัดเก็บใกล้มาก หรือปัดเศษเป็นประมาณการ
การสูญเสียความแม่นยําหรือของจุดทศนิยมทศนิยม
การคํานวณเปรียบเทียบที่เกี่ยวข้องกับความเท่ากันระหว่างค่าของ เลขทศนิยม ชนิดข้อมูลอาจส่งกลับผลลัพธ์ที่ไม่คาดคิด การเปรียบเทียบความเท่ากันรวมถึง =
มากกว่า >
น้อยกว่า <
มากกว่าหรือเท่ากับ >=
และน้อยกว่าหรือเท่ากับ <=
ปัญหานี้เห็นได้ชัดเจนมากที่สุดเมื่อคุณใช้ฟังก์ชัน RANKX ในนิพจน์ DAX ซึ่งจะคํานวณผลลัพธ์สองครั้ง ส่งผลให้มีตัวเลขที่แตกต่างกันเล็กน้อย ผู้ใช้รายงานอาจไม่สังเกตเห็นความแตกต่างระหว่างสองตัวเลข แต่ผลลัพธ์อันดับอาจไม่ถูกต้องอย่างเห็นได้ชัด เพื่อหลีกเลี่ยงผลลัพธ์ที่ไม่คาดคิด คุณสามารถเปลี่ยนชนิดข้อมูลของคอลัมน์จากเลขทศนิยม เป็น เลขทศนิยมคงที่ หรือ จํานวนเต็มหรือทําการปัดเศษโดยใช้ ROUND เลขทศนิยมคงที่ ชนิดข้อมูลมีความแม่นยํามากกว่า เนื่องจากตัวคั่นทศนิยมแสดงตัวเลขสี่หลักทางด้านขวาเสมอ
ไม่ค่อยมีการคํานวณที่รวมค่าของคอลัมน์ เลขทศนิยม ชนิดข้อมูลสามารถส่งกลับผลลัพธ์ที่ไม่คาดคิดได้ ผลลัพธ์นี้น่าจะเป็นไปได้มากที่สุดกับคอลัมน์ที่มีทั้งจํานวนบวกและจํานวนลบจํานวนมาก ผลลัพธ์ผลรวมได้รับผลกระทบจากการแจกแจงค่าในแถวต่าง ๆ ในคอลัมน์
ถ้าการคํานวณที่จําเป็นหาผลรวมของจํานวนบวกส่วนใหญ่ก่อนที่จะหาผลรวมจํานวนลบส่วนใหญ่ ผลรวมบางส่วนที่เป็นบวกขนาดใหญ่ที่จุดเริ่มต้นอาจบิดเบื้องผลลัพธ์ได้ หากการคํานวณเกิดขึ้นเพื่อเพิ่มจํานวนบวกและค่าลบที่สมดุล คิวรียังคงมีความแม่นยํามากขึ้น ดังนั้นจึงส่งกลับผลลัพธ์ที่ถูกต้องมากขึ้น เพื่อหลีกเลี่ยงผลลัพธ์ที่ไม่คาดคิด คุณสามารถเปลี่ยนชนิดข้อมูลของคอลัมน์จากเลขทศนิยม เป็น เลขทศนิยมคงที่ หรือ จํานวนเต็ม
ชนิดวันที่/เวลา
Power BI Desktop สนับสนุนชนิดข้อมูลวันที่/เวลา
วันที่/เวลา
แสดงค่าวันที่และเวลา ค่า วันที่/เวลาพื้นฐานถูกจัดเก็บเป็นชนิด เลขทศนิยม ดังนั้นคุณสามารถแปลงระหว่างสองชนิดได้ ส่วนเวลาจะจัดเก็บเป็นเศษส่วนเป็นผลคูณทั้งหมดของ 1/300 วินาที (3.33 มิลลิวินาที) ชนิดข้อมูลสนับสนุนวันที่ระหว่างปี 1900 ถึง 9999 วันที่
แสดงเพียงวันที่ที่ไม่มีส่วนเวลา วันที่แปลง เป็นรูปแบบ วันที่/เวลา ที่มีศูนย์สําหรับค่าเศษส่วน Time แสดงเพียงหนึ่งเวลาโดยไม่มีส่วนวันที่ เวลา
แปลง เป็นรูปแบบ วันที่/เวลา แบบ โดยไม่มีตัวเลขทางด้านซ้ายของจุดทศนิยม วันที่/เวลา/โซนเวลา แสดงวันที่/เวลา UTC ด้วยค่าออฟเซ็ตโซนเวลา และแปลงเป็น วันที่/เวลาเมื่อโหลดลงในแบบจําลอง แบบจําลอง Power BI ไม่ปรับโซนเวลาตามตําแหน่งที่ตั้งหรือตําแหน่งที่ตั้งของผู้ใช้ ค่า 09:00 ที่โหลดลงในแบบจําลองในสหรัฐอเมริกาจะแสดงเป็น 09:00 ที่ใดก็ตามที่เปิดหรือดูรายงาน Duration แสดงถึงความยาวของเวลา และแปลง เป็นชนิด เลขทศนิยมเมื่อโหลดลงในแบบจําลอง ในขณะที่ ด้วยผลลัพธ์ที่ถูกต้อง และใช้ค่าในการแสดงภาพที่แสดงขนาดได้อย่างง่ายดายเลขทศนิยม ชนิด คุณสามารถเพิ่มหรือลบค่าจากค่าวันที่/เวลา
ชนิดข้อความ
ชนิดข้อมูล Text คือสตริงข้อมูลอักขระ Unicode ซึ่งอาจเป็นตัวอักษร ตัวเลข หรือวันที่ที่แสดงในรูปแบบข้อความ ขีดจํากัดสูงสุดที่ใช้ได้จริงสําหรับความยาวสตริงคืออักขระ Unicode ประมาณ 32,000 ตัว โดยขึ้นอยู่กับกลไกจัดการ Power Query พื้นฐานของ Power BI และขีดจํากัดของ ข้อความ ความยาวของชนิดข้อมูล ชนิดข้อมูลข้อความที่เกินขีดจํากัดสูงสุดในทางปฏิบัติมีแนวโน้มที่จะส่งผลให้เกิดข้อผิดพลาด
วิธีการที่ Power BI จัดเก็บข้อมูลข้อความอาจทําให้ข้อมูลแสดงข้อมูลแตกต่างกันในบางสถานการณ์ ส่วนถัดไปจะอธิบายสถานการณ์ทั่วไปที่อาจทําให้เกิด ข้อความ ข้อมูลเพื่อเปลี่ยนลักษณะที่ปรากฏเล็กน้อยระหว่างการคิวรีข้อมูลใน Power Query Editor และโหลดลงใน 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 จะประเมินแต่ละแถวเมื่อโหลดข้อมูล โดยเริ่มต้นจากด้านบน สําหรับแต่ละคอลัมน์ข้อความ เช่น 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 เพื่อเอาช่องว่างที่ส่วนเริ่มต้นหรือส่วนท้ายของข้อความออก หากคุณไม่ลบช่องว่างนําหน้า ความสัมพันธ์อาจล้มเหลวในการสร้างเนื่องจากค่าที่ซ้ํากัน หรือวิชวลอาจส่งคืนผลลัพธ์ที่ไม่คาดคิด
ตัวอย่างต่อไปนี้แสดงข้อมูลเกี่ยวกับลูกค้า: คอลัมน์ ชื่อ
แถว | พื้นที่นําหน้า | ช่องว่างต่อท้าย | ชื่อ | ดัชนี | ความยาวข้อความ |
---|---|---|---|---|---|
1 | ไม่ใช่ | ไม่ใช่ | "ดีแลน วิลเลียมส์" | 1 | 14 |
2 | ไม่ใช่ | ใช่ | "ดีแลน วิลเลียมส์" | 10 | 15 |
3 | ใช่ | ไม่ใช่ | " ดีแลน วิลเลียมส์" | 20 | 15 |
4 | ใช่ | ใช่ | " ดีแลน วิลเลียมส์ " | 40 | 16 |
ในตัวแก้ไข Power Query ข้อมูลผลลัพธ์จะปรากฏดังนี้
เมื่อคุณไปที่แท็บ ตาราง
อย่างไรก็ตาม วิชวลที่ยึดตามข้อมูลนี้คืนค่าเพียงสองแถว
ในรูปภาพก่อนหน้า แถวแรกมีค่ารวม
ลักษณะการทํางานนี้ยังอาจทําให้เกิดข้อความข้อผิดพลาดที่เกี่ยวข้องกับความสัมพันธ์ เนื่องจากตรวจพบค่าที่ซ้ํากัน ตัวอย่างเช่น คุณอาจเห็นข้อผิดพลาดที่คล้ายกับรูปภาพต่อไปนี้ ทั้งนี้ขึ้นอยู่กับการกําหนดค่าของความสัมพันธ์ของคุณ:
ในสถานการณ์อื่น คุณอาจไม่สามารถสร้างความสัมพันธ์แบบกลุ่มต่อหนึ่งหรือหนึ่งต่อหนึ่งได้ เนื่องจากตรวจพบค่าที่ซ้ํากัน
คุณสามารถติดตามข้อผิดพลาดเหล่านี้กลับไปยังช่องว่างนําหน้าหรือต่อท้ายได้ และแก้ไขปัญหาดังกล่าวได้โดยใช้ Text.Trimหรือรูปแบบ >Trim ภายใต้ Transformเพื่อลบช่องว่างใน Power Query Editor
ชนิดจริง/เท็จ
ชนิดข้อมูล จริง/เท็จ
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 และการรีเฟรชจะเกิดขึ้น รายงานจะแสดงค่าเป็น True หรือ Falseตามที่คาดไว้
โดยสรุป เมื่อทํางานกับข้อมูลบูลีนใน Power BI ตรวจสอบให้แน่ใจว่าคอลัมน์ของคุณถูกตั้งค่าเป็นชนิดข้อมูล True/False ใน Power BI Desktop
ชนิดที่ว่างเปล่า
Blank เป็นชนิดข้อมูล DAX ที่แสดงและแทนที่ SQL null คุณสามารถสร้างช่องว่างโดยใช้ฟังก์ชัน BLANK และทดสอบช่องว่างโดยใช้ฟังก์ชันตรรกะ ISBLANK
ชนิดไบนารี
คุณสามารถใช้ชนิดข้อมูล ไบนารี เพื่อแสดงข้อมูลใด ๆ ที่มีรูปแบบไบนารีได้ ในตัวแก้ไข Power Query คุณสามารถใช้ชนิดข้อมูลนี้เมื่อโหลดไฟล์ไบนารีถ้าคุณแปลงเป็นข้อมูลประเภทอื่น ก่อนที่คุณจะโหลดลงในแบบจําลอง 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 ใช้กับข้อมูลแต่ละชนิดเมื่อจับคู่กับชนิดข้อมูลในเซลล์ที่ตัดกัน
โน้ต
ตารางเหล่านี้ไม่รวม ชนิดข้อมูล ข้อความ เมื่อตัวเลขถูกแสดงในรูปแบบข้อความ ในบางกรณี Power BI จะพยายามกําหนดชนิดตัวเลขและแสดงข้อมูลเป็นตัวเลข
การเพิ่ม (+)
จํานวนเต็ม | เงินตรา | จริง | วันที่/เวลา | |
---|---|---|---|---|
จํานวนเต็ม |
จํานวนเต็ม | เงินตรา | จริง | วันที่/เวลา |
สกุลเงิน |
เงินตรา | เงินตรา | จริง | วันที่/เวลา |
จริงของ |
จริง | จริง | จริง | วันที่/เวลา |
วันที่/เวลา |
วันที่/เวลา | วันที่/เวลา | วันที่/เวลา | วันที่/เวลา |
ตัวอย่างเช่น ถ้าการดําเนินการเพิ่มเติมใช้จํานวนจริงร่วมกับข้อมูลสกุลเงิน DAX จะแปลงค่าทั้งสองเป็น จริง และส่งกลับผลลัพธ์เป็น จริง
การลบ (-)
ในตารางต่อไปนี้ ส่วนหัวของแถวคือ ตัวตั้ง (ทางด้านซ้าย) และส่วนหัวของคอลัมน์คือ ตัวลบ (ด้านขวา)
จํานวนเต็ม | เงินตรา | จริง | วันที่/เวลา | |
---|---|---|---|---|
จํานวนเต็ม |
จํานวนเต็ม | เงินตรา | จริง | จริง |
สกุลเงิน |
เงินตรา | เงินตรา | จริง | จริง |
จริงของ |
จริง | จริง | จริง | จริง |
วันที่/เวลา |
วันที่/เวลา | วันที่/เวลา | วันที่/เวลา | วันที่/เวลา |
ตัวอย่างเช่น ถ้าการดําเนินการลบใช้วันที่ที่มีชนิดข้อมูลอื่นๆ DAX จะแปลงค่าทั้งสองเป็นวันที่ และค่าที่ส่งกลับจะเป็นวันที่ด้วย
โน้ต
แบบจําลองข้อมูลสนับสนุนตัวดําเนินการเอกภาค - (ลบ) แต่ตัวดําเนินการนี้ไม่เปลี่ยนแปลงชนิดข้อมูลของตัวถูกดําเนินการ (operand)
การคูณ (*)
จํานวนเต็ม | เงินตรา | จริง | วันที่/เวลา | |
---|---|---|---|---|
จํานวนเต็ม |
จํานวนเต็ม | เงินตรา | จริง | จํานวนเต็ม |
สกุลเงิน |
เงินตรา | จริง | เงินตรา | เงินตรา |
จริงของ |
จริง | เงินตรา | จริง | จริง |
ตัวอย่างเช่น ถ้าการดําเนินการคูณรวมจํานวนเต็มด้วยจํานวนจริง DAX จะแปลงตัวเลขทั้งสองเป็นจํานวนจริง และค่าที่ส่งกลับจะเป็น จริง ด้วย
การหาร (/)
ในตารางต่อไปนี้ ส่วนหัวของแถวเป็นตัวเศษ และส่วนหัวของคอลัมน์คือตัวหาร
จํานวนเต็ม | เงินตรา | จริง | วันที่/เวลา | |
---|---|---|---|---|
จํานวนเต็ม |
จริง | เงินตรา | จริง | จริง |
สกุลเงิน |
เงินตรา | จริง | เงินตรา | จริง |
จริงของ |
จริง | จริง | จริง | จริง |
วันที่/เวลา |
จริง | จริง | จริง | จริง |
ตัวอย่างเช่น ถ้าการดําเนินการหารรวมจํานวนเต็มกับค่าสกุลเงิน 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 จะทําการแปลงโดยนัยสําหรับชนิดตัวเลขหรือวันที่/เวลา ตามตารางต่อไปนี้อธิบายไว้:
การเปรียบเทียบ ผู้ปฏิบัติการ |
จํานวนเต็ม | เงินตรา | จริง | วันที่/เวลา |
---|---|---|---|---|
จํานวนเต็ม |
จํานวนเต็ม | เงินตรา | จริง | จริง |
สกุลเงิน |
เงินตรา | เงินตรา | จริง | จริง |
จริงของ |
จริง | จริง | จริง | จริง |
วันที่/เวลา |
จริง | จริง | จริง | วันที่/เวลา |
ช่องว่าง สตริงว่าง และค่าศูนย์
DAX แสดงค่า null, ค่าว่าง, เซลล์ว่าง หรือค่าที่ขาดหายไปโดยชนิดค่าใหม่เดียวกัน ซึ่งเป็น BLANK คุณสามารถสร้างช่องว่างโดยใช้ฟังก์ชัน BLANK หรือทดสอบช่องว่างโดยใช้ฟังก์ชัน ISBLANK
วิธีการที่การดําเนินการเช่น การบวกหรือการเรียงต่อกัน จัดการกับช่องว่างขึ้นอยู่กับฟังก์ชันแต่ละรายการ ตารางต่อไปนี้สรุปความแตกต่างระหว่างวิธีที่สูตร DAX และ Microsoft Excel จัดการกับช่องว่าง
สีหน้า | DAX | ยอดเยี่ยม |
---|---|---|
ว่างเปล่า + ว่างเปล่า | เปล่า | 0 (ศูนย์) |
ว่างเปล่า + 5 | 5 | 5 |
ว่างเปล่า * 5 | เปล่า | 0 (ศูนย์) |
5/ว่างเปล่า | ความไม่มีที่สิ้นสุด | ความผิดพลาด |
0/ว่างเปล่า | น่าน | ความผิดพลาด |
ว่างเปล่า/ว่างเปล่า | เปล่า | ความผิดพลาด |
เท็จ หรือ ว่างเปล่า | ปลอม | ปลอม |
เท็จ และ ว่างเปล่า | ปลอม | ปลอม |
จริง หรือ ว่างเปล่า | จริง | จริง |
จริง และ ว่างเปล่า | ปลอม | จริง |
ว่างเปล่า หรือ ว่างเปล่า | เปล่า | ความผิดพลาด |
ว่างเปล่า และ ว่างเปล่า | เปล่า | ความผิดพลาด |
เนื้อหาที่เกี่ยวข้อง
คุณสามารถทําการเรียงลําดับของต่างๆ ด้วย Power BI Desktop และข้อมูลได้ สําหรับข้อมูลเพิ่มเติมเกี่ยวกับความสามารถของ Power BI โปรดดูทรัพยากรต่อไปนี้:
- Power BI Desktop คืออะไร ?
- ภาพรวม คิวรี ใน Power BI Desktop
- แหล่งข้อมูลใน Power BI Desktop
- จัดรูปร่าง และรวมข้อมูลใน Power BI Desktop
- งานคิวรีทั่วไปใน Power BI Desktop