Trong kỷ nguyên phân tích dữ liệu hiện đại với Power BI và Excel, Power Query đã trở thành công cụ đắc lực giúp chuẩn hóa và làm sạch dữ liệu. Tuy nhiên, một trong những yếu tố nền tảng quyết định sự thành bại của một mô hình dữ liệu chính là việc thiết lập chính xác kiểu dữ liệu (Data Type).
Bài viết này, Starttrain sẽ giúp bạn hiểu rõ từng loại Data Type trong Power Query, cách thao tác thực tế qua các ảnh minh họa trực quan, mã ngôn ngữ M tương ứng và những lưu ý để tối ưu hóa hiệu suất xử lý dữ liệu.
Tại sao việc xác định đúng Data Type trong Power Query lại quan trọng?
Trước khi đi sâu vào chi tiết, bạn cần hiểu rõ tầm quan trọng của kiểu dữ liệu. Khi bạn kết nối dữ liệu từ các nguồn khác nhau (như Excel, SQL Server, Web, CSV), Power Query sẽ cố gắng tự động nhận diện kiểu dữ liệu cho từng cột. Tuy nhiên, việc hiểu và kiểm soát thủ công các Data Type này mang lại những lợi ích vượt trội:
- Tối ưu hóa hiệu suất: Xác định đúng kiểu dữ liệu giúp giảm dung lượng file lưu trữ và tăng tốc độ tính toán của bộ nhớ.
- Tránh lỗi tính toán: Các phép toán số học không thể thực hiện trên dữ liệu dạng Text, và ngược lại, các hàm xử lý chuỗi sẽ bị lỗi nếu áp dụng cho kiểu Number.
- Đảm bảo tính nhất quán của mô hình: Khi liên kết giữa các bảng, hai trường khóa ngoại và khóa chính bắt buộc phải có cùng một Data Type.
Các Data Type có trong Power Query
Power Query hỗ trợ một danh mục kiểu dữ liệu cực kỳ đa dạng để đáp ứng mọi nhu cầu xử lý thông tin từ cơ bản đến phức tạp. Dưới đây là bảng phân loại và mô tả chi tiết từng Data Type:
Kiểu dữ liệu số (Numeric Types)
- Decimal Number (Số thập phân): Đại diện cho số thực có phần thập phân rộng, có thể chứa đến 15 chữ số. Phù hợp cho các phép đo lường chính xác cao.
- Fixed Decimal Number (Số thập phân cố định / Kiểu tiền tệ): Luôn cố định 4 chữ số sau dấu thập phân. Thường được sử dụng để lưu trữ dữ liệu tài chính, tiền tệ nhằm tránh các sai số làm tròn trong quá trình tính toán.
- Whole Number (Số nguyên): Kiểu dữ liệu số không có phần thập phân, đại diện cho các giá trị đếm được (như số lượng hàng hóa, ID, mã số học sinh).
- Percentage (Phần trăm): Thực chất là một dạng số thập phân nhưng được định dạng hiển thị dưới dạng phần trăm (ví dụ: 0.15 hiển thị là 15%). Khi tính toán, Power Query vẫn xử lý nó như một số thập phân thông thường.
Kiểu dữ liệu thời gian (Date/Time Types)
- Date/Time (Ngày và Giờ): Lưu trữ cả thông tin về ngày (ngày/tháng/năm) và giờ (giờ/phút/giây).
- Date (Ngày): Chỉ lưu trữ thông tin ngày, tháng, năm. Đây là kiểu dữ liệu tối ưu nhất cho các bảng DimDate để liên kết mô hình dữ liệu.
- Time (Giờ): Chỉ lưu trữ thông tin giờ, phút, giây, không đi kèm ngày tháng.
- Date/Time/Timezone (Ngày/Giờ/Múi giờ): Lưu trữ ngày, giờ kèm theo độ lệch múi giờ so với giờ chuẩn UTC. Rất hữu ích khi phân tích dữ liệu từ các hệ thống đa quốc gia.
- Duration (Khoảng thời gian): Đại diện cho một khoảng thời gian chênh lệch giữa hai mốc thời gian, được biểu diễn dưới dạng Số ngày.Giờ:Phút:Giây (ví dụ: 5 ngày 4 giờ 30 phút).

