Tuần 1 · Ngày 5 · Tổng kết tuần · 4 giờ

Mục tiêu

  • Củng cố Excel/SQL và sự tương ứng với Power BI
  • Hoàn thành mini project "Báo cáo bán hàng Sao Mai v1"
  • Làm bài kiểm tra tuần 1

Dữ liệu cần tải

Ngày 5: Review 2 + Tổng kết tuần 1

Kế hoạch 4 giờ

Thời gianNội dung
1 giờPhần 1: Review ngày 4 (Excel & SQL)
1 giờ 30Phần 2: Mini project
1 giờPhần 3: Kiểm tra tuần 1 (trắc nghiệm + thực hành)
30 phútPhần 4: Tự đánh giá, ghi điểm yếu

Phần 1: Review ngày 4

SQL: hiệu quả khuyến mãi 2025. JOIN FactDonHang với DimKhuyenMai, tính cho từng chương trình khuyến mãi năm 2025: Mã, Tên CTKM, số đơn hàng, doanh thu. Sắp giảm dần theo doanh thu.

SELECT k.MaCTKM, k.TenCTKM,
       COUNT(DISTINCT f.MaDonHang) AS SoDon,
       ROUND(SUM(f.SoLuong * f.DonGia * (1 - f.TyLeCK))) AS DoanhThu
FROM FactDonHang f
JOIN DimKhuyenMai k ON f.MaCTKM = k.MaCTKM
WHERE f.NgayDat BETWEEN '2025-01-01' AND '2025-12-31'
GROUP BY k.MaCTKM, k.TenCTKM
ORDER BY DoanhThu DESC;
MaCTKMTenCTKMSoDonDoanhThu
KM2505Hè sảng khoái 20252.2162.242.879.890
KM2412Tết Ất Tỵ - Bánh kẹo6621.350.797.670
KM2413Tết Ất Tỵ - Gia vị6121.238.166.300
KM2511Sạch Thơm cuối năm 20253991.067.185.880
KM2508Tựu trường - Sữa 2025539902.483.650
KM2512Tết Bính Ngọ - Bánh kẹo254507.197.220

Lưu ý: KM2412 và KM2413 bắt đầu từ 15/12/2024. Bảng trên chỉ tính phần năm 2025 do có điều kiện WHERE.

Vì sao INNER JOIN ở đây là đủ? Ta chỉ quan tâm các dòng có khuyến mãi. Các dòng không có khuyến mãi (MaCTKM rỗng) tự bị loại vì không khớp với bảng nào.

SQL: hàng trả về. Từ FactTraHang:

  1. Tổng số dòng trả hàng và tổng số thùng bị trả theo lý do, sắp giảm dần theo số thùng.
  2. Tổng số thùng bị trả theo ngành hàng. Gợi ý: JOIN với DimSanPham.

1. Theo lý do:

SELECT LyDo, COUNT(*) AS SoDong, SUM(SoLuongTra) AS SoThung
FROM FactTraHang
GROUP BY LyDo
ORDER BY SoThung DESC;
LyDoSoDongSoThung
Hết hạn sử dụng6941.500
Hư hỏng khi vận chuyển6491.325
Giao sai mặt hàng385794
Khách đổi ý280546

Tổng: 2.008 dòng.

2. Theo ngành hàng:

SELECT s.NganhHang, SUM(t.SoLuongTra) AS SoThung
FROM FactTraHang t
JOIN DimSanPham s ON t.MaSKU = s.MaSKU
GROUP BY s.NganhHang
ORDER BY SoThung DESC;
NganhHangSoThung
Nước giải khát1.301
Sữa & sản phẩm từ sữa857
Gia vị & thực phẩm khô771
Bánh kẹo676
Chăm sóc nhà cửa & cá nhân560

Excel: tỷ trọng doanh thu có khuyến mãi. Trên bảng BanHang (Excel), tính:

  1. Doanh thu năm 2025 của các dòng có Mã CTKM. Gợi ý: điều kiện “khác rỗng” trong SUMIFS là "<>".
  2. Tỷ trọng so với tổng doanh thu 2025.
  1. 7.308.710.610
    =SUMIFS(BanHang[Doanh thu], BanHang[Mã CTKM], "<>",
            BanHang[Ngày đặt], ">=" & DATE(2025,1,1),
            BanHang[Ngày đặt], "<=" & DATE(2025,12,31))
  2. 7.308.710.610 / 47.445.303.170, khoảng 15,4%.

Phần 2: Mini project “Báo cáo bán hàng Sao Mai v1”

Đề bài. Giám đốc kinh doanh cần một báo cáo Power BI để xem nhanh tình hình bán hàng. Tạo file mới SaoMai_v1.pbix từ FMCG_BanHang_2024_2025.xlsx.

Trang 1: Tổng quan

  • Slicer Năm và slicer Kênh, đồng bộ sang trang 2.
  • 3 card: Doanh thu, Lợi nhuận gộp, Số đơn hàng (đếm đúng).
  • Line chart doanh thu theo tháng, dòng thời gian liên tục 2024 - 2025.
  • Bar chart doanh thu theo Vùng.
  • Donut tỷ trọng kênh. Không bị slicer Kênh lọc.

Trang 2: Sản phẩm & NPP

  • Bar chart Top 10 sản phẩm theo doanh thu.
  • Matrix Ngành hàng (Rows) x Vùng (Columns), Values = Doanh thu.
  • Bar chart doanh thu theo Nhà phân phối, sắp giảm dần.

Yêu cầu trình bày

  • Mọi visual có tiêu đề tiếng Việt dễ hiểu.
  • Số tiền hiển thị đơn vị tỷ (bn) hoặc triệu (M), thống nhất trong từng trang.
  • Tên trang có ý nghĩa.

Đối chiếu số liệu (năm 2025, chưa chọn kênh):

Kiểm traGiá trị đúng
Doanh thu47.445.303.170
Lợi nhuận gộp17.624.095.570
Số đơn hàng9.977
Doanh thu Miền Nam19.611.755.930
Top 1 sản phẩmHạt nêm Hương Quê 400g (3.591.508.460)
Top 1 NPPNPP Gia Phát (4.011.204.210)
Tỷ trọng GTkhoảng 54,6%

Chọn Kênh = GT, các con số đổi theo, nhưng donut vẫn hiện cả GT và MT.

Các lỗi hay gặp:

  • Card “Số đơn hàng” ra 41.569: đang dùng Count thay vì Count (Distinct).
  • Line chart gộp tháng của 2 năm: đang dùng “Go to the next level” thay vì “Expand all down one level”.
  • Top 10 hiện cả 32 sản phẩm: Top N đặt nhầm ở page filter thay vì visual filter.

Phần 3: Kiểm tra tuần 1

Thời gian: 60 phút. Gồm 10 câu trắc nghiệm (10 điểm) và 1 bài thực hành (10 điểm). Đạt: từ 14/20 điểm.

Thực hành (30 phút, 10 điểm). File .pbix mới, nguồn FMCG_BanHang_2024_2025.xlsx. Tạo trang Khuyến mãi 2025:

  1. (2 điểm) Page filter năm 2025.
  2. (3 điểm) Card Doanh thu có khuyến mãi: dùng Filters on this visual, lọc Mã CTKM is not blank.
  3. (3 điểm) Bar chart doanh thu theo Mã CTKM, sắp giảm dần, không có thanh “(Blank)”.
  4. (2 điểm) Tiêu đề rõ ràng, nhãn dữ liệu đơn vị tỷ.
MụcGiá trị đúng
Card Doanh thu có khuyến mãi 20257.308.710.610
Bar chart, thanh dài nhấtKM2505: 2.242.879.890
Thứ tựKM2505 > KM2412 > KM2413 > KM2511 > KM2508 > KM2512

Lọc “is not blank”: Filters on this visual > Mã CTKM > Filter type = Advanced filtering > Show items when the value = is not blank. Hoặc ở Basic filtering, tick Select all rồi bỏ tick (Blank).

Chấm điểm: mỗi mục đúng số liệu và đúng cách làm thì được trọn điểm. Đúng số nhưng thiếu định dạng thì được nửa số điểm của mục đó.

Phần 4: Tự đánh giá tuần 1

  • Kiểm tra tuần 1 đạt từ 14/20
  • Mini project khớp toàn bộ bảng đối chiếu
  • Tôi tự dựng được báo cáo 1 trang từ file Excel trong 45 phút
  • Tôi giải thích được bảng Fact/Dim và vì sao cần khóa
  • Tôi đã ghi lại tất cả lỗi trong tuần vào sổ học tập