แชร์ผ่าน


ชนิดข้อมูลใน 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 เลือกคอลัมน์ จากนั้นเลือก ชนิดข้อมูล ในกลุ่ม แปลง ของริบบอน

    ภาพหน้าจอของ Power Query Editor ที่แสดงการเลือกรายการแบบเลื่อนลงของชนิดข้อมูล

  • ในมุมมองตารางหรือมุมมองรายงาน ให้เลือกคอลัมน์ จากนั้นเลือกลูกศรดรอปดาวน์ที่อยู่ถัดจาก ชนิดข้อมูล เครื่องมือคอลัมน์ แท็บ ของริบบอน

    ภาพหน้าจอของมุมมองตาราง ที่แสดงการเลือกรายการดรอปดาวน์ชนิดข้อมูล

การเลือกดรอปดาวน์ชนิดข้อมูลใน Power Query Editor มีชนิดข้อมูลสองชนิดที่ไม่อยู่ในมุมมองตารางหรือมุมมองรายงาน: วันที่/เวลา/โซนเวลา และ Duration เมื่อคุณโหลดคอลัมน์ที่มีชนิดข้อมูลเหล่านี้ลงในแบบจําลอง Power BI คอลัมน์ วันที่/เวลา/โซน แปลง เป็นชนิดข้อมูล วันที่/เวลา และคอลัมน์ ระยะเวลา แปลง เป็นตัวเลขทศนิยม ชนิดข้อมูล

ข้อมูลประเภท ไบนารี ไม่ได้รับการสนับสนุนภายนอกของตัวแก้ไข Power Query ในตัวแก้ไข Power Query คุณสามารถใช้ข้อมูลประเภท ไบนารี เมื่อคุณโหลดไฟล์ไบนารีถ้าคุณแปลงเป็นข้อมูลประเภทอื่นก่อนที่จะโหลดลงในแบบจําลอง Power BI การเลือก ไบนารี มีอยู่ในมุมมองตารางและเมนูมุมมองรายงานด้วยเหตุผลดั้งเดิม แต่ถ้าคุณพยายามโหลด คอลัมน์ไบนารี ลงในแบบจําลอง 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

เลขทศนิยมคงที่ชนิด มีประโยชน์ในกรณีที่การปัดเศษอาจเกิดข้อผิดพลาด ในบางครั้งตัวเลขที่มีค่าเศษส่วนน้อยสามารถสะสมและบังคับให้ตัวเลขไม่ถูกต้องเล็กน้อย เลขทศนิยมคงที่ ชนิดสามารถช่วยให้คุณหลีกเลี่ยงข้อผิดพลาดชนิดเหล่านี้โดยการปัดเศษค่าที่ผ่านตัวเลขสี่หลักทางด้านขวาของตัวคั่นทศนิยม