Kiểu dữ liệu văn bản và logic (Text & Logical Types)
- Text (Văn bản/Chuỗi): Chứa các chuỗi ký tự unicode (chữ cái, chữ số, ký tự đặc biệt). Đây là kiểu dữ liệu linh hoạt nhất nhưng tốn tài nguyên lưu trữ nhất.
- True/False (Kiểu Boolean/Logic): Chỉ nhận một trong hai giá trị True (Đúng) hoặc False (Sai). Rất hữu ích cho các cột điều kiện lọc dữ liệu.
Kiểu dữ liệu đặc biệt (Special Types)
- Binary (Nhị phân): Đại diện cho dữ liệu thô dạng nhị phân, thường xuất hiện khi bạn import các file như PDF, Excel, Image hoặc cấu trúc thư mục. Power Query dùng kiểu này để chuyển đổi file thành bảng dữ liệu.
- Any (Bất kỳ): Kiểu dữ liệu mặc định khi Power Query chưa xác định được định dạng cụ thể. Cột chứa kiểu Any có thể chứa hỗn hợp cả chữ, số và ngày tháng, nhưng nó sẽ làm giảm hiệu suất tính toán đáng kể nếu không được chuyển đổi sang kiểu cụ thể hơn.
Minh họa cách thao tác liên quan đến Data Type trong Power Query
Để thay đổi hoặc thao tác với kiểu dữ liệu trong Power Query, bạn có thể áp dụng nhiều phương pháp khác nhau tùy thuộc vào thói quen sử dụng chuột hoặc thanh công cụ Ribbon.
Cách 1: Thay đổi Data Type trực tiếp tại tiêu đề cột (Column Header)
Đây là cách nhanh chóng và trực quan nhất được đa số người dùng lựa chọn.
- Bước 1: Quan sát biểu tượng nhỏ nằm ở phía bên trái của tên cột (ví dụ như cột “NGÀY”, cột “HỌ VÀ TÊN (TÀI XẾ)”). Click chuột trái vào biểu tượng này.
- Bước 2: Một menu danh sách thả xuống chứa toàn bộ các kiểu dữ liệu sẽ xuất hiện. Tại đây, bạn có thể dễ dàng chọn kiểu dữ liệu mong muốn (ví dụ: Decimal Number, Whole Number, Date, Text…).

- Bước 3: Để chuyển đổi sang một kiểu dữ liệu cụ thể, ví dụ như kiểu Ngày/Giờ/Múi giờ cho cột “NGÀY”, bạn chỉ cần di chuột và click chọn mục “Date/Time/Timezone”. Hệ thống sẽ lập tức tạo thêm một bước (Step) biến đổi mới trong bảng Applied Steps.

Cách 2: Sử dụng thanh công cụ Ribbon trên tab Transform
Nếu bạn muốn thao tác thông qua giao diện chuẩn của Microsoft:
- Bước 1: Chọn cột dữ liệu cần thay đổi.
- Bước 2: Trên thanh công cụ, chuyển sang tab Transform. Bạn sẽ nhìn thấy khu vực quản lý nhóm lệnh liên quan đến cột. Hãy click vào nút dropdown cạnh dòng chữ Data Type: Any hoặc kiểu hiện tại của cột.

- Bước 3: Lựa chọn kiểu dữ liệu phù hợp từ menu đổ xuống tương tự như cách thực hiện trực tiếp trên tiêu đề cột.

Cách 3: Sử dụng tính năng tự động nhận diện (Detect Data Type)
Khi làm việc với các bảng dữ liệu lớn có hàng chục cột, việc thay đổi thủ công từng cột rất mất thời gian. Power Query cung cấp tính năng tự động quét và nhận diện thông minh:
- Bước 1: Nhấn giữ phím Ctrl và click chuột chọn các cột cần nhận diện tự động.
- Bước 2: Trên tab Transform, tìm đến nhóm công cụ xử lý cột và click vào nút Detect Data Type. Power Query sẽ tự động phân tích dữ liệu thực tế của các dòng đầu tiên trong cột và gán kiểu dữ liệu phù hợp nhất cho từng cột một cách nhanh chóng.

