Khi Power BI hiểu tháng thành ngày & ngày thành tháng
12/26/2025•2 phút đọc
Khi Power BI hiểu tháng thành ngày & ngày thành tháng
Vấn đề thường gặp khi load data vào Power BI: NGÀY & THÁNG bị đảo ngược
Khi bạn có nhiều file Excel/CSV, mỗi file lại dùng một định dạng:
dd/mm/yyyy
mm/dd/yyyy
yyyy-mm-dd
hoặc text như "12/3"
Power BI sẽ tự suy đoán và sẽ có nhiều trường hợp khi load data vào Power BI.
Power BI “tự suy đoán” Date hay theo logic cụ thể?
Không phải kiểu “AI đoán mò”. Power BI parse (chuyển chuỗi → Date) theo một logic rất cụ thể, và cái logic đó phụ thuộc vào:
Kiểu dữ liệu gốc (Date/DateTime thật hay chỉ là text)
Ngôn ngữ/Regional settings của Power Query khi import/transform
Culture/Locale bạn dùng khi “Change Type” (đổi kiểu) trong Power Query
Với một số connector, driver/nguồn đã trả Date dạng chuẩn (ISO/typed) thì gần như không có “suy đoán” nữa.
1) Trường hợp “an toàn”: nguồn đã là Date thật (typed)
SQL Server, PostgreSQL, Dataverse… thường trả về type Date/DateTime.
Power BI nhận đúng kiểu → không dính bẫy format quốc gia (dd/MM vs MM/dd).
✅ Kết luận: Lúc này không phải đoán; Power BI chỉ map kiểu dữ liệu.
Nên làm: ưu tiên convert Date ngay từ nguồn.
2) Trường hợp nguy hiểm: cột Date thực ra là TEXT
Ví dụ: "01/02/2025"
US culture hiểu là Jan 2, 2025 (MM/dd)
VN/UK culture hiểu là 1 Feb, 2025 (dd/MM)
=> Đây là chỗ người dùng tưởng “Power BI tự đoán”, nhưng thực ra là Power Query đang parse theo culture mặc định.
Culture mặc định lấy từ đâu?
Thường dựa vào Regional settings của môi trường chạy Power BI Desktop/Service (và/hoặc trong Power Query).
Khi bạn bấm “Change Type” mà không chỉ định locale, Power Query dùng mặc định → dễ lệch nếu file/nguồn dùng format khác.
3) Logic cụ thể trong Power Query: “Change Type” vs “Using Locale”
Trong Power Query (Transform Data):
Change Type: đổi kiểu theo locale mặc định
Change Type → Using Locale...: đổi kiểu theo locale bạn chọn (ví dụ English (United States), Vietnamese (Vietnam), English (United Kingdom))
✅ Đây là cách “chốt hạ” để Power BI không hiểu sai.
4) Các format thường gây lỗi
A) Ngày-tháng mơ hồ
01/02/2025, 03-04-2025 (không biết dd/MM hay MM/dd)
B) Text “tháng/năm” kiểu khác nước
2025-12 (year-month)
12/2025 (month/year)
Dec-2025, Thg 12 2025
=> tuỳ culture + pattern mà parse được hay fail.
C) Excel “Date” nhưng thực ra là text
Nhiều file Excel nhìn như Date nhưng cell format/text lẫn lộn → Power BI đọc vào thành text, rồi parse theo locale.
Checklist xử lý chuẩn (không cãi nhau dd/MM vs MM/dd)
Nên
Chuẩn hoá data trước khi vào Power BI: YYYY-MM-DD hoặc YYYY-MM-DD
Nếu bắt buộc parse từ text: Dùng Change Type → Using Locale... và chọn đúng culture
Với dữ liệu tháng/năm: Tạo ngày “đại diện” rõ ràng: DATE(Year, Month, 1) (đầu tháng) để lưu trữ và join
Tạo DimDate riêng, mark as date table (tránh auto date/time lộn xộn)
Không nên
Không để text mơ hồ kiểu 01/02/2025 mà “hy vọng Power BI hiểu đúng”
Không dựa vào “máy của tôi chạy đúng” vì lên Power BI Service có thể khác môi trường
Không để nguồn trộn nhiều format ngày trong cùng một cột
Ví dụ minh hoạ: trường hợp bên dưới, đây là file kế hoạch kinh doanh hàng tháng, trong cột định dạng là m/d/yyyy nhưng khi load vào Power BI lại hiểu là d/m/y vì vậy thay vì doanh thu được chỉ định cho mỗi tháng thì doanh thu trong bảng này lại được hiểu tất cả vào tháng 1 năm 2022.
Cách xử lí:
Sau khi load vào Power BI định dạng tháng sẽ như thế này:
✔ Bước 1: Convert cột Date về Text trước: Chọn cột có date bị hiểu sai, chuyển sang text.
= Table.TransformColumnTypes(Source,{{"Date", type text}})
✔ Bước 2: Dùng “Change Type → Using Locale…”
Chuột phải cột → Change Type → Using Locale…
Chọn:
Data type: Date
Locale: English (United States) (hoặc đúng format của file gốc). Trong trường hợp này tháng đang bị hiểu là ngày vì nó nằm trước ngày, đây là kiểu định dạng date của US. Nên khi mình chuyển sang Locale US thì nó sẽ hiểu đúng bản chất của ngày đang có trong cột.
✔ Bước 3: Apply & close date -> vào Table View của PBI Desktop để format lại cột theo ý mình muốn. Ví dụ nó đang hiển thị là mm/dd/yyyy thì mình có thể chuyển lại thành dd/mm/yyyy để người dùng dễ đọc hiểu theo kiểu ngày ở Việt Nam.
Sau khi đã giúp Power BI hiểu đúng định dạng ngày thì nó sẽ update được report theo đúng ngày tháng chứ không bị dồn hết doanh thu vào 1 tháng như ban đầu.