Địa chỉ:
Lầu 7 Tòa nhà STA, 618 đường 3/2, Phường Diên Hồng (Phường 14, Quận 10), TP HCM
Giờ làm việc
Thứ 2 tới thứ 6: 9:00 - 18:00
Địa chỉ:
Lầu 7 Tòa nhà STA, 618 đường 3/2, Phường Diên Hồng (Phường 14, Quận 10), TP HCM
Giờ làm việc
Thứ 2 tới thứ 6: 9:00 - 18:00
Khi làm việc với các hệ thống phân tích dữ liệu kinh doanh, Time trong Power BI (Power Query) là một trong những nhóm công cụ thiết yếu nhưng thường bị xem nhẹ. Việc làm chủ các tính năng thao tác với Time trong Power BI trên thanh công cụ Power Query sẽ giúp bạn dễ dàng bóc tách, chuẩn hóa, phân tích cú pháp văn bản, gom nhóm theo khung giờ và thực hiện các phép trừ thời gian phức tạp chỉ với vài thao tác nhấp chuột hoặc thông qua ngôn ngữ M tùy biến.
Bài viết dưới đây, Starttrain sẽ cung cấp cho bạn bức tranh toàn diện từ lý thuyết, ứng dụng thực tế đến mã lệnh M và các phương pháp tối ưu hóa data model chuẩn doanh nghiệp.
Trong Power BI, dữ liệu dạng Time đại diện cho mốc thời gian diễn ra sự kiện trong chu kỳ 24 giờ của một ngày (từ 00:00:00 đến 23:59:59), chỉ chứa thông tin giờ, phút, giây độc lập và hoàn toàn không bao gồm thông tin ngày tháng năm.
Ngay tại giao diện Power Query Editor, nhóm công cụ Time đóng vai trò giúp các chuyên gia dữ liệu làm sạch, chuẩn hóa và trích xuất các thành phần thời gian từ những cột DateTime. Việc kiểm soát và làm chủ chức năng Time trong Power Query không chỉ giải quyết triệt để các bài toán phân tích kinh doanh như theo dõi ca kíp, khung giờ cao điểm, … mà còn giúp tối ưu nén bộ nhớ cho engine VertiPaq và tăng tốc độ phản hồi của toàn bộ hệ sinh thái báo cáo.
Giao diện Power Query cung cấp hai vị trí chứa bộ công cụ thao tác với dữ liệu thời gian:
Khi nhấp vào menu thả xuống của biểu tượng chiếc đồng hồ Time, Power Query cung cấp các chức năng cụ thể sau:
Dưới đây là minh họa chi tiết từng chức năng xử lý Time trong Power Query Editor:
Tính năng Time Only loại bỏ hoàn toàn thành phần ngày tháng năm khỏi một cột DateTime, chuyển đổi dữ liệu thành kiểu thời gian thuần túy (Time).
Trên thanh công cụ Transform, nhóm Date & Time Column cung cấp nút lệnh Time với biểu tượng đồng hồ. Menu thả xuống gồm các tùy chọn: Time Only, Local Time, Parse, Hour, Minute, Second, Combine Date and Time, Earliest, Latest. Cột OrderDateTime ban đầu đang chứa dữ liệu đầy đủ ngày và giờ.

Sau khi click chọn Time Only, cột OrderDateTime được biến đổi hoàn toàn: phần ngày tháng năm đã được loại bỏ, Data Type chuyển sang Time. Bước biến đổi được ghi nhận trong Applied Steps với tên Extracted Time.

Chức năng Local Time xử lý các tập dữ liệu có phần bù múi giờ, quy chuẩn mốc thời gian quốc tế về múi giờ thiết lập trên máy cục bộ của người dùng.
Nhấp chuột vào biểu tượng kiểu dữ liệu ở góc trái tiêu đề cột OrderDateTime, chọn định dạng Date/Time/Timezone để chuẩn bị cho thao tác xử lý múi giờ.

Khi cột dữ liệu đã được định dạng sang kiểu Date/Time/Timezone (chứa phần bù múi giờ như +07:00), nhấp vào menu Time trên thẻ Transform và chọn Local Time để chuyển đổi các giá trị về giờ cục bộ của hệ thống.

