Phần 1: Mở đầu
Người ta thường bảo "Dữ liệu là mỏ dầu mới". Nhưng thực tế, trước khi "mỏ dầu" đó có thể vận hành những dashboard lung linh, nó thường trông giống như một vũng bùn hỗn độn.
Là một Data Analyst, bạn sẽ sớm nhận ra rằng 80% thời gian làm việc không phải dành cho các mô hình cao siêu hay biểu đồ lấp lánh. Thời gian đó dành cho việc dọn dẹp dữ liệu (Data Cleaning). Điều này lại càng đúng trong ngành Y tế Công cộng (Public Health) – nơi các bộ dữ liệu lịch sử nổi tiếng là rời rạc, định dạng bất nhất và đầy rẫy lỗi nhập liệu của con người.
Để thu phục những bộ dữ liệu thô phức tạp này, nếu chỉ dựa vào các thao tác thủ công trên Excel thì bạn sẽ mãi bị tụt lại phía sau. Đây chính là lúc Power Query khẳng định sức mạnh tối thượng của mình. Nhờ vào khả năng tự động hóa cốt lõi của công cụ này – điều mà tôi đã phân tích rất kỹ trong bài chia sẻ Từ VLOOKUP đến Power Query: Tự động hóa quy trình làm sạch dữ liệu (mở trong tab mới) – chúng ta hoàn toàn có thể giải phóng bản thân khỏi các tác vụ lặp đi lặp lại.
Hôm nay, hãy cùng đưa sức mạnh tự động hóa đó vào thực tế. Chúng ta sẽ phân tích một bộ dữ liệu thô thực tế từ data.gov.sg (mở trong tab mới) về Số lượng nhập viện công tại Singapore. Thông qua Top 3 cách sửa định dạng kinh điển và vận dụng lại một số thủ thuật Power Query cốt lõi, tôi sẽ hướng dẫn bạn cách biến một file Excel rối rắm thành một mô hình dữ liệu chuẩn hóa, sạch sẽ chỉ với vài cú click chuột. Hãy cùng bắt đầu nhé!
Phần 2: Hiểu dữ liệu và Mục tiêu phân tích
Trước khi đi vào các bước xử lý kỹ thuật, hãy cùng xem qua đối tượng nghiên cứu của chúng ta. Bộ dữ liệu được sử dụng là Số lượng nhập viện công tại Singapore được tải từ trang data.gov.sg (mở trong tab mới).
Mục tiêu phân tích rất rõ ràng: Phân tích và vẽ biểu đồ xu hướng số ca nhập viện tại Singapore theo thời gian.
Tuy nhiên, file thô này hoàn toàn chưa sẵn sàng cho bất kỳ công cụ trực quan hóa nào. Nó được định dạng như một báo cáo tóm tắt dành cho mắt người đọc, chứ không phải cho máy tính xử lý. Nếu bạn cố tình vẽ biểu đồ đường (Line chart) bằng file thô này, bạn sẽ lập tức "bế tắc" vì trục thời gian đang bị xé lẻ thành hàng chục cột khác nhau.

Phần 3: Cách xử lý #1 - Hủy chuyển đổi cột (Cơn ác mộng bảng ngang Matrix)
Vấn đề
Khi bạn nạp bộ dữ liệu này vào Power Query, bạn sẽ bắt gặp một kiểu cấu trúc kinh điển mang tên "Wide Format" (định dạng bảng ngang). Trong khi cột DataSeries xếp theo chiều dọc, thì các cột thời gian (2026May, 2026Apr, 2026Mar...) lại trải dài tít tắp theo chiều ngang.
Trong phân tích dữ liệu, cấu trúc này là một "cơn ác mộng". Các công cụ BI như Power BI hay Tableau luôn đòi hỏi "Long Format" (định dạng bảng dọc) – nơi mỗi biến số phải có một cột riêng biệt và mỗi hàng chỉ đại diện cho một bản ghi duy nhất. Với định dạng ngang hiện tại, bạn không thể tạo ra một trục thời gian liên tục để vẽ biểu đồ.
Cách xử lý
Thay vì ngồi copy-paste thủ công hàng giờ liền, Power Query giải quyết bài toán này chỉ trong hai cú click chuột:
Chọn duy nhất cột cố định không chứa thời gian là DataSeries.
Click chuột phải vào tiêu đề cột đã chọn và bấm Unpivot Other Columns (Hủy chuyển đổi các cột khác).

