
(Giải pháp xử lý dữ liệu rác, sai chính tả, không đồng nhất)
Khớp mờ không phải là phép thuật, nó là thuật toán dựa trên “Độ tương đồng” (Similarity Threshold). Thay vì tìm kiếm chính xác 100% (như VLOOKUP/Exact Match), nó tìm kiếm các giá trị giống nhau khoảng 80-90%.
Dưới đây là 3 cấp độ ứng dụng từ thực tế:
🟢 CẤP ĐỘ 1: DỄ – LÀM SẠCH DỮ LIỆU TRONG 1 CỘT (CLUSTER VALUES)
Tình huống: Bạn có một cột “Tên Chi Nhánh” do nhân viên sales nhập tay. Mỗi người nhập một kiểu, dẫn đến việc không thể Group By để tính tổng doanh số.
1. Dữ liệu mẫu (Bảng Sales – 15 dòng)
| ID | Ngày | Tên Chi Nhánh (Dữ liệu Rác) | Doanh Thu |
| 001 | 01/01/2024 | Hà Nội | 10,000,000 |
| 002 | 02/01/2024 | Ha Noi | 12,000,000 |
| 003 | 03/01/2024 | Hanoi | 11,000,000 |
| 004 | 04/01/2024 | H. Nội | 9,000,000 |
| 005 | 05/01/2024 | TP.HCM | 15,000,000 |
| 006 | 06/01/2024 | TPHCM | 14,500,000 |
| 007 | 07/01/2024 | Tp. Hồ Chí Minh | 16,000,000 |
| 008 | 08/01/2024 | TP Ho Chi Minh | 15,500,000 |
| 009 | 09/01/2024 | Da Nang | 8,000,000 |
| 010 | 10/01/2024 | Đà Nẵng | 8,200,000 |
| 011 | 11/01/2024 | D. Nang | 7,900,000 |
| 012 | 12/01/2024 | Cần Thơ | 5,000,000 |
| 013 | 13/01/2024 | Can Tho | 5,100,000 |
| 014 | 14/01/2024 | Hà Nôi | 10,500,000 |
| 015 | 15/01/2024 | TP. HCM | 14,800,000 |
2. Giải pháp: “Cluster Values” (Phân cụm giá trị)
Tính năng này tự động quét cột, tìm các giá trị giống nhau về mặt ngữ âm/ký tự và đề xuất gộp nhóm.
3. Thao tác Cầm tay chỉ việc:
- Load bảng trên vào Power Query Editor.
- Chọn cột [Tên Chi Nhánh].
- Vào thẻ Add Column (Thêm cột) $\rightarrow$ chọn Cluster Values (Phân cụm giá trị). (Lưu ý: Tính năng này có sẵn trên Power BI Desktop và Excel 365 Enterprise).
- Trong hộp thoại hiện ra:
- New column name: Đặt là
Chi Nhánh Chuẩn. - Power Query sẽ tự động đề xuất các nhóm. Ví dụ: Nó sẽ gom “Hanoi”, “Ha Noi”, “H. Nội” vào nhóm “Hà Nội”.
- Nếu kết quả chưa ưng ý, bấm vào Fuzzy cluster options, tích chọn Ignore Case (Bỏ qua hoa thường).
- New column name: Đặt là
- Nhấn OK. Bạn sẽ có một cột mới đã được chuẩn hóa hoàn toàn.
🟡 CẤP ĐỘ 2: TRUNG BÌNH – HỢP NHẤT 2 BẢNG VỚI FUZZY MERGE
Tình huống: Bạn cần lấy “Mã Khách Hàng” từ bảng Danh sách chuẩn (Master) điền vào Bảng Giao dịch (Transaction). Tuy nhiên, tên khách hàng ở 2 bảng bị lệch nhẹ do lỗi nhập liệu (thừa dấu cách, thiếu dấu, viết tắt “Cty”). VLOOKUP sẽ trả về #N/A, nhưng Fuzzy Merge sẽ giải quyết được.
1. Dữ liệu mẫu
Bảng A: Giao Dịch (Transaction – Dữ liệu Rác)
| STT | Khách Hàng (Trên Hóa Đơn) | Số Tiền |
| :— | :— | :— |
| 1 | Cty TNHH ABC | 500$ |
| 2 | Cong ty ABC | 600$ |
| 3 | ABC Company | 550$ |
| 4 | Tập đoàn Vingroup | 1000$ |
| 5 | Vingroup JSC | 1200$ |
| 6 | Vin Group | 1100$ |
| 7 | FPT Software | 800$ |
| 8 | FPT Soft | 850$ |
| 9 | Cty FPT | 900$ |
| 10 | Thế Giới Di Động | 700$ |
| 11 | TGDD | 750$ | (Lưu ý: Cái này sẽ thất bại ở Level 2, cần Level 3) |
| 12 | The Gioi Di Dong | 720$ |
| 13 | Viettel Telecom | 950$ |
| 14 | Tong Cty Viettel | 980$ |
| 15 | Viettel Group | 960$ |
Bảng B: Danh Mục Khách Hàng (Master – Dữ liệu Chuẩn)
| Mã KH | Tên Khách Hàng Chuẩn |
| :— | :— |
| KH001 | Công ty TNHH ABC |
| KH002 | Tập đoàn Vingroup |
| KH003 | Công ty FPT |
| KH004 | Công ty Cổ phần Thế Giới Di Động |
| KH005 | Tập đoàn Công nghiệp Viễn thông Quân đội (Viettel) |
2. Thao tác Cầm tay chỉ việc:
- Load cả 2 bảng vào Power Query.
- Chọn Bảng A (Giao Dịch).
- Vào thẻ Home $\rightarrow$ Merge Queries (Hợp nhất truy vấn).
- Chọn Bảng B (Master) ở phía dưới.
- Chọn cột [Khách Hàng] ở Bảng A và cột [Tên Khách Hàng Chuẩn] ở Bảng B.
- QUAN TRỌNG: Tích vào ô “Use fuzzy matching to perform the merge”.
- Mở rộng mũi tên Fuzzy matching options:
- Similarity Threshold (Ngưỡng tương đồng): Nhập
0.8(Nghĩa là giống nhau 80% là chấp nhận). Nếu để trống, mặc định là 0.8. - Ignore Case: Tích chọn (để “abc” = “ABC”).
- Ignore space: Tích chọn (để “Vin Group” = “Vingroup”).
- Similarity Threshold (Ngưỡng tương đồng): Nhập
- Nhấn OK. Sau đó Expand (Mở rộng) cột mới để lấy
Mã KH.
Kết quả: Các dòng như “Cong ty ABC”, “Vingroup JSC” sẽ tìm được Mã KH chính xác. Tuy nhiên, dòng số 11 (“TGDD”) có thể sẽ KHÔNG tìm thấy vì nó viết tắt quá ngắn, không đủ độ giống 80% so với “Thế Giới Di Động”. Đó là lý do ta cần Level 3.
🔴 CẤP ĐỘ 3: KHÓ – XỬ LÝ VIẾT TẮT BẰNG “TRANSFORMATION TABLE”
Tình huống: Dữ liệu chứa các từ viết tắt hoặc mã vùng hoàn toàn không giống nhau về mặt ký tự (Ví dụ: “HN” và “Hà Nội”, “NY” và “New York”, “TGDD” và “Thế Giới Di Động”). Fuzzy Matching thông thường sẽ bó tay vì độ tương đồng gần như bằng 0.
1. Dữ liệu mẫu
Bảng A: Danh Sách Ứng Viên (Có nơi sinh viết tắt)
| ID | Tên UV | Nơi Sinh (Viết tắt/Lỗi) |
| :— | :— | :— |
| 001 | Nguyễn Văn A | HN |
| 002 | Trần Thị B | Hnoi |
| 003 | Lê Văn C | SG |
| 004 | Phạm Thị D | HCMC |
| 005 | Hoàng Văn E | Sài Gòn |
| 006 | Đỗ Thị F | DN |
| 007 | Ngô Văn G | DaNang |
| 008 | Bùi Thị H | HP |
| 009 | Vũ Văn I | Hải Phòng |
| 010 | Đặng Thị K | NA |
| 011 | Lý Văn L | Nghe An |
| 012 | Trương Thị M | Vinh |
| 013 | Đoàn Văn N | Hue |
| 014 | Hồ Thị O | TTH |
| 015 | Cao Văn P | Thừa Thiên Huế |
Bảng B: Bảng Địa Danh Chuẩn
| Mã Vùng | Tên Tỉnh Thành |
| :— | :— |
| V01 | Hà Nội |
| V02 | TP. Hồ Chí Minh |
| V03 | Đà Nẵng |
| V04 | Hải Phòng |
| V05 | Nghệ An |
| V06 | Thừa Thiên Huế |
2. Giải pháp: Tạo “Transformation Table” (Bảng chuyển đổi)
Đây là “cuốn từ điển” bạn dạy cho Power BI hiểu các quy tắc riêng của bạn.
3. Thao tác Cầm tay chỉ việc:
Bước 1: Tạo Bảng Chuyển Đổi (Transformation Table)
Bạn tạo thêm một bảng Excel nhỏ (hoặc nhập trực tiếp vào Power BI bằng Enter Data) với đúng 2 cột tiêu đề là From và To:
| From | To |
| HN | Hà Nội |
| Hnoi | Hà Nội |
| SG | TP. Hồ Chí Minh |
| HCMC | TP. Hồ Chí Minh |
| Sài Gòn | TP. Hồ Chí Minh |
| DN | Đà Nẵng |
| HP | Hải Phòng |
| NA | Nghệ An |
| Vinh | Nghệ An |
| TTH | Thừa Thiên Huế |
| Hue | Thừa Thiên Huế |
Load bảng này vào Power Query, đặt tên là BangChuyenDoi.
Bước 2: Thực hiện Fuzzy Merge nâng cao
- Chọn Bảng A (Ứng Viên).
- Merge Queries với Bảng B (Địa Danh Chuẩn).
- Tích chọn “Use fuzzy matching…”.
- Mở Fuzzy matching options.
- Kéo xuống dưới cùng, mục Transformation table (optional): Chọn bảng BangChuyenDoi.
- Nhấn OK.
Giải thích cơ chế:
Trước khi Power BI so sánh độ giống nhau, nó sẽ tra cứu trong BangChuyenDoi trước.
- Nó thấy dòng 1 là “HN”.
- Nó nhìn vào bảng chuyển đổi: À, “HN” nghĩa là “Hà Nội”.
- Sau đó nó mới so sánh “Hà Nội” (đã dịch) với “Hà Nội” (ở bảng chuẩn) $\rightarrow$ Khớp 100%.
- Kết quả: Dù “HN” và “Hà Nội” khác hẳn nhau, Power BI vẫn ghép đúng cặp.
💡 Lời khuyên chuyên gia:
- Luôn bắt đầu với Level 2 (Ngưỡng 0.8) cho các lỗi chính tả nhẹ.
- Sử dụng Level 3 (Transformation Table) cho các từ viết tắt đặc thù ngành (VD: “Dept” = “Department”, “MGR” = “Manager”).
- Fuzzy Matching tốn tài nguyên máy tính hơn Merge thường. Nếu dữ liệu > 500.000 dòng, hãy cân nhắc làm sạch ở nguồn trước nếu có thể.