Trong nhiều báo cáo, bản trình bày, việc tính thay đổi phần trăm hàng tháng là một thao tác cực kỳ hữu ích. Bài này sẽ hướng dẫn các bạn cách tính phần trăm thay đổi trong tập dữ liệu về chuỗi thời gian.
Trong bài này chúng ta sẽ dùng một ví dụ mẫu là việc quẹt thẻ ra vào của nhân viên trong một tòa nhà tính theo ngày. Do vậy chúng ta đã có một danh sách ID và trường ngày giống như hình dưới đây:
Nhìn vào dữ liệu này chúng ta có thể biết được là nhân viên nào và thời điểm họ quét để vào tòa nhà trong suốt thời gian này. Chúng ta còn có thể chia nhỏ hơn nữa, xem xét từ quý 1 năm 2014 đến quý 1 năm 2015 và biết được nhân viên có mặt tăng hay giảm.
Bạn có thể tải file dữ liệu được đính kèm dưới đây để thao tác thực hành theo, file đó tên là Employee IDs Raw Data kéo xuống là thấy nhé.
Bước đầu tiên chúng ta cần làm là nạp dữ liệu này vào Power BI. Bạn có thể sử dụng mã sau để tải dữ liệu ID nhân viên (employee):
let
Source = Csv.Document(File.Contents("C:\Users\Mike\Desktop\Employee IDs.csv"),[Delimiter=",", Columns=2, Encoding=1252, QuoteStyle=QuoteStyle.None]),
#"Promoted Headers" = Table.PromoteHeaders(Source),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Employee ID", Int64.Type}, {"Date", type date}}),
#"Sorted Rows1" = Table.Sort(#"Changed Type",{{"Date", Order.Ascending}}),
#"Calculated Start of Month" = Table.TransformColumns(#"Sorted Rows1",{{"Date", Date.StartOfMonth, type date}}),
#"Grouped Rows" = Table.Group(#"Calculated Start of Month", {"Date"}, {{"Scans", each List.Sum([Employee ID]), type number}})
in
#"Grouped Rows"
Lưu ý nhỏ: Trong đoạn code trên có chữ Mike ở dòng thứ hai, đây là tùy chỉnh của máy tính này, do đó khi sử dụng mã này bạn có thể thay đổi vị trí tệp cho máy tính của mình.
Tiếp theo chúng ta đặt tên cho truy vấn IDs Employee, sau đó nhấn chọn Close&Apply trên tab Home của thanh công cụ để tải dữ liệu.
Tiếp theo chúng ta cần xây dựng một loạt các measures để tính toán phạm vi thời gian mà chúng ta cần dùng để tính phần trăm thay đổi từ tháng này sang tháng khác.
Bây giờ chúng ta xây dựng measures sau:
Tính tổng số lần quét thẻ nhân viên.
Total Scans = SUM('Employee IDs'[Scans])
Tính tổng tất cả các lần quét từ tháng trước. Lưu ý rằng chúng ta sẽ sử dụng công thức PreviousMonth() DAX formula.
Prior Month Scans = CALCULATE([Total Scans], PREVIOUSMONTH('Employee IDs'[Date]))
Cuối cùng chúng ta tính phần trăm thay đổi của tháng thực tế với tháng trước đó bằng measure % Change.
% Change = DIVIDE([Total Scans], [Prior Month Scans], blank())-1
Hoàn thành measure mới này thì danh sách trường (field) của bạn sẽ giống như hình dưới đây:
Bây giờ chúng ta có thể xây dựng một số hình rồi. Đầu tiên là xây dựng một bảng như dưới đây và bạn có thể thấy được dữ liệu đang tính toán như nào trong các measures.
Lúc đầu khi chúng ta thêm trường Date (ngày) vào biểu đồ, ta có một danh sách ngày theo năm, theo quý, theo tháng và ngày. Và chúng ta không cần đến hiển thị như vậy, vì cái ta cần là xem được các giá trị của ngày thực tế cụ thể. Để thay đổi điều này bạn hãy bấm vào mũi tên hướng xuống bên cạnh nhãn trường Date. Sau đó trong danh sách tùy chọn được thả xuống hãy chọn Date. Như vậy ta đã có thể xem được ngày thực tế cụ thể chứ không phải một hệ thống bàng ngày.
Bây giờ chúng ta sẽ thêm Total Scans, Prior Month Scans, và % Change. Bảng của chúng ta lúc này sẽ giống như hình dưới:
Bạn cũng thấy được định dạng của cột % Change đang không đúng, do đó hãy bôi đen % Change và nhấn chọn tab Modeling trên thanh công cụ rồi thay đổi định dạng Format của nó thành Percentage (phần trăm).
Cuối cùng chú ý ghi chú lại bảng với tổng số đếm cạnh nhau.
Lúc này chúng ta sẽ thêm biểu đồ thanh như hình dưới. Thêm tiếp các trường thích hợp vào hiển thị. Và khi hoàn thành biểu đồ chúng ta có được sẽ như sau:
Để cho biểu đồ trông tinh tế, chuyên nghiệp hơn, bạn nhấn chọn nút Properties trên kênh Visualizations. Mở mục Data Colors và thay đổi Minimum thành màu đỏ. Maximum thành màu xanh lá cây và sau đó gõ các số vào ô Minimum, Center, Maximum như hình dưới:
Vậy là chúng ta đã thu được thành quả rất đẹp mắt rồi.
Tài liệu kèm theo bài viết
Bạn có thể nhanh chóng biến dữ liệu thô thành báo cáo trực quan sinh động, từ đó dễ dàng đưa ra quyết định thông minh, nhanh chóng, kịp thời nhờ Power BI. Khám phá công cụ tuyệt vời này ngay với khóa học “PBIG01 - Tuyệt đỉnh Power BI - Thành thạo trực quan hóa và Phân tích dữ liệu” tại Gitiho. Nhấn vào Đăng ký và Học thử ngay nhé!