Ngay lập tức, Power Query thu gọn hàng chục cột tháng thành 2 cột dọc gọn gàng: Attribute (chứa các chuỗi năm-tháng dính liền) và Value (chứa số lượng ca nhập viện).

🤔Tại sao điều này lại quan trọng? Việc sử dụng kỹ thuật Unpivot, chứng minh bạn hiểu rõ Nguyên lý Dữ liệu Chuẩn hóa (Tidy Data) và Mô hình hóa dữ liệu (Data Modeling). Việc đưa dữ liệu về dạng bảng dọc (Fact Table) đảm bảo rằng các hàm đo lường DAX (như Time Intelligence) sau này trong Power BI sẽ chạy chính xác và đạt hiệu suất tối ưu nhất.
Phần 4: Cách xử lý #2 - Dọn dẹp ký tự 'na' rác và Khoảng trắng thừa
Vấn đề
Hãy nhìn vào cột Value sau khi chúng ta hủy chuyển đổi các cột (Unpivot). Trong khi hầu hết các hàng đều chứa số lượng nhập viện rất sạch sẽ, thì một số phân mục (như bệnh viện cộng đồng) lại trả về chuỗi văn bản "na" thay vì ô trống hoặc số 0.
Bởi vì Power Query nhìn thấy các ký tự chữ nằm xen kẽ trong một cột số, nó sẽ ép toàn bộ cột Value này về định dạng chữ Text (hiển thị bằng biểu tượng ABC ở đầu cột). Nếu bạn cố tình tính tổng hoặc trung bình trong Power BI với cột này, hệ thống sẽ báo lỗi ngay lập tức.
Cách xử lý
Để chuyển đổi cột này về dạng số một cách an toàn, chúng ta phải loại bỏ phần chữ rác này:
Chọn cột Value.
Click chuột phải vào tiêu đề cột và chọn Replace Values...
Trong bảng hiện ra, gõ chữ "na" vào ô Value To Find. Để ô Replace With trống hoàn toàn (để hệ thống tự hiểu là giá trị rỗng null), hoặc gõ số "0". Bấm OK.

Tiếp theo, click chuột phải vào cột DataSeries, chọn Transform → Trim để xóa sạch các khoảng trắng vô hình ở đầu dòng, nguyên nhân khiến tên các bệnh viện bị thụt lề thụt dòng lộn xộn.

🤔Góc nhìn của “nhà phân tích”: Việc thay thế chuỗi "na" bằng giá trị rỗng (null) hoặc 0 chứng minh bạn có hiểu biết sâu sắc về Kiểu dữ liệu (Data Types); biết cách xử lý dữ liệu bị khuyết thiếu một cách bài bản mà không làm ảnh hưởng đến tính toàn vẹn của các phép toán số học sau này khi viết hàm DAX.
Phần 5: Cách xử lý #3 - Bẻ khóa định dạng ngày tháng dị biệt '2026Feb'
Vấn đề
Sau khi chúng ta hủy chuyển đổi các cột (Unpivot) ở bước 1, chúng ta thu được một cột tên là Attribute chứa mốc thời gian đang bị dính chặt vào nhau theo định dạng tùy biến là "2026Feb" hay "2026Jan". Power Query không thể tự nhận diện cấu trúc năm dính liền tháng tiếng Anh này là một ngày trên lịch. Nếu bạn nhắm mắt đổi kiểu bằng Using Locale trực tiếp, bạn sẽ nhận về một cột toàn lỗi Error màu đỏ vì một chữ tháng đứng độc lập thì máy tính không thể đoán được ngày và năm cụ thể.
Cách xử lý
Chúng ta sẽ bóc tách và xây dựng lại trục thời gian này bằng tính năng thông minh có sẵn:
Chọn cột Attribute, vào thẻ Transform -> Split Column -> chọn By Digit to Non-Digit (Từ số sang chữ). Power Query sẽ tự động chặt đôi chuỗi thành 2 cột: Attribute.1(Year) và Attribute.2(Month).

