Kiến thức
15 phút đọc

Tạo Bảng Thời Gian Trong Power BI Desktop

Thực hiện phép tính dựa trên ngày và giờ là yêu cầu chung khi tạo báo cáo trong Power BI. Các tổ chức muốn biết hoạt động kinh doanh diễn ra như thế nào qua các tháng, quý, năm,… Vì thế, các giá trị liên quan đến thời gian này phải được định dạng chính xác. Power BI tự động phát hiện các cột và bảng ngày tháng. Tuy nhiên, đôi khi cần thực hiện thêm các bước để có được ngày ở định dạng tổ chức yêu cầu.

Ví dụ: giả sử đang phát triển các báo cáo cho nhóm Bán hàng (Sales) tại tổ chức của mình. Cơ sở dữ liệu chứa các bảng Sales, Orders, Product, v.v. Trong đó, 2 bảng Bán hàng và Đơn hàng có chứa các cột ngày riêng như: cột Ngày giao hàng (ShipDate) và Ngày đặt hàng (OrrderDate) trong bảng Sales và Orders. Nhiệm vụ của bạn là phát triển một bảng tổng doanh số và đơn đặt hàng theo năm và tháng. Làm cách nào tạo ra một hình ảnh có nhiều bảng, mỗi bảng tham chiếu đến các cột ngày của riêng chúng?

tạo bảng thời gian

Để giải quyết vấn đề này, có thể tạo một bảng ngày chung có thể được sử dụng bởi nhiều bảng. 

1. Tạo một bảng thời gian chung

Những cách mà bạn có thể xây dựng một bảng thời gian bằng:

  • Nguồn dữ liệu
  • DAX
  • Dùng Power Query

1.1. Nguồn dữ liệu trong tạo bảng thời gian

Đôi khi, các bảng từ cơ sở dữ liệu đã có bảng thời của riêng chúng. Nếu quản trị viên thiết kế cơ sở dữ liệu hoàn thành công việc kỹ lưỡng. Các bảng này có thể được sử dụng để thực hiện các tác vụ sau:

  • Xác định ngày lễ của công ty
  • Tách biệt lịch và năm tài chính
  • Xác định cuối tuần so với các ngày trong tuần

Các bảng dữ liệu nguồn đã hoàn thiện và sẵn sàng để sử dụng ngay. Nếu có một bảng như vậy, hãy đưa nó vào mô hình dữ liệu và không sử dụng bất kỳ phương pháp nào khác được nêu trong phần này. Bảng thời gian từ nguồn này được khuyến khích sử dụng hơn vì nó có khả năng được chia sẻ với các công cụ khác mà bạn có thể đang sử dụng ngoài Power BI.

1.2. DAX

Bạn có thể sử dụng các hàm Biểu thức phân tích dữ liệu (viết tắt là DAX)  như: CALENDARAUTO() hoặc CALENDAR() để tạo bảng thời gian chung

  • Hàm CALENDAR(): trả về một phạm vi ngày liền kề. Nó dựa trên ngày bắt đầu và ngày kết thúc được nhập làm đối số trong hàm. 
  • Hàm CALENDARAUTO() trả về một phạm vi ngày liền kề, đầy đủ được xác định tự động từ tập dữ liệu. Ngày bắt đầu được chọn là ngày sớm nhất tồn tại trong tập dữ liệu. Ngày kết thúc là ngày mới nhất tồn tại trong tập dữ liệu cùng với dữ liệu đã được điền vào tháng tài chính mà bạn có thể chọn đưa vào làm đối số trong hàm CALENDARAUTO()

Ví dụ sử dụng hàm CALENDAR()

Ta chỉ muốn xem dữ liệu từ ngày 31 tháng 5 năm 2011 (ngày đầu tiên Bán hàng bắt đầu theo dõi dữ liệu này) và chuyển tiếp trong 10 năm tiếp theo.

Trong Power BI Desktop, chuyển đến tab Table. Chọn New Table , rồi nhập công thức DAX sau:

tạo bảng thời gian

Dates  = CALENDAR(DATE(2011, 5, 31), DATE(2022, 12, 31))

tạo bảng thời gian

Bây giờ, có một cột ngày tháng có thể sử dụng. Tuy nhiên, cột này hơi thưa thớt. Muốn xem các cột chỉ cho năm, số tháng, tuần trong năm và ngày trong tuần, chọn Bạn New Table. Sau đó,nhập phương trình DAX sau. Phương trình này sẽ truy xuất luôn cả năm từ bảng thời gian của bạn.

Year = YEAR(Dates[Date])

