Đị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
Chức năng Date trong Power BI (Power Query) là bộ công cụ giúp trích xuất, biến đổi và chuẩn hóa dữ liệu ngày tháng hoàn toàn tự động. Việc xử lý trực tiếp các chiều thông tin thời gian ngay tại tầng tiền xử lý ETL bằng chức năng Date giúp tối ưu hóa dung lượng mô hình dữ liệu, tăng tốc độ tính toán Time Intelligence và hạn chế tối đa các lỗi sai lệch dữ liệu.
Dưới đây là hướng dẫn chi tiết toàn bộ các 28 tính năng thực tế của chức năng Date trong Power BI, phân tích mã ngôn ngữ M (M-Code) đằng sau từng thao tác và các kinh nghiệm chuẩn hóa dữ liệu theo chuẩn chuyên gia.
Chức năng Date trong Power Query là bộ công cụ trực quan giúp biến đổi và trích xuất dữ liệu ngày tháng. Người dùng có thể tiếp cận chức năng này thông qua 2 vị trí trên thanh công cụ:
Các nhóm tính năng chính trong menu Date:
Khi chọn cột OrderDateTime và nhấn Age trong menu Date, Power Query sẽ tự động so sánh giá trị ngày của từng dòng với thời điểm hiện tại của hệ thống. Kết quả trả về là một giá trị thời lượng thuộc kiểu Duration (định dạng ngày.giờ:phút:giây), phản ánh chính xác số ngày và thời gian đã trôi qua.


Thao tác chọn cột OrderDateTime rồi nhấn Date Only sẽ loại bỏ hoàn toàn thành phần giờ, phút, giây phía sau. Cột dữ liệu lập tức chuyển đổi thành định dạng ngày chuẩn YYYY-MM-DD với kiểu dữ liệu Date.

Đối với các cột dữ liệu ngày tháng bị lẫn định dạng văn bản hoặc chứa thông tin múi giờ phức tạp, chọn cột và nhấn Parse. Power Query sẽ tự động nhận diện mẫu định dạng, loại bỏ múi giờ và chuyển đổi an toàn về kiểu Date chuẩn.

Khi chọn cột OrderDateTime và vào Year -> Year, hệ thống sẽ trích xuất riêng giá trị năm 4 chữ số. Cột dữ liệu đầu ra được tự động chuyển thành kiểu số nguyên Whole Number.

Bằng cách chọn Year -> Start of Year, toàn bộ các mốc thời gian phát sinh trong cùng một năm sẽ được quy về chính xác ngày đầu tiên của năm đó: YYYY-01-01 00:00:00.

Khi chọn Year -> End of Year, Power Query chuyển đổi mốc ngày thành ngày mùng 1 của năm kế tiếp.

Khi chọn cột OrderDateTime và bấm Month -> Month, công cụ sẽ tách giá trị tháng dưới dạng số nguyên và bỏ đi các thành phần khác.

Khi thực hiện lệnh Month -> Start of Month, tất cả các ngày bất kỳ trong tháng đều được đưa về mốc ngày mùng 1 của tháng đó (YYYY-MM-01 00:00:00).

Lựa chọn Month -> End of Month sẽ tự động tính toán và trả về mốc ngày mùng 1 của tháng kế đó.

Nhấp vào Month -> Days in Month để trích xuất số lượng ngày thực tế của từng tháng (ví dụ: tháng 1 trả về 31, tháng 2 trả về 28 hoặc 29).

Chọn Month -> Name of Month để chuyển đổi giá trị ngày tháng thành tên chữ tiếng Anh đầy đủ (như January, February, March) với kiểu dữ liệu Text. Cột này dùng trực tiếp làm nhãn hiển thị trực quan trên biểu đồ.

Chọn cột OrderDateTime và nhấp Quarter -> Quarter of Year, hệ thống sẽ tự động phân loại ngày tháng vào 4 quý trong năm, trả về giá trị số từ 1 đến 4 dạng Whole Number để phục vụ phân tích QoQ.

Khi chọn Quarter -> Start of Quarter, dữ liệu sẽ được quy đổi về ngày đầu tiên của quý tương ứng (Quý 1 về 01/01, Quý 2 về 01/04, Quý 3 về 01/07, Quý 4 về 01/10).