Power Query tạo bước Calculated Local Time trong Applied Steps. Toàn bộ dữ liệu trong cột được chuẩn hóa đồng nhất theo múi giờ cục bộ.

Khi dữ liệu thời gian đang ở dạng chuỗi văn bản ký tự (Data Type: Text), nhấp vào nút Time trên thanh công cụ và chọn tính năng Parse để Power Query tự động phân tích cú pháp chuỗi thành mốc thời gian chuẩn.

Cột dữ liệu chuỗi ký tự ban đầu đã được chuyển đổi thành công sang kiểu dữ liệu Time thuần túy (hh:mm:ss). Bước thao tác được lưu lại với tên Parsed Time.

Chức năng trích xuất thành phần giờ (Hour) chuyển mốc thời gian thành một số nguyên từ 0 đến 23, là cơ sở để phân tích doanh thu theo từng khung giờ trong ngày.
Từ cột OrderDateTime, nhấp vào công cụ Time > chọn nhóm Hour > nhấp chọn tính năng Hour. Chú thích hiển thị: “Return the hour corresponding to each Date/Time value in the selected columns”.

Cột dữ liệu được chuyển đổi thành số nguyên (Data Type: Whole Number) thể hiện số giờ trong ngày từ 0 đến 23. Trong bảng Applied Steps, bước này được đặt tên là Extracted Hour.

Tính năng Start of Hour đưa phút và giây của mọi dòng dữ liệu về 00:00:00, giúp nén độ biến thiên dữ liệu (Cardinality) cực mạnh cho VertiPaq engine.
Nhấp chuột vào menu Time trên thanh công cụ Transform, di chuột vào mục Hour và chọn lệnh Start of Hour. Chú thích hệ thống giải thích rõ công dụng: “Return the start of the hour corresponding to each Time value in the selected columns”.

Dữ liệu tại cột OrderDateTime được làm tròn toàn bộ phút và giây về 00:00:00 (ví dụ: 2022-01-11 09:35:00 chuyển thành 2022-01-11 09:00:00). Thao tác này sinh ra bước Calculated Start of Hour trong Applied Steps.

Ngược lại với Start of Hour, End of Hour xác định điểm chặn kết thúc của khung giờ, phục vụ báo cáo chốt sổ định kỳ hoặc bàn giao.
Từ menu Time > nhóm Hour, nhấp chuột chọn tùy chọn End of Hour. Thao tác này phục vụ việc xác định mốc kết thúc của khung giờ giao dịch hoặc chốt sổ ca làm việc.

Dòng dữ liệu được làm tròn đến điểm bắt đầu của giờ tiếp theo. Trong bảng Applied Steps, bước thực hiện được đặt tên là Calculated End of Hour.

Tính năng Minute lấy ra số phút độc lập (từ 0 đến 59), phục vụ chia dữ liệu thành các block 15, 30 phút để đo lường dòng khách hàng hoặc phân luồng giao thông.
Trên thanh Transform, mở menu Time và nhấp trực tiếp vào tùy chọn Minute. Tính năng này được dùng khi người phân tích muốn trích xuất riêng biệt số phút để phân tích tần suất đến của khách hàng theo từng chu kỳ ngắn.

Cột OrderDateTime được chuyển đổi hoàn toàn sang kiểu số nguyên (Whole Number, 123) chỉ gồm các giá trị phút từ dòng tương ứng. Thao tác được ghi nhận trong Applied Steps với tên Extracted Minute.

Nhấp chuột vào menu Time trên dải lệnh Transform và chọn lệnh Second nhằm tách riêng phần giây phục vụ các yêu cầu đo lường tốc độ phản hồi hệ thống ở mức micro.

Cột dữ liệu được trích xuất thành công giá trị giây dưới dạng kiểu số thực (Decimal Number). Trong ví dụ dữ liệu mẫu ban đầu đều có giây bằng 0 nên toàn bộ cột trả về giá trị 0. Bước thực thi được lưu lại là Extracted Second.

