สร้างตารางวันที่ใน Power BI DesktopCreate date tables in Power BI Desktop

บทความนี้มุ่งเป้าหมายไปที่เรื่อง ตัวสร้างแบบจำลองข้อมูลนำเข้าที่ทำงานกับ Power BI DesktopThis article targets you as a data modeler working with Power BI Desktop. มีการอธิบายแนวทางปฏิบัติในการออกแบบที่ดีสำหรับการสร้างตารางวันที่ในรูปแบบข้อมูลของคุณIt describes good design practices for creating date tables in your data models.

เมื่อต้องการทำงานกับนิพจน์การวิเคราะห์ข้อมูล (DAX) ฟังก์ชันตัวแสดงเวลามีข้อกำหนดของแบบจำลองล่วงหน้า: คุณต้องมีอย่างน้อยหนึ่ง ตารางวันที่ ในแบบจำลองของคุณTo work with Data Analysis Expressions (DAX) time intelligence functions, there's a prerequisite model requirement: You must have at least one date table in your model. ตารางวันที่เป็นตารางที่ตรงกับความต้องการต่อไปนี้:A date table is a table that meets the following requirements:

  • การดำเนินการนี้จะต้องมีคอลัมน์ชนิดข้อมูล วันที่ (หรือ วันที่/เวลา) ซึ่งเป็นที่รู้จักกันในชื่อ คอลัมน์วันที่It must have a column of data type date (or date/time)—known as the date column.
  • คอลัมน์วันที่ต้องมีค่าไม่ซ้ำกันThe date column must contain unique values.
  • คอลัมน์วันที่ต้องไม่มีช่องว่างThe date column must not contain BLANKs.
  • คอลัมน์วันที่ต้องไม่มีวันที่หายไปThe date column must not have any missing dates.
  • คอลัมน์วันที่ต้องครอบคลุมปีเต็มThe date column must span full years. ปีไม่จำเป็นต้องเป็นปีปฏิทิน (มกราคม - ธันวาคม)A year isn't necessarily a calendar year (January-December).
  • ตารางวันที่ต้องได้รับ การทำเครื่องหมายเป็นตารางวันที่The date table must be marked as a date table.

คุณสามารถใช้เทคนิคหลายอย่างในการเพิ่มตารางวันที่ไปยังแบบจำลองของคุณ:You can use any of several techniques to add a date table to your model:

  • ตัวเลือกวันที่/เวลาอัตโนมัติThe Auto date/time option
  • Power Query เพื่อเชื่อมต่อกับตารางมิติวันที่Power Query to connect to a date dimension table
  • Power Query เพื่อสร้างตารางวันที่Power Query to generate a date table
  • DAX เพื่อสร้างตารางวันที่DAX to generate a date table
  • DAX เพื่อโคลนตารางวันที่ที่มีอยู่DAX to clone an existing date table

เคล็ดลับ

ตารางวันที่อาจเป็นคุณลักษณะที่สอดคล้องกันมากที่สุดที่คุณจะเพิ่มลงในแบบจำลองของคุณA date table is perhaps the most consistent feature you'll add to any of your models. มีอะไรเพิ่มเติม ภายในองค์กรที่ตารางวันที่ควรได้รับการกำหนดอย่างสม่ำเสมอWhat's more, within an organization a date table should be consistently defined. ดังนั้นเทคนิคที่คุณตัดสินใจที่จะใช้ เราขอแนะนำให้คุณสร้าง เทมเพลต Power BI Desktop ที่มีตารางวันที่กำหนดค่าแบบเต็มSo, whatever technique you decide to use, we recommend you create a Power BI Desktop template that includes a fully configured date table. แชร์เทมเพลตกับผู้สร้างโมเดลทั้งหมดในองค์กรของคุณShare the template with all modelers in your organization. ดังนั้นเมื่อใดก็ตามที่มีคนพัฒนาโมเดลใหม่พวกเขาสามารถเริ่มต้นด้วยตารางวันที่ที่กำหนดอย่างสม่ำเสมอSo, whenever someone develops a new model, they can begin with a consistently defined date table.

ใช้วันที่/เวลาอัตโนมัติUse Auto date/time

ตัวเลือก วันที่/เวลาแบบอัตโนมัต ให้ความสะดวกรวดเร็วและสามารถปรับแต่งตัวแสดงเวลาได้ง่ายThe Auto date/time option delivers convenient, fast, and easy-to-use time intelligence. ผู้เขียนรายงานสามารถใช้งานตัวปรับแต่งการแสดงเวลาได้ง่ายเมื่อมีการกรอง การจัดกลุ่มและการเจาะลึกลงไปตามช่วงเวลาของปฏิทินReports authors can work with time intelligence when filtering, grouping, and drilling down through calendar time periods.