Chọn Quarter -> End of Quarter để xác định mốc thời điểm là ngày mùng 1 của quý kế tiếp.

Thao tác chọn Week -> Week of Month sẽ trả về tuần thứ mấy của tháng (từ tuần 1 đến tuần 5 hoặc 6).

Chọn Week -> Week of Year để trích xuất số thứ tự tuần trong năm (từ tuần 1 đến tuần 52 hoặc 53).

Khi chọn Week -> Start of Week, mọi ngày trong cùng một tuần sẽ được đưa về ngày bắt đầu tuần (mặc định theo chuẩn hệ thống là Chủ Nhật).

Nhấp chọn Day -> Day để lấy riêng chỉ số ngày trong tháng (từ ngày 1 đến ngày 31) dưới dạng số nguyên Whole Number.

Chọn Day -> Day of Week để trả về số thứ tự của ngày trong tuần theo thang đo từ 0 đến 6 (mặc định 0 là Chủ Nhật, 1 là Thứ Hai).

Thao tác chọn Day -> Day of Year sẽ tính toán ngày đang chọn là ngày thứ bao nhiêu trong năm (từ 1 đến 365 hoặc 366).

Khi chọn Day -> Start of Day, Power Query sẽ đưa mốc thời gian về đúng thời điểm bắt đầu ngày mới: YYYY-MM-DD 00:00:00.

Bằng cách chọn Day -> End of Day, giá trị thời gian được chuyển về thời điểm bắt đầu ngày tiếp theo.

Chọn Day -> Name of Day để chuyển đổi mốc ngày thành tên thứ bằng chữ (như Monday, Tuesday, Sunday).

Khi chọn cột OrderDateTime và nhấn Earliest, Power Query sẽ duyệt toàn bộ cột và rút gọn bảng thành một giá trị duy nhất là mốc thời gian sớm nhất trong tập dữ liệu (cột được chọn).

Tương tự, nhấn Latest để lấy ra mốc ngày trễ nhất (mới nhất) trong toàn bộ cột dữ liệu.

Khi chọn đồng thời 2 cột riêng biệt là Date và Time (bằng cách giữ phím Ctrl), sau đó chuyển sang thẻ Add Column và chọn Combine Date and Time, Power Query sẽ kết hợp dữ liệu ngày và giờ thành một trường thống nhất dạng DateTime.

Sau khi hoàn tất thao tác, Power Query tạo ra một cột mới có tên Merged chứa đầy đủ dữ liệu ngày giờ theo định dạng chuẩn YYYY-MM-DD HH:MM:SS với kiểu dữ liệu DateTime.