ชนิดข้อมูลนี้สอดคล้องกับชนิดข้อมูล Decimal (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 แสดง จํานวนเต็ม ชนิดข้อมูลเป็น 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 สนับสนุนชนิดข้อมูลวันที่/เวลา ห้าชนิดในตัวแก้ไข Power Query ทั้ง วันที่/เวลา/โซนเวลา และระยะเวลา แปลงระหว่างการโหลดลงในแบบจําลองข้อมูล Power BI Desktop แบบจําลองสนับสนุนวันที่/เวลา หรือคุณสามารถจัดรูปแบบค่าเป็น Date หรือ Time ได้อย่างอิสระ

  • วันที่/เวลา แสดงค่าวันที่และเวลา ค่า วันที่/เวลา พื้นฐานถูกจัดเก็บเป็นชนิด เลขทศนิยม ดังนั้นคุณสามารถแปลงระหว่างสองชนิดได้ ส่วนเวลาจะจัดเก็บเป็นเศษส่วนเป็นผลคูณทั้งหมดของ 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 ที่ไม่ซ้ํากันสําหรับแต่ละคําสั่งซื้อ และคอลัมน์ Addressee ที่แสดงชื่อผู้รับที่ป้อนด้วยตนเองในเวลาที่สั่งซื้อ ตัวแก้ไข Power Query แสดงคําสั่งซื้อหลายรายการที่มีชื่อ Addressee เดียวกันที่ป้อนลงในระบบด้วยตัวพิมพ์ใหญ่ที่แตกต่างกัน

สกรีนช็อตของข้อมูลที่เป็นข้อความด้วยตัวพิมพ์ใหญ่ต่าง ๆ ใน Power Query

หลังจากที่ Power BI โหลดข้อมูลแล้ว การทําเป็นตัวพิมพ์ใหญ่ของชื่อที่ซ้ํากันในแท็บ ข้อมูล เปลี่ยนแท็บจากรายการเดิมไปเป็นหนึ่งในตัวแปรตัวพิมพ์ใหญ่

สกรีนช็อตที่แสดงข้อมูลเป็นข้อความพร้อมตัวอักษรพิมพ์ใหญ่ที่เปลี่ยนหลังจากโหลดลงใน 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 ข้อมูลผลลัพธ์จะปรากฏดังนี้

สกรีนช็อตของข้อมูลข้อความ ที่มีช่องว่างนําหน้าและต่อท้ายต่าง ๆ ในตัวแก้ไข Power Query

เมื่อคุณไปที่แท็บ ตาราง ใน Power BI หลังจากที่คุณโหลดข้อมูล แล้วตารางเดียวกันจะมีลักษณะเหมือนกับรูปภาพต่อไปนี้ โดยมีจํานวนแถวเท่ากันก่อนหน้านี้

สกรีนช็อตของข้อมูลที่เป็นข้อความเดียวกันหลังจากโหลดลงใน Power BI จะส่งกลับจํานวนแถวเท่าเดิม

อย่างไรก็ตาม วิชวลที่ยึดตามข้อมูลนี้คืนค่าเพียงสองแถว

สกรีนช็อตของวิชวลตารางที่ยึดตามข้อมูลเดียวกันที่ส่งกลับข้อมูลเพียงสองบรรทัด

ในรูปภาพก่อนหน้า แถวแรกมีค่ารวม 60 สําหรับเขตข้อมูล ดัชนี ดังนั้นแถวแรกในวิชวลจะแสดงสองแถวสุดท้ายของข้อมูลที่โหลด แถวที่สองที่มีค่า Index ค่าของ 11 แสดงสองแถวแรก ความแตกต่างของจํานวนแถวระหว่างวิชวลและตารางข้อมูลนั้นเกิดจากกลไกจัดการเพื่อลบหรือตัดแต่งช่องว่างต่อท้ายโดยอัตโนมัติ แต่ไม่ใช่ช่องว่างนําหน้า ดังนั้นกลไกจัดการจะประเมินแถวแรกและแถวที่สอง และแถวที่สามและสี่ จะเหมือนกัน และวิชวลส่งกลับผลลัพธ์เหล่านี้

ลักษณะการทํางานนี้ยังอาจทําให้เกิดข้อความข้อผิดพลาดที่เกี่ยวข้องกับความสัมพันธ์ เนื่องจากตรวจพบค่าที่ซ้ํากัน ตัวอย่างเช่น คุณอาจเห็นข้อผิดพลาดที่คล้ายกับรูปภาพต่อไปนี้ ทั้งนี้ขึ้นอยู่กับการกําหนดค่าของความสัมพันธ์ของคุณ:

สกรีนช็อตของข้อความแสดงข้อผิดพลาดเกี่ยวกับค่าที่ซ้ํากัน

ในสถานการณ์อื่น คุณอาจไม่สามารถสร้างความสัมพันธ์แบบกลุ่มต่อหนึ่งหรือหนึ่งต่อหนึ่งได้ เนื่องจากตรวจพบค่าที่ซ้ํากัน

ภาพหน้าจอของกล่องโต้ตอบความสัมพันธ์ที่แสดงข้อผิดพลาด 'คาร์ดินาลลิตี้ที่ไม่ถูกต้องสําหรับความสัมพันธ์นี้' ที่เกี่ยวข้องกับค่าที่ซ้ํากันที่กําลังถูกตรวจพบ

คุณสามารถติดตามข้อผิดพลาดเหล่านี้กลับไปยังช่องว่างนําหน้าหรือต่อท้ายได้ และแก้ไขปัญหาดังกล่าวได้โดยใช้ Text.Trimหรือรูปแบบ >Trim ภายใต้ Transformเพื่อลบช่องว่างใน Power Query Editor

ชนิดจริง/เท็จ

ชนิดข้อมูล จริง/เท็จ เป็นค่าบูลีนของ True หรือ False เพื่อให้ได้ผลลัพธ์ที่ดีที่สุดและสอดคล้องกันมากที่สุด เมื่อคุณโหลดคอลัมน์ที่ประกอบด้วยข้อมูลบูลีน true/false ลงใน Power BI ให้ตั้งค่าชนิดคอลัมน์เป็น true/False

Power BI แปลงและแสดงข้อมูลที่แตกต่างกันในบางสถานการณ์ ในส่วนนี้จะอธิบายกรณีทั่วไปของการแปลงค่าบูลีนและวิธีการแก้ไขการแปลงที่สร้างผลลัพธ์ที่ไม่คาดคิดใน Power BI

ในตัวอย่างนี้ คุณโหลดข้อมูลเกี่ยวกับว่าลูกค้าของคุณได้ลงทะเบียนรับจดหมายข่าวของคุณหรือไม่ ค่าของ TRUE ระบุว่าลูกค้าได้ลงทะเบียนรับจดหมายข่าว และค่าของ FALSE ระบุว่าลูกค้าไม่ได้ลงทะเบียน

อย่างไรก็ตาม เมื่อคุณเผยแพร่รายงานไปยังบริการของ Power BI คอลัมน์สถานะการลงทะเบียนจดหมายข่าวจะแสดง 0 และ -1 แทนที่จะเป็นค่าที่คาดหวังจาก TRUE หรือ FALSE ขั้นตอนต่อไปนี้อธิบายวิธีการที่การแปลงนี้เกิดขึ้นและวิธีการป้องกัน

คิวรีแบบง่ายสําหรับตารางนี้จะปรากฏในรูปต่อไปนี้:

สกรีนช็อตที่แสดงคอลัมน์ที่ตั้งค่าเป็นบูลีน

ชนิดข้อมูลของคอลัมน์ สมัครใช้งานในจดหมายข่าว ถูกตั้งค่าเป็น ใด ๆ และด้วยเหตุนี้ Power BI จะโหลดข้อมูลลงในแบบจําลองในรูปแบบ ข้อความ

สกรีนช็อตที่แสดงข้อมูลที่โหลดลงใน 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ตามที่คาดไว้

สกรีนช็อตที่แสดงค่าจริงหรือเท็จที่ใช้ชนิดข้อมูล True/False ปรากฏเป็นที่คาดไว้หลังจากรีเฟรช

โดยสรุป เมื่อทํางานกับข้อมูลบูลีนใน Power BI ตรวจสอบให้แน่ใจว่าคอลัมน์ของคุณถูกตั้งค่าเป็นชนิดข้อมูล True/False ใน Power BI Desktop

ชนิดที่ว่างเปล่า

Blank เป็นชนิดข้อมูล 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 ใช้กับข้อมูลแต่ละชนิดเมื่อจับคู่กับชนิดข้อมูลในเซลล์ที่ตัดกัน

โน้ต

ตารางเหล่านี้ไม่รวม ชนิดข้อมูล ข้อความ เมื่อตัวเลขถูกแสดงในรูปแบบข้อความ ในบางกรณี 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 โปรดดูทรัพยากรต่อไปนี้: