
Chuẩn hóa – làm sạch – phân tích ngày tháng cho báo cáo văn phòng & Power BI
🎯 MỤC TIÊU BÀI HỌC
Sau bài này, bạn sẽ làm được những việc mà Excel thuần rất khó hoặc rất rủi ro:
- Chuẩn hóa dữ liệu ngày tháng lộn xộn trong Excel bằng Python
- Xử lý các tình huống:
- Sai định dạng ngày
- Trộn text – date – datetime
- So sánh, tính toán theo tháng/quý/năm
- Tạo dữ liệu sạch, sẵn sàng cho Power BI & automation
- Áp dụng trực tiếp cho:
- Nhân sự (chấm công, hợp đồng)
- Kế toán (ngày chứng từ, kỳ báo cáo)
- Quản lý kho (ngày nhập – xuất – tồn)
⚠️ VẤN ĐỀ THỰC TẾ TRONG DOANH NGHIỆP
Trong Excel văn phòng, dữ liệu ngày tháng thường gặp:
01/02/2025→ là 1/2 hay 2/1?- Cột ngày bị hiểu là text
- Trộn:
2025-01-1515/01/202501-15-2025
- Không thể:
- Lọc đúng theo tháng
- Tính số ngày
- So sánh thời gian chính xác
👉 Excel xử lý được, nhưng rất dễ sai và khó tự động hóa lâu dài.
🧠 GIẢI PHÁP TỔNG QUAN
Excel = nơi nhập/xuất dữ liệu
Python = nơi xử lý DateTime một cách chuẩn xác
Luồng tư duy:
Excel (raw date)
→ Python (chuẩn hóa datetime)
→ Excel sạch / Power BI / Automation
🧪 DỮ LIỆU MẪU THỰC TẾ (≥ 15 DÒNG)
Giả sử bạn có file Excel: attendance_raw.xlsx
| employee_id | employee_name | department | check_in_date | contract_start | report_month |
|---|---|---|---|---|---|
| E001 | Nguyễn Văn A | Nhân sự | 01/02/2025 | 2023-05-15 | 01-2025 |
| E002 | Trần Thị B | Kế toán | 2025/02/01 | 15-06-2022 | 2025-01 |
| E003 | Lê Văn C | Kho | 02-01-2025 | 2021/03/20 | Jan-2025 |
| E004 | Phạm Thị D | Nhân sự | 2025.01.31 | 2020-12-01 | 01/2025 |
| E005 | Hoàng Văn E | Kế toán | 31/01/2025 | 2019-11-11 | 2025/01 |
| E006 | Đặng Thị F | Kho | 01-31-2025 | 2018-07-01 | 2025-1 |
| E007 | Vũ Văn G | Nhân sự | 2025-02-01 | 2024-01-01 | 2025-02 |
| E008 | Bùi Thị H | Kế toán | 02/01/2025 | 2022-09-15 | Feb-2025 |
| E009 | Đỗ Văn I | Kho | 2025/01/02 | 2021-04-20 | 2025-01 |
| E010 | Nguyễn Thị K | Nhân sự | 1/2/25 | 2023-03-01 | 01-25 |
| E011 | Trần Văn L | Kế toán | 2025-1-2 | 2019-08-18 | 2025-Jan |
| E012 | Lý Thị M | Kho | 02.01.2025 | 2020-02-02 | 2025/1 |
| E013 | Phan Văn N | Nhân sự | 2025/01/31 | 2017-06-06 | 2025-01 |
| E014 | Hồ Thị O | Kế toán | 31-01-2025 | 2016-10-10 | Jan/2025 |
| E015 | Võ Văn P | Kho | 2025 Jan 31 | 2015-12-12 | 2025.01 |
👉 Excel gần như bó tay nếu xử lý hàng loạt kiểu này.
🛠️ STEP BY STEP: XỬ LÝ DATETIME BẰNG PYTHON
🔹 STEP 1: Đọc dữ liệu Excel vào Python
Mục tiêu: Đưa dữ liệu thô vào môi trường xử lý an toàn.
import pandas as pd
df = pd.read_excel("attendance_raw.xlsx")
👉 Python không tự động hiểu date, ta phải chủ động kiểm soát.
🔹 STEP 2: Chuẩn hóa cột ngày tháng về datetime
Tư duy quan trọng:
Không tin dữ liệu → luôn ép kiểu & kiểm soát lỗi
date_columns = ["check_in_date", "contract_start"]
for col in date_columns:
df[col] = pd.to_datetime(df[col], errors="coerce", dayfirst=True)
Giải thích:
errors="coerce"→ dữ liệu sai sẽ thànhNaT(không làm sập hệ thống)dayfirst=True→ phù hợp dữ liệu Việt Nam
🔹 STEP 3: Chuẩn hóa kỳ báo cáo (report_month)
df["report_month"] = pd.to_datetime(
df["report_month"],
errors="coerce",
infer_datetime_format=True
).dt.to_period("M")
👉 Giờ đây:
- Lọc theo tháng
- Gộp dữ liệu
- Đẩy Power BI không lỗi
🔹 STEP 4: Tạo các cột thời gian phục vụ phân tích
df["check_in_year"] = df["check_in_date"].dt.year
df["check_in_month"] = df["check_in_date"].dt.month
df["contract_years"] = (
(pd.Timestamp.today() - df["contract_start"])
.dt.days // 365
)
👉 Đây là những cột Excel làm rất mệt, Python làm rất sạch.
🔹 STEP 5: Xuất dữ liệu sạch về Excel
df.to_excel("attendance_clean.xlsx", index=False)
File này:
- Dùng trực tiếp cho Power BI
- Dùng cho Make.com automation
- Không sợ lỗi date nữa
📊 PHÂN TÍCH KẾT QUẢ
Sau xử lý:
- 100% cột ngày tháng → datetime chuẩn
- Loại bỏ dữ liệu lỗi không làm hỏng báo cáo
- Lọc – group – so sánh thời gian chính xác tuyệt đối
So với Excel thuần:
- ❌ Excel: dễ sai, khó mở rộng
- ✅ Python: chuẩn hóa một lần, dùng lâu dài
🧾 KẾT LUẬN & ĐÁNH GIÁ
Python không thay thế Excel – Python cứu Excel.
- DateTime là điểm chết của rất nhiều báo cáo
- Một khi chuẩn hóa bằng Python:
- Báo cáo chạy ổn định
- Automation không sập
- Power BI không lỗi ngầm
👉 Đây là bước nền tảng bắt buộc nếu muốn tự động hóa văn phòng nghiêm túc.
🚀 GỢI Ý ÁP DỤNG THỰC TẾ
👥 Nhân sự
- Chuẩn hóa:
- Ngày vào làm
- Hợp đồng
- Chấm công
- Tính:
- Thâm niên
- Cảnh báo hết hạn hợp đồng
💰 Kế toán
- Chuẩn hóa:
- Ngày chứng từ
- Kỳ báo cáo
- Tránh:
- Lệch tháng
- Sai kỳ quyết toán
📦 Quản lý kho
- Theo dõi:
- Ngày nhập – xuất
- Tuổi tồn kho
- Cảnh báo hàng tồn lâu ngày