Mã M cho từng Data Type
Khi bạn thực hiện thay đổi kiểu dữ liệu bằng giao diện kéo thả, Power Query thực chất đang tự động viết mã bằng ngôn ngữ M ở phía sau. Việc hiểu rõ các mã này sẽ giúp bạn dễ dàng chỉnh sửa trực tiếp trên thanh công thức hoặc trong Advanced Editor.
Hàm chuyển đổi kiểu dữ liệu phổ biến nhất trong ngôn ngữ M là: Table.TransformColumnTypes(bảng_nguồn, {{“tên_cột”, kiểu_dữ_liệu}})
Dưới đây là bảng tra cứu mã ngôn ngữ M tương ứng cho từng Data Type:
| Tên Data Type | Mã ngôn ngữ M | Ví dụ trong mã M |
| Decimal Number | type number | {“DoanhThu”, type number} |
| Fixed Decimal Number | Currency.Type | {“GiaBan”, Currency.Type} |
| Whole Number | Int64.Type | {“SoLuong”, Int64.Type} |
| Percentage | Percentage.Type | {“ThueSuat”, Percentage.Type} |
| Date/Time | type datetime | {“ThoiGianGiao”, type datetime} |
| Date | type date | {“NgayLapPhieu”, type date} |
| Time | type time | {“GioVaoCa”, type time} |
| Date/Time/Timezone | type datetimezone | {“HanChotUTC”, type datetimezone} |
| Duration | type duration | {“ThoiGianXuLy”, type duration} |
| Text | type text | {“TenKhachHang”, type text} |
| True/False | type logical | {“DaThanhToan”, type logical} |
| Binary | type binary | {“NoiDungFile”, type binary} |
| Any | type any | {“ThongTinKhac”, type any} |
Cách xử lý lỗi Data Type thường gặp
Trong quá trình chuyển đổi kiểu dữ liệu, bạn sẽ rất dễ gặp phải trạng thái ô dữ liệu hiển thị chữ Error màu đỏ. Nguyên nhân chủ yếu là do dữ liệu thô chứa các ký tự không hợp lệ so với kiểu dữ liệu đích.
Lỗi chuyển đổi từ Text sang Number
- Nguyên nhân: Cột chứa các ký tự chữ cái xen kẽ (ví dụ: “150,000 VND” hoặc “Không xác định”). Khi chuyển sang Whole Number hoặc Decimal Number, Power Query không thể chuyển đổi chữ thành số.
- Cách khắc phục: Trước khi đổi kiểu dữ liệu, hãy dùng tính năng Replace Values để loại bỏ các chữ cái hoặc ký tự đặc biệt (chỉ giữ lại số và dấu ngăn cách thập phân).
Lỗi định dạng ngày tháng
- Nguyên nhân: Máy tính của bạn đang cài đặt chuẩn Ngày/Tháng/Năm (kiểu Anh – Việt), nhưng dữ liệu nguồn lại viết theo chuẩn Tháng/Ngày/Năm (kiểu Mỹ). Khi ép kiểu về Date, những ngày lớn hơn 12 sẽ bị báo lỗi Error vì hệ thống hiểu lầm đó là Tháng.
- Cách khắc phục: Thay vì chọn đổi kiểu thông thường, hãy click chuột phải vào cột cần đổi -> chọn Change Type -> chọn Using Locale…. Tại đây, bạn chọn kiểu dữ liệu là Date và chọn quốc gia (Locale) tương ứng với định dạng gốc của dữ liệu nguồn (ví dụ: English – United States).
Một số lưu ý khi thao tác liên quan đến Data Type trong Power Query
Để tránh làm chậm hệ thống và hạn chế tối đa các lỗi phát sinh trong tương lai, bạn cần khắc cốt ghi tâm những lưu ý dưới đây:
- Hạn chế dùng kiểu dữ liệu “Any”: Kiểu dữ liệu Any bắt buộc Power Query phải tự dò tìm và xử lý động mỗi khi chạy. Hãy luôn chuyển đổi tất cả các cột về một kiểu dữ liệu cụ thể trước khi Load dữ liệu ra Excel hoặc Power BI.
- Đặt bước thay đổi kiểu dữ liệu ở cuối cùng (hoặc gần cuối): Hãy thực hiện các bước làm sạch dữ liệu như tách cột (Split), gộp cột (Merge), loại bỏ khoảng trắng (Trim), thay thế giá trị lỗi (Replace Values) trước khi gán kiểu dữ liệu. Điều này giúp tránh việc các bước biến đổi làm mất đi hoặc phá vỡ định dạng kiểu dữ liệu bạn đã thiết lập.
- Gộp các bước đổi kiểu dữ liệu thành một Step duy nhất: Nếu bạn thay đổi kiểu dữ liệu cho 5 cột khác nhau bằng 5 thao tác riêng biệt, Power Query sẽ tạo ra 5 bước Changed Type độc lập. Điều này làm chậm hiệu năng xử lý. Hãy quét chọn cả 5 cột rồi thực hiện đổi kiểu dữ liệu cùng một lúc để Power Query gộp chung vào một câu lệnh M duy nhất.
- Kiểm tra kỹ kiểu dữ liệu trước khi Merge/Append: Khi bạn muốn gộp hai bảng dữ liệu lại với nhau (Merge Queries hoặc Append Queries), hãy chắc chắn rằng các cột dùng để liên kết hoặc các cột tương ứng giữa hai bảng đã được thiết lập cùng một Data Type chính xác. Nếu lệch kiểu dữ liệu, kết quả gộp có thể sẽ bị trống hoặc phát sinh lỗi nghiêm trọng.
Tổng kết
Hiểu và thiết lập chính xác Data Type trong Power Query là chìa khóa vàng giúp bạn xây dựng một mô hình dữ liệu chuẩn hóa, tinh gọn và hạn chế tối đa sai số. Thay vì phó mặc hoàn toàn cho tính năng nhận diện tự động, việc chủ động làm sạch và gán kiểu dữ liệu thủ công, kết hợp tối ưu hóa mã ngôn ngữ M sẽ nâng cao hiệu suất xử lý lên gấp nhiều lần.
Nếu bạn muốn nâng cao kỹ năng phân tích và trực quan hóa dữ liệu chuyên nghiệp, khóa học Power BI tại Starttrain sẽ giúp bạn xây dựng dashboard, xử lý dữ liệu với Power Query, sử dụng DAX và tạo các báo cáo trực quan phục vụ công việc thực tế. Chương trình được thiết kế theo lộ trình từ cơ bản đến nâng cao, kết hợp nhiều bài tập thực hành với dữ liệu doanh nghiệp, giúp học viên có thể áp dụng ngay sau khi hoàn thành khóa học.