tạo bảng thời gian

Bạn có thể thực hiện quy trình tương tự để truy xuất số tháng, số tuần và ngày trong tuần:

MonthNum = MONTH(Dates[Date])

WeekNum = WEEKNUM(Dates[Date])

DayoftheWeek = FORMAT(Dates[Date], “DDDD”)

Khi bạn hoàn thành, bảng của bạn sẽ chứa các cột được hiển thị trong hình dưới đây.

tạo bảng thời gian

Bây giờ bạn đã tạo một bảng thời gian chung bằng cách sử dụng DAX. Quá trình này chỉ thêm bảng mới của bạn vào mô hình dữ liệu. Tuy vây, vẫn cần thiết lập mối quan hệ giữa bảng ngày với bảng Doanh số và Đơn đặt hàng. Sau đó đánh dấu bảng của bạn là bảng ngày chính thức của mô hình dữ liệu. 

1.3. Dùng Power Query

Bạn cũng có thể sử dụng Power Query để tạo ra bảng thời gian chung qua các bước sau:

Chọn Transform Data trong Power BI Desktop, thao tác này sẽ đưa bạn đến Power Query. Trong khoảng trống của ngăn Queries bên trái, nhấp chuột phải để mở menu thả xuống sau. Tại đó, chọn New Query > Blank Query.

Dùng Power Query

Trong kết quả của dạng xem New Query, hãy nhập công thức sau để tạo bảng thời gian:

