Bài 4: Tra cứu và kết hợp dữ liệu nhiều bảng

Ở bài này, bạn sẽ học cách nối dữ liệu từ nhiều bảng tham chiếu vào bảng đơn hàng để tạo báo cáo đầy đủ.

Mục tiêu:

  • Chuẩn hóa khóa tra cứu (customer_id, product_code, region_code).
  • Dùng VLOOKUP + IFERROR để lấy thông tin từ bảng map.
  • Tạo cột kiểm tra lỗi tra cứu để biết dòng nào thiếu dữ liệu nguồn.

Vì sao phải biết lookup nhiều bảng?

Trong file vận hành thật, dữ liệu thường tách rời:

  • Bảng đơn hàng.
  • Bảng khách hàng.
  • Bảng sản phẩm.
  • Bảng vùng/khu vực.

Nếu không biết ghép đúng khóa, báo cáo doanh thu và phân tích khách hàng sẽ sai ngay từ đầu.

Bộ công thức chính trong Bài 4

  1. Chuẩn hóa khóa: TRIM, UPPER, SUBSTITUTE, REGEXREPLACE
  2. Tra cứu dữ liệu: VLOOKUP
  3. Chống vỡ công thức khi thiếu map: IFERROR
  4. Ghép cảnh báo lỗi: TEXTJOIN
  5. Tính doanh thu gộp: phép nhân qty * unit_price

Demo before/after (read-only)

Bạn mở file read-only này để xem, sau đó vào File → Make a copy để thực hành:

  • Demo file (read-only): https://docs.google.com/spreadsheets/d/13tF2H4T68DBAatyFEV0bDYyRRDT7EIIOagoDoxl7R-Y/edit?usp=sharing

Các tab trong file:

  • Raw_Before: bảng đơn hàng + bảng map khách hàng/sản phẩm/vùng.
  • Clean_After: dữ liệu trước/sau tra cứu trong cùng một tab.
  • Practice: dữ liệu để bạn tự làm lại.
  • Checklist: tiêu chí tự kiểm theo từng cột.
  • Hướng dẫn từng bước: hướng dẫn chi tiết từng thao tác.

Logic before/after của bài

Trong Clean_After:

  • A:R: giữ bản sao dữ liệu thô và bảng tham chiếu.
  • T:AH: cột chuẩn hóa + lookup + tính toán + ghi chú lỗi.

Bạn sẽ tạo ra:

  • Khóa sạch: customer_id_clean, product_code_clean
  • Lookup: customer_name_lookup, customer_tier_lookup, product_name_lookup, unit_price_lookup, region_name_lookup
  • Tính toán: gross_amount
  • Cảnh báo: issue_note

Các case lỗi thực tế trong file demo

Bạn sẽ gặp đúng các lỗi hay xảy ra ngoài công việc:

  • customer_id không tồn tại trong bảng khách hàng.
  • product_code sai format nên lookup trượt.
  • region_code lạ nên không map được tên vùng.

Mục tiêu không chỉ là tra cứu thành công, mà còn phải biết dòng nào lỗi và lỗi gì.

Flow thực hành đề xuất

  1. Đọc nhanh Raw_Before, xác định bảng nguồn và bảng map.
  2. Clean_After, làm sạch khóa tra cứu trước.
  3. Viết lookup theo thứ tự: customer → product → region.
  4. Tính gross_amount sau khi có đơn giá.
  5. Ghép issue_note để hiển thị các lỗi lookup còn thiếu.
  6. Tự chấm bằng Checklist.

Layout học 60 phút cho Bài 4

1) Lecture (15 phút)

  • 5 phút: tư duy khóa tra cứu và bảng map.
  • 7 phút: demo đầy đủ flow lookup nhiều bảng.
  • 3 phút: cách debug khi VLOOKUP trả rỗng.

2) Thực hành có hướng dẫn (30 phút)

  • Làm theo tab Hướng dẫn từng bước.
  • Hoàn thiện toàn bộ cột T:AH trong Clean_After.
  • Đối chiếu kết quả theo từng checkpoint.

3) Thực hành tự làm (15 phút)

  • Làm lại toàn bộ trên tab Practice không nhìn đáp án.
  • So lại với Clean_After và ghi chú điểm sai.

Kết thúc Bài 4

Sau bài này, bạn sẽ:

  • Biết tra cứu và kết hợp dữ liệu từ nhiều bảng một cách ổn định.
  • Biết xử lý trường hợp lookup fail mà không làm hỏng báo cáo.
  • Có checklist rõ ràng để kiểm tra chất lượng dữ liệu sau khi join.

Bài tiếp theo, chúng ta sẽ đi vào làm sạch và chuẩn hóa dữ liệu nâng cao để giảm lỗi ngay từ đầu vào.