Vào thẻ Add Column -> chọn Column from Examples -> From Selection (trong khi đang chọn cả 2 cột vừa tách).
Tại hàng đầu tiên của cột mới xuất hiện, bạn gõ tay ngày mẫu để máy học theo: 01/05/2026 rồi bấm tổ hợp phím Ctrl + Enter. Bộ máy nhận diện mẫu của Power Query sẽ lập tức hiểu thuật toán và tự động điền chính xác toàn bộ các hàng còn lại mà không hề bị lỗi -> OK

Đổi tên cột mới thành Date, chuyển định dạng về kiểu Date (Tờ lịch), và xóa bỏ 2 cột phụ chứa năm/tháng vừa tách đi. Cuối cùng, chuyển định dạng cột Value quay trở lại thành số nguyên (Whole Number).
🤔Mẹo từ chuyên gia: Bạn có thể thắc mắc: Dữ liệu thô vốn chỉ có tháng và năm, vậy tại sao chúng ta lại phải ép thêm ngày mùng 1 vào? Đây chính là quy tắc vàng trong Mô hình hóa dữ liệu. Các bộ máy BI không thể thực hiện các phép tính thời gian (như tăng trưởng qua từng tháng) trên một cột ở dạng chữ. Một kiểu dữ liệu Date đích thực bắt buộc phải có đủ Ngày, Tháng, và Năm. Quy ước đưa tất cả về ngày đầu tiên của tháng (ngày 01) giúp thỏa mãn điều kiện cơ sở dữ liệu mà không làm sai lệch ý nghĩa phân tích. Khi làm dashboard hiển thị, chúng ta dễ dàng ẩn ngày đi và chỉ hiện 'Tháng-Năm'.
Phần 6: Kết luận và bài học rút ra
Dọn dẹp dữ liệu có thể không phải là phần việc hào nhoáng nhất của một Data Analyst, nhưng nó chắc chắn là nền móng của mọi thông tin phân tích đáng tin cậy. Thông qua dự án này, chúng ta đã xây dựng được một đường ống dữ liệu (ETL Pipeline) tự động hóa, "thu phục" thành công một bộ dữ liệu y tế công cộng lộn xộn từ Singapore bằng cách áp dụng 3 kỹ thuật Power Query.
Bằng việc tự động hóa các bước này, chúng ta không chỉ sửa lỗi cho một file Excel nhất thời – chúng ta đã xây dựng một đường ống dữ liệu (ETL Pipeline) có khả năng tái sử dụng. Lần tới khi chính phủ cập nhật dữ liệu mới, tất cả những gì chúng ta cần làm là bấm nút Refresh, và mô hình dữ liệu sẽ lập tức được cập nhật.

Bây giờ đến lượt bạn! Hãy tải file (mở trong tab mới) về và bắt tay vào việc xử lý dữ liệu y tế công cộng đi nào!
✨Thử thách dọn dẹp dữ liệu nào từng khiến bạn đau đầu nhất? Hãy cùng chia sẻ và thảo luận ở phần bình luận bên dưới nhé!

Bình luận
0 bình luậnViết bình luận
Chưa có bình luận nào. Hãy bắt đầu cuộc trò chuyện.