Chức năng Earliest quét toàn bộ cột và trả về một giá trị vô hướng (Scalar Value) đại diện cho thời điểm sớm nhất ghi nhận trong tập dữ liệu.
Trên menu thả xuống của công cụ Time, chọn tính năng Earliest. Chú thích hệ thống hiển thị: “Return the earliest Time value in the currently selected column” (Trả về giá trị thời gian sớm nhất hiện có trong cột được chọn).

Bảng dữ liệu được chuyển đổi ngay thành một giá trị duy nhất 2022-01-11 09:35:00, đại diện cho mốc thời gian sớm nhất của cột dữ liệu ban đầu. Trong Applied Steps, bước thao tác này có tên là Calculated Earliest.

Tương tự Earliest, chức năng Latest quét cột và trả về một giá trị duy nhất phản ánh thời điểm muộn nhất hoặc mốc dữ liệu cuối cùng được hệ thống ghi nhận.
Từ cột dữ liệu OrderDateTime, mở menu Time trên thanh công cụ Transform và rê chuột chọn tính năng Latest. Lệnh này dùng để xác định thời điểm ghi nhận dữ liệu cuối cùng của hệ thống.

Toàn bộ bảng dữ liệu rút gọn thành một giá trị duy nhất 2022-07-21 06:10:00 thể hiện mốc thời gian muộn nhất trong danh sách. Bước này sinh ra tên Calculated Latest trong Applied Steps.

Tính năng Combine Date and Time trên thẻ Add Column cho phép gộp 1 cột Ngày và 1 cột Giờ độc lập thành cột DateTime chuẩn mà không làm mất 2 cột gốc.
Sau khi đã chuẩn bị sẵn một cột kiểu Time và một cột kiểu Date, chuyển sang thanh công cụ Add Column > nhấp vào menu Time > chọn tính năng Combine Date and Time. Thao tác này giúp tái lập một cột ngày giờ chuẩn mà không làm mất hai cột thành phần ban đầu.

Một cột mới có tên Merged được tạo ra ở cuối bảng với định dạng DateTime. Các giá trị ngày và giờ được ghép hoàn hảo với nhau. Bước sinh ra trong Applied Steps là Inserted Merged Date and Time.

Khi chọn đồng thời hai cột chứa dữ liệu thời gian, vào thẻ Add Column > mở menu Time > nhấp chọn tính năng Subtract.

Power Query tạo ra cột mới mang tên Subtraction với biểu tượng đồng hồ bấm giờ (Data Type: Duration). Vì hai cột trừ cho nhau có cùng giá trị nên kết quả hiển thị 0.00:00:00. Bước sinh ra trong Applied Steps là Inserted Time Subtraction.

Mọi thao tác nhấp chuột trực quan trên thanh ribbon của Power Query Editor đều được tự động dịch sang các hàm và biểu thức của ngôn ngữ Power Query M (M Language). Dưới đây là bảng tổng hợp toàn bộ các hàm M, toán tử và cú pháp thực tế tương ứng với từng chức năng xử lý thời gian:
| Thao tác | Hàm M | Cú pháp |
| Time Only | DateTime.Time | = Table.TransformColumns(#”Removed Columns”, {{“OrderDateTime”, DateTime.Time, type time}}) |
| Local Time | DateTimeZone.ToLocal | = Table.TransformColumns(#”Changed Type1″, {{“OrderDateTime”, DateTimeZone.ToLocal, type datetimezone}}) |
| Parse | Time.From DateTimeZone.From | = Table.TransformColumns(#”Changed Type1″, {{“OrderDateTime”, each Time.From(DateTimeZone.From(_)), type time}}) |
| Hour | Time.Hour | = Table.TransformColumns(#”Removed Columns”, {{“OrderDateTime”, Time.Hour, Int64.Type}}) |
| Start of Hour | Time.StartOfHour | = Table.TransformColumns(#”Removed Columns”, {{“OrderDateTime”, Time.StartOfHour, type datetime}}) |
| End of Hour | Time.EndOfHour | = Table.TransformColumns(#”Calculated Start of Hour”, {{“OrderDateTime”, Time.EndOfHour, type datetime}}) |
| Minute | Time.Minute | = Table.TransformColumns(#”Removed Columns”, {{“OrderDateTime”, Time.Minute, Int64.Type}}) |
| Second | Time.Second | = Table.TransformColumns(#”Removed Columns”, {{“OrderDateTime”, Time.Second, type number}}) |
| Earliest | List.Min | = List.Min(#”Removed Columns”[OrderDateTime]) |
| Latest | List.Max | = List.Max(#”Removed Columns”[OrderDateTime]) |
| Combine Date and Time | Toán tử ghép & | = Table.AddColumn(#”Inserted Date”, “Merged”, each [Time] & [Date], type datetime) |
| Subtract | Toán tử trừ – | = Table.AddColumn(#”Duplicated Column”, “Subtraction”, each [#”Time – Copy”] – [Time], type duration) |
Để tránh nhầm lẫn khi xây dựng mô hình dữ liệu, bảng dưới đây làm rõ sự khác biệt giữa các kiểu dữ liệu liên quan đến thời gian:
| Kiểu dữ liệu | Biểu tượng trong Power Query | Ví dụ | Ứng dụng |
| Time | Chiếc đồng hồ | 09:35:00 | Phân tích giờ trong ngày, phân ca, khung giờ cao điểm |
| Date | Cuốn lịch | 2022-01-11 | Phân tích theo ngày, tuần, tháng, quý, năm |
| DateTime | Lịch kèm đồng hồ | 2022-01-11 09:35:00 | Ghi nhận chính xác thời điểm xảy ra sự kiện |
| DateTimeZone | Địa cầu kèm lịch | 2022-01-11 09:35:00 +07:00 | Xử lý dữ liệu hệ thống đa quốc gia có múi giờ |
| Duration | Đồng hồ bấm giờ | 0.02:15:30 (2h 15p 30s) | Đo lường khoảng cách giữa 2 mốc thời gian |
Có. Trong kiến trúc kho dữ liệu chuẩn (Star Schema), bạn nên xây dựng một bảng Dim_Time chứa 24 dòng (nếu phân tích theo Giờ) hoặc 1.440 dòng (nếu phân tích theo từng Phút). Bảng này chứa các trường: Hour, Minute, Khung giờ, Ca làm việc. Bảng Fact chỉ cần lưu trữ khóa ngoại liên kết tới bảng này.
Trong Power Query, sau khi trích xuất cột Hour bằng lệnh Time > Hour > Hour, bạn chỉ cần nhấn vào mũi tên lọc trên cột Hour và chọn khoảng giá trị từ 8 đến 17 (tương ứng 8:00 đến 17:59).
Bạn hoàn toàn có thể dùng hàm DAX như HOUR(‘Table'[DateTime]) hoặc MINUTE(‘Table'[DateTime]) để tạo Calculated Column. Tuy nhiên, theo khuyến nghị chuẩn của Microsoft, mọi biến đổi dữ liệu nên được thực hiện ở tầng Power Query (hoặc Data Source) để tối ưu hiệu năng và tận dụng cơ chế nén dữ liệu của VertiPaq.
Làm chủ bộ công cụ Time trong Power BI (Power Query) không đơn thuần là việc học cách nhấp chuột trên thanh công cụ, mà là nền tảng cốt lõi để xây dựng một hệ thống báo cáo phân tích hiệu năng cao, chuẩn hóa và chuyên nghiệp.
Nếu bạn muốn rèn luyện và làm chủ toàn diện tư duy xử lý, làm sạch và mô hình hóa dữ liệu chuyên sâu với Power Query theo chuẩn dự án thực tế tại doanh nghiệp, hãy tham khảo ngay khóa học Power BI Business Intelligence Essentials tại Starttrain để bứt phá kỹ năng phân tích dữ liệu một cách bài bản nhất!

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official

Starttrain Official
Vui lòng liên hệ qua những thông tin bên dưới. Starttrain sẽ phản hồi bạn trong thời gian sớm nhất.