| Chức năng | Mã M |
| Age | Table.TransformColumns(#”Source”, {{“OrderDateTime”, each DateTime.LocalNow() – _, type duration}}) |
| Date Only | Table.TransformColumns(#”Source”, {{“OrderDateTime”, DateTime.Date, type date}}) |
| Parse | Table.TransformColumns(#”Source”, {{“OrderDateTime”, each Date.From(DateTimeZone.From(_)), type date}}) |
| Year | Table.TransformColumns(#”Source”, {{“OrderDateTime”, Date.Year, Int64.Type}}) |
| Start of Year | Table.TransformColumns(#”Source”, {{“OrderDateTime”, Date.StartOfYear, type datetime}}) |
| End of Year | Table.TransformColumns(#”Source”, {{“OrderDateTime”, Date.EndOfYear, type datetime}}) |
| Month | Table.TransformColumns(#”Source”, {{“OrderDateTime”, Date.Month, Int64.Type}}) |
| Start of Month | Table.TransformColumns(#”Source”, {{“OrderDateTime”, Date.StartOfMonth, type datetime}}) |
| End of Month | Table.TransformColumns(#”Source”, {{“OrderDateTime”, Date.EndOfMonth, type datetime}}) |
| Days in Month | Table.TransformColumns(#”Source”, {{“OrderDateTime”, Date.DaysInMonth, Int64.Type}}) |
| Name of Month | Table.TransformColumns(#”Source”, {{“OrderDateTime”, each Date.MonthName(_), type text}}) |
| Quarter of Year | Table.TransformColumns(#”Source”, {{“OrderDateTime”, Date.QuarterOfYear, Int64.Type}}) |
| Start of Quarter | Table.TransformColumns(#”Source”, {{“OrderDateTime”, Date.StartOfQuarter, type datetime}}) |
| End of Quarter | Table.TransformColumns(#”Source”, {{“OrderDateTime”, Date.EndOfQuarter, type datetime}}) |
| Week of Month | Table.TransformColumns(#”Source”, {{“OrderDateTime”, Date.WeekOfMonth, Int64.Type}}) |
| Week of Year | Table.TransformColumns(#”Source”, {{“OrderDateTime”, Date.WeekOfYear, Int64.Type}}) |
| Start of Week | Table.TransformColumns(#”Source”, {{“OrderDateTime”, Date.StartOfWeek, type datetime}}) |
| Day | Table.TransformColumns(#”Source”, {{“OrderDateTime”, Date.Day, Int64.Type}}) |
| Day of Week | Table.TransformColumns(#”Source”, {{“OrderDateTime”, Date.DayOfWeek, Int64.Type}}) |
| Day of Year | Table.TransformColumns(#”Source”, {{“OrderDateTime”, Date.DayOfYear, Int64.Type}}) |
| Start of Day | Table.TransformColumns(#”Source”, {{“OrderDateTime”, Date.StartOfDay, type datetime}}) |
| End of Day | Table.TransformColumns(#”Source”, {{“OrderDateTime”, Date.EndOfDay, type datetime}}) |
| Day of Week Name | Table.TransformColumns(#”Source”, {{“OrderDateTime”, each Date.DayOfWeekName(_), type text}}) |
| Earliest | List.Min(#”Source”[OrderDateTime]) |
| Latest | List.Max(#”Source”[OrderDateTime]) |
| Combine Date & Time | Table.AddColumn(#”Source”, “Merged”, each [Date] & [Time], type datetime) |
| Tiêu chí | Thẻ Transform | Thẻ Add Column |
| Cơ chế hoạt động | Ghi đè trực tiếp kết quả lên cột hiện tại | Tạo ra một cột mới ở cuối bảng |
| Mã M sinh ra | Table.TransformColumns(…) | Table.AddColumn(…) |
| Số lượng cột | Giữ nguyên | Tăng lên |
| Dung lượng file & RAM | Tối ưu hơn do không sinh thêm cột | Tốn thêm bộ nhớ để lưu trữ cột mới |
| Trường hợp sử dụng | Khi cần làm sạch dữ liệu (chuyển DateTime sang Date để nối bảng) | Khi cần tạo các cột phân loại để làm Slicer hoặc Legend trên báo cáo |
Trong ngôn ngữ Power Query M, mặc định chỉ số ngày trong tuần bắt đầu từ 0 (Chủ Nhật) đến 6 (Thứ Bảy). Nếu muốn quy ước Thứ Hai là ngày đầu tuần (chỉ số 0), bạn có thể tùy chỉnh công thức M thành: Date.DayOfWeek([OrderDateTime], Day.Monday).
Cả hai hàm Date.MonthName và Date.DayOfWeekName đều hỗ trợ tham số ngôn ngữ (Culture). Bạn có thể viết trực tiếp trong thanh công thức:
Chức năng Earliest và Latest biến toàn bộ bảng thành một giá trị đơn. Kỹ thuật này thường được dùng trong các truy vấn phụ để tạo tham số lọc động, xác định ngày bắt đầu/kết thúc khi tạo bảng Calendar tự động hoặc tính số ngày trôi qua so với giao dịch cuối cùng.
Việc làm chủ chức năng Date trong Power BI giúp bạn chuẩn hóa dữ liệu thời gian ngay tại tầng Power Query mà không cần viết DAX phức tạp. Thực hiện biến đổi ngày tháng từ bước ETL không chỉ giảm tải tài nguyên hệ thống, tối ưu khả năng nén của VertiPaq Engine mà còn đảm bảo độ chính xác tuyệt đối cho các hàm Time Intelligence khi xây dựng báo cáo.
Để học thêm nhiều thủ thuật xử lý data hay, bạn hãy ghé thăm Thư viện tự học Phân tích Dữ liệu miễn phí. Đừng quên tham khảo Khóa học Power BI Business Intelligence Essentials tại Starttrain nếu bạn đang tìm kiếm một lộ trình bài bản để làm chủ kỹ năng thiết kế báo cáo chuẩn executive.

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.