เราขอแนะนำให้คุณเก็บตัวเลือกวันที่/ เวลาอัตโนมัติที่เปิดใช้งานเฉพาะเมื่อคุณใช้งานช่วงเวลาของปฏิทินและเมื่อคุณมีข้อกำหนดแบบจำลองที่เรียบง่ายในความสัมพันธ์กับเวลาWe recommended that you keep the Auto date/time option enabled only when you work with calendar time periods, and when you have simplistic model requirements in relation to time. การใช้ตัวเลือกนี้ยังสามารถทำได้อย่างสะดวกสบายเมื่อสร้างแบบจำลองเฉพาะกิจ การดำเนินการสำรวจข้อมูลหรือการสร้างโพรไฟล์Using this option can also be convenient when creating ad hoc models or performing data exploration or profiling. อย่างไรก็ตามวิธีการนี้ไม่รองรับการออกแบบตารางวันที่เดียวที่สามารถเผยแพร่ตัวกรองไปยังหลายตารางได้This approach, however, doesn't support a single date table design that can propagate filters to multiple tables. สำหรับข้อมูลเพิ่มเติมดู คำแนะนำวันที่/เวลาอัตโนมัติใน Power BI DesktopFor more information, see Auto date/time guidance in Power BI Desktop.

เชื่อมต่อกับ Power QueryConnect with Power Query

เมื่อแหล่งข้อมูลของคุณมีตารางวันที่แล้วเราขอแนะนำให้คุณใช้เป็นแหล่งข้อมูลของตารางวันที่แบบจำลองของคุณWhen your data source already has a date table, we recommend you use it as the source of your model date table. โดยทั่วไปแล้วจะเป็นกรณีที่คุณกำลังเชื่อมต่อไปยังคลังข้อมูล เนื่องจากจะมีตารางมิติวันที่It's typically the case when you're connecting to a data warehouse, as it will have a date dimension table. ด้วยวิธีนี้แบบจำลองของคุณใช้เป็นแหล่งข้อมูลของความจริงเดียวสำหรับเวลาในองค์กรของคุณThis way, your model leverages a single source of truth for time in your organization.

ถ้าคุณกำลังพัฒนาแบบจำลอง DirectQuery และแหล่งข้อมูลของคุณไม่มีตารางวันที่ เราขอแนะนำให้คุณเพิ่มตารางวันที่ไปยังแหล่งข้อมูลIf you're developing a DirectQuery model and your data source doesn't include a date table, we strongly recommend you add a date table to the data source. ซึ่งควรเป็นไปตามข้อกำหนดในการสร้างแบบจำลองทั้งหมดของตารางวันที่It should meet all the modeling requirements of a date table. จากนั้นคุณสามารถใช้ Power Query เพื่อเชื่อมต่อกับตารางวันที่You can then use Power Query to connect to the date table. ด้วยวิธีนี้การคำนวณแบบจำลองของคุณสามารถใช้ประโยชน์จากความสามารถในตัวแสดงเวลา DAX ได้This way, your model calculations can leverage the DAX time intelligence capabilities.

สร้างด้วย Power QueryGenerate with Power Query

คุณสามารถสร้างตารางวันที่โดยใช้ Power QueryYou can generate a date table using Power Query. ต่อไปนี้คือสองรายการบล็อกที่แสดงวิธีการ:Here are two blog entries that show you how:

เคล็ดลับ

ถ้าคุณไม่มีคลังข้อมูลหรือข้อกำหนดอื่นๆ ที่สอดคล้องกันสำหรับเวลาในองค์กรของคุณ ให้พิจารณาใช้ Power Query เพื่อเผยแพร่กระแสข้อมูลIf you don't have a data warehouse or other consistent definition for time in your organization, consider using Power Query to publish a dataflow. จากนั้นให้ผู้สร้างแบบจำลองข้อมูลทั้งหมดเชื่อมต่อกับกระแสข้อมูล เพื่อเพิ่มตารางวันที่ลงในแบบจำลองของพวกเขาThen, have all data modelers connect to the dataflow to add date tables to their models. กระแสข้อมูล จะกลายเป็นแหล่งเดียวของความจริงสำหรับเวลาในองค์กรของคุณThe dataflow becomes the single source of truth for time in your organization.