= List.Dates(#date(2011,05,31), 365*10, #duration(1,0,0,0))

Trong kết quả của dạng xem New Query, hãy nhập công thức sau để tạo bảng thời gian:

= List.Dates(#date(2011,05,31), 365*10, #duration(1,0,0,0))

Đối với dữ liệu bán hàng, muốn ngày bắt đầu phản ánh ngày sớm nhất có trong dữ liệu: ngày 31 tháng 5 năm 2011. Ngoài ra, muốn xem ngày trong 11 năm tới, bao gồm các ngày trong tương lai. Cách tiếp cận này đảm bảo rằng, khi dữ liệu bán hàng mới chảy vào, bạn sẽ không phải tạo lại bảng này. Bạn cũng có thể thay đổi thời lượng. Trong trường hợp này, bạn muốn có một điểm dữ liệu cho mỗi ngày, nhưng bạn cũng có thể tăng theo giờ, phút và giây. Hình dưới đây cho thấy kết quả:

Dùng Power Query

Sau khi thực hiện thành công bước này sẽ có một danh sách ngày tháng thay. Để sửa lỗi này, hãy chuyển đến tab Transform trên ruy-băng và chọn Convert > To Table. Như tên cho thấy, tính năng này sẽ chuyển đổi danh sách của bạn thành một bảng. Bạn cũng có thể đổi tên cột thành DateCol.

Tiếp theo, muốn thêm các cột vào bảng mới để xem ngày theo năm, tháng, tuần và ngày để tạo cấu trúc phân cấp trong hình ảnh trực quan. Trước hết, cần thay đổi loại cột. Chọn biểu tượng bên cạnh tên của cột và trong menu thả xuống xuất hiện, hãy chọn loại Ngày (Date).

Dùng Power Query

Sau khi chọn xong kiểu Ngày, có thể thêm các cột năm, tháng, tuần, ngày. Chuyển đến Thêm Cột, chọn menu thả xuống bên dưới Ngày (Date) -> Năm (Year).

Dùng Power Query

Lưu ý rằng Power BI đã thêm một cột gồm tất cả các năm được lấy từ DateCol.

tạo bảng thời gian

Hoàn thành quá trình tương tự trong các tháng, tuần và ngày. Sau khi bạn hoàn thành quá trình này, bảng sẽ chứa các cột được hiển thị trong hình dưới đây.

Bây giờ, bạn đã sử dụng thành công Power Query để tạo một bảng ngày chung.

Các bước trước cho biết cách đưa bảng vào mô hình dữ liệu. Cần đánh dấu bảng của mình là bảng ngày chính thức để Power BI có thể nhận ra bảng đó cho tất cả các giá trị trong tương lai và đảm bảo rằng định dạng là chính xác.

2. Đánh dấu bảng thời gian chính thức

Để đánh dấu bảng là bảng ngày tháng chính thức thì bạn cần tìm bảng mới trên ngăn Fields. Kích chuột phải vào tên của bảng rồi chọn Mark as date table giống như trong hình dưới đây.

Đánh dấu bảng thời gian chính thức

Bằng cách đánh dấu bảng của bạn là bảng ngày, Power BI thực hiện xác thực để đảm bảo rằng dữ liệu không chứa giá trị null – là duy nhất và chứa các giá trị ngày liên tục trong một khoảng thời gian. Bạn cũng có thể chọn các cột cụ thể trong bảng của mình để đánh dấu là ngày, điều này có thể giúp bạn có nhiều cột trong bảng của mình. Bấm chuột phải vào bảng, chọn Mark as date table, rồi chọn Date table settings. Cửa sổ sau sẽ xuất hiện, nơi bạn có thể chọn cột nào sẽ được đánh dấu là Ngày.

Việc chọn Mark as date table sẽ xóa cấu trúc phân cấp được tạo tự động khỏi trường Ngày (Date) trong bảng mà bạn đã đánh dấu là bảng ngày. Đối với các trường ngày khác, cấu trúc phân cấp tự động sẽ vẫn hiện diện cho đến khi bạn thiết lập mối quan hệ giữa trường đó và bảng ngày hoặc cho đến khi bạn tắt tính năng Ngày/Giờ Tự động (Auto Date/Time). Bạn có thể thêm cấu trúc phân cấp vào bảng ngày chung của mình theo cách thủ công bằng cách bấm chuột phải vào các cột năm, tháng, tuần hoặc ngày trong ngăn Fields rồi chọn Cấu trúc phân cấp mới (New hierarchy).

Xem thêm: Cách dùng Power BI Desktop

3. Sử dụng Ngày/giờ tự động

Tùy chọn Ngày /giờ tự động mang lại thông tin thời gian tiện lợi, nhanh chóng và dễ sử dụng. 

Bật tùy chọn Ngày/giờ tự động khi bạn làm việc với các khoảng thời gian trên lịch và khi bạn có các yêu cầu về mô hình đơn giản liên quan đến thời gian. Sử dụng tùy chọn này cũng có thể thuận tiện khi tạo các mô hình đặc biệt hoặc thực hiện khám phá hoặc định hình dữ liệu. 

4. Xây dựng hình ảnh trực quan

Để xây dựng hình ảnh trực quan giữa các bảng Doanh số và Đơn hàng, cần thiết lập kết nối giữa bảng ngày chung mới này với các bảng Doanh số và Đơn hàng. Từ đó, bạn sẽ có thể xây dựng hình ảnh trực quan bằng cách sử dụng bảng ngày tháng mới. 

Để hoàn thành tác vụ này, ở phần xem Report bạn hãy chuyển đến tab Modelling > Manage Relationships, tại đây bạn có thể tạo mối quan hệ giữa bảng ngày tháng chung với các bảng Đơn hàng và Bán hàng bằng cách sử dụng cột Ngày đặt hàng (OrderDate). 

Dưới đây cho thấy một ví dụ về một mối quan hệ trên:

Sau khi xây dựng xong các kết nối giữa các bảng, bạn có thể xây dựng hình ảnh trực quan của bảng Tổng doanh số và Số lượng đặt hàng theo thời gian qua bảng ngày chung mà bạn đã phát triển bằng cách sử dụng phương pháp DAX hoặc Power Query.

Để xác định tổng doanh số bán hàng, bạn cần tính tổng tất cả doanh số bán hàng vì cột Amount trong bảng Doanh số bán hàng chỉ xem xét doanh thu cho mỗi lần bán hàng chứ không phải tổng doanh thu bán hàng.

Bạn có thể dùng công thức sau trong trường hợp này:

#Total Sales = SUM(Sales[‘Amount’])

Sau khi hoàn tất, bạn có thể tạo bảng bằng cách quay lại tab Visualizations và chọn Table visual. Để xem tổng số đơn đặt hàng và doanh số bán hàng theo năm và tháng, từ bảng thời gian của mình, chọn cột OrderQty và thước đo #TotalSales . Khi tìm hiểu về hệ thống phân cấp, bạn cũng có thể xây dựng hệ thống phân cấp cho phép bạn đi sâu vào từ năm đến tháng. 

Trên đây là những thông tin cần thiết để biết tạo bảng thời gian trong Power BI Desktop. Để tìm hiểu thêm về Power BI Desktop, các bạn có thể tham khảo series Power BI Desktop tại Mastering Data Analytics. Cảm ơn các bạn đã đọc bài!

Xem thông tin khai giảng Khóa học Business Intelligence sớm nhất tại Mastering Data Analytics. Với mọi thắc mắc xin liên hệ hotline 0961 48 66 48 hoặc inbox Fanpage Mastering Data Analytics để đăng ký nhanh nhất nhé!