ถ้าคุณต้องการสร้างตารางวันที่ให้ลองทำด้วย DAXIf you need to generate a date table, consider doing it with DAX. คุณอาจพบว่ามันง่ายขึ้นYou might find it's easier. มีอะไรเพิ่มเติมซึ่งมีแนวโน้มที่จะสะดวกมากขึ้น เนื่องจาก DAX มีความสามารถในการสร้างและการจัดการตารางวันที่ได้อย่างง่ายดายWhat's more, it's likely to be more convenient, because DAX includes some built-in intelligence to simplify creating and managing date tables.

สร้างด้วย DAXGenerate with DAX

คุณสามารถสร้างตารางวันที่ในแบบจำลองของคุณโดยการสร้างตารางที่มีการคำนวณโดยใช้ ปฏิทิน หรือ CALENDARAUTOฟังก์ชัน DAXYou can generate a date table in your model by creating a calculated table using either the CALENDAR or CALENDARAUTO DAX functions. แต่ละฟังก์ชันจะส่งกลับตารางแบบคอลัมน์เดียวของวันที่Each function returns a single-column table of dates. จากนั้นคุณสามารถขยายตารางที่มีการคำนวณด้วยคอลัมน์จากการคำนวณเพื่อรองรับการกรองช่วงวันที่และข้อกำหนดของการจัดกลุ่มYou can then extend the calculated table with calculated columns to support your date interval filtering and grouping requirements.

  • ใช้ฟังก์ชัน ปฏิทิน เมื่อคุณต้องการกำหนดช่วงวันที่Use the CALENDAR function when you want to define a date range. คุณส่งผ่านสองค่า: วันที่เริ่มต้นและวันสิ้นสุดYou pass in two values: the start date and end date. ค่าเหล่านี้สามารถถูกกำหนดโดยฟังก์ชัน DAX อื่นๆเช่น MIN(Sales[OrderDate]) หรือ MAX(Sales[OrderDate])These values can be defined by other DAX functions, like MIN(Sales[OrderDate]) or MAX(Sales[OrderDate]).
  • ใช้ฟังก์ชัน CALENDARAUTO เมื่อคุณต้องการให้ช่วงวันที่ครอบคลุมวันที่ทั้งหมดที่จัดเก็บไว้ในแบบจำลองโดยอัตโนมัติUse the CALENDARAUTO function when you want the date range to automatically encompass all dates stored in the model. คุณสามารถส่งผ่านพารามิเตอร์ตัวเลือกเดียวที่เป็นเดือนสิ้นสุดของปี (ถ้าปีของคุณเป็นปีปฏิทินซึ่งลงท้ายด้วยเดือนธันวาคมคุณไม่จำเป็นต้องส่งค่า)You can pass in a single optional parameter that's the end month of the year (if your year is a calendar year, which ends in December, you don't need to pass in a value). มันเป็นฟังก์ชั่นที่มีประโยชน์เพราะช่วยให้มั่นใจได้ว่าจะส่งคืนวันที่เต็มปีซึ่งเป็นข้อกำหนดสำหรับตารางวันที่ที่ทำเครื่องหมายไว้It's a helpful function, because it ensures that full years of dates are returned—it's a requirement for a marked date table. ยิ่งไปกว่านั้นคุณไม่จำเป็นต้องจัดการการขยายตารางไปยังปีในอนาคต: เมื่อการรีเฟรชข้อมูลเสร็จสมบูรณ์จะทริกเกอร์การคำนวณใหม่ของตารางWhat's more, you don't need to manage extending the table to future years: When a data refresh completes, it triggers the recalculation of the table. การคำนวณใหม่จะขยายช่วงวันที่ของตารางโดยอัตโนมัติเมื่อวันที่สำหรับปีใหม่ถูกโหลดลงในแบบจำลองA recalculation will automatically extend the table's date range when dates for a new year are loaded into the model.

ลอกแบบด้วย DAXClone with DAX

เมื่อโมเดลของคุณมีตารางวันที่และคุณต้องการมีตารางวันที่เพิ่มเติมคุณสามารถโคลนตารางวันที่ที่มีอยู่ได้อย่างง่ายดายWhen your model already has a date table and you need an additional date table, you can easily clone the existing date table. ซึ่งเป็นกรณีเมื่อวันที่เป็น มิติการเล่นบทบาทIt's the case when date is a role playing dimension. คุณสามารถลอกแบบตารางได้โดยการสร้างตารางที่มีการคำนวณYou can clone a table by creating a calculated table. นิพจน์ตารางที่ได้รับการคำนวณเป็นเพียงชื่อของตารางวันที่ที่มีอยู่The calculated table expression is simply the name of the existing date table.

ขั้นตอนถัดไปNext steps

สำหรับข้อมูลเพิ่มเติมที่เกี่ยวข้องกับบทความนี้ โปรดดูทรัพยากรต่อไปนี้:For more information related to this article, check out the following resources: