Có thể bạn quan tâm: Xóa Ô Trống Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
Mở Đầu – Tại Sao Cần Nâng Cao Kỹ Năng Excel?
Microsoft Excel không chỉ là một công cụ tính toán đơn giản, mà còn là nền tảng cho việc phân tích dữ liệu, tự động hoá quy trình và đưa ra quyết định kinh doanh. Khi đã thành thạo các tính năng cơ bản như nhập dữ liệu, định dạng ô, và sử dụng các hàm SUM, AVERAGE, hầu hết người dùng vẫn cảm thấy giới hạn trong việc xử lý các dự án phức tạp. Vì vậy, việc thực hành bài tập Excel nâng cao không chỉ giúp củng cố kiến thức mà còn mở ra cánh cửa tới các kỹ năng chuyên sâu như:
- Phân tích dữ liệu đa chiều (PivotTable, Power Pivot)
- Tự động hoá quy trình bằng Macro và VBA
- Xây dựng mô hình dự báo với các hàm thống kê và công cụ phân tích
- Tối ưu hoá hiệu suất khi làm việc với dữ liệu lớn (hàng triệu bản ghi)
Bài viết này sẽ cung cấp một loạt bài tập thực tế, mỗi bài tập được thiết kế để giải quyết một vấn đề thực tiễn và đồng thời rèn luyện các kỹ năng quan trọng. Bạn sẽ được hướng dẫn chi tiết từng bước, kèm theo giải pháp mẫu và lời giải thích sâu sắc. Hãy chuẩn bị sẵn sàng, mở Excel lên và bắt đầu hành trình trở thành chuyên gia Excel!
Có thể bạn quan tâm: Xuống Hàng Trong Ô Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
1. Bài Tập 1 – Tạo PivotTable Động Với Bộ Lọc Nhiều Điều Kiện
Mô tả bài tập
Bạn có một bảng dữ liệu bán hàng gồm các cột: Ngày, Sản phẩm, Khu vực, Doanh số, Số lượng. Yêu cầu:
- Tạo PivotTable tổng hợp doanh thu và số lượng bán ra cho từng sản phẩm.
- Thêm bộ lọc cho
Khu vựcvàTháng. - Khi người dùng chọn một khu vực và một tháng, PivotTable tự động cập nhật kết quả.
Các bước thực hiện
Bước 1: Chuẩn bị dữ liệu
- Đảm bảo dữ liệu được định dạng dưới dạng Table (Ctrl + T). Điều này giúp PivotTable tự động mở rộng khi thêm dữ liệu mới.
- Đặt tên Table là
tblBanHang.
Bước 2: Thêm cột “Tháng” và “Năm”
- Thêm cột phụ
Tháng=TEXT(@Ngày,”mmmm”) - Thêm cột phụ
Năm=YEAR(@Ngày) - Khi dữ liệu đã có cột Tháng, chúng ta sẽ dùng nó trong bộ lọc.
Bước 3: Tạo PivotTable
- Chọn bất kỳ ô nào trong Table →
Insert→PivotTable. - Đặt PivotTable trong một sheet mới, đặt tên là
Pivot_BanHang.
Bước 4: Cấu hình trường
- Rows:
Sản phẩm - Values:
Doanh số(đặt Summarize Values By = Sum) vàSố lượng(Sum). - Filters:
Khu vực,Tháng.
Bước 5: Thêm Slicer (Bộ lọc trực quan)
- Click vào PivotTable →
PivotTable Analyze→Insert Slicer. - Chọn
Khu vựcvàTháng. - Đặt Slicer ở vị trí thuận tiện, thay đổi kích thước và màu sắc nếu muốn.
Bước 6: Kiểm tra tính động
- Khi bạn click vào một khu vực và một tháng trên Slicer, PivotTable sẽ tự động hiển thị doanh thu, số lượng cho các sản phẩm trong điều kiện đã chọn.
Giải thích chi tiết
- Table: Khi dữ liệu được định dạng thành Table, Excel sẽ tự động mở rộng phạm vi dữ liệu cho PivotTable mỗi khi bạn thêm bản ghi mới, tránh việc phải cập nhật nguồn dữ liệu thủ công.
- Slicer: Là công cụ trực quan giúp người dùng không cần mở menu lọc, giảm thiểu lỗi nhập liệu.
- PivotTable Động: Khi dữ liệu thay đổi (thêm, xóa), chỉ cần Refresh (Alt+F5) để cập nhật báo cáo.
Mở rộng
- Thêm biểu đồ PivotChart để hiển thị xu hướng doanh thu theo thời gian.
- Sử dụng Calculated Field để tính lợi nhuận = Doanh số – Chi phí (nếu có cột Chi phí).
Có thể bạn quan tâm: Trị Tuyệt Đối Trong Excel: Khái Niệm, Công Thức, Ứng Dụng Và Mẹo Tối Ưu
2. Bài Tập 2 – Sử Dụng Hàm ARRAY Động (Dynamic Array) Để Tạo Danh Sách Độc Đáo
Mô tả bài tập
Bạn có danh sách khách hàng trong cột A (có thể trùng nhau). Yêu cầu:
- Tạo danh sách không trùng lặp của khách hàng trong cột
D. - Khi dữ liệu trong cột
Athay đổi (thêm, xóa, sửa), danh sách ở cộtDtự động cập nhật.
Các hàm cần dùng
UNIQUE– Trích xuất các giá trị duy nhất.SORT– Sắp xếp danh sách (tùy chọn).
Công thức
Ở ô D2 nhập:
=SORT(UNIQUE(FILTER(A2:A1000, A2:A1000<>"")))
Giải thích:
FILTER(A2:A1000, A2:A1000<>"")loại bỏ các ô trống.UNIQUE(...)lấy các giá trị không lặp.SORT(...)sắp xếp tăng dần (có thể bỏ nếu không cần).
Lưu ý khi áp dụng
- Đảm bảo Excel phiên bản Office 365 hoặc Excel 2026 trở lên, vì hàm Dynamic Array chỉ có trong các phiên bản này.
- Công thức trả về mảng và sẽ “tràn” (spill) ra các ô phía dưới tự động. Không để dữ liệu nào trong cột D2:Dxxx để tránh lỗi
#SPILL!.
Mở rộng
- Thêm cột
Eđể đếm số lần xuất hiện của mỗi khách hàng bằng công thức:
=COUNTIF($A$2:$A$1000, D2#)
- Kết hợp với
XLOOKUPđể lấy thông tin chi tiết (địa chỉ, số điện thoại) từ một bảng khác.
3. Bài Tập 3 – Tự Động Hóa Báo Cáo Hằng Tháng Bằng Macro VBA
Mô tả bài tập
Bạn cần xuất báo cáo bán hàng hàng tháng sang file PDF và gửi email cho quản lý. Yêu cầu:
- Tạo macro ghi lại các bước: lọc dữ liệu tháng hiện tại, tạo PivotTable, định dạng, xuất PDF.
- Gửi email tự động kèm file PDF đính kèm.
Bước 1: Mở Trình Soạn Thảo VBA
- Nhấn
Alt + F11→ Insert → Module.
Bước 2: Viết Macro
Sub BaoCaoHangThang() Dim wsData As Worksheet, wsReport As Worksheet Dim pt As PivotTable Dim rngData As Range Dim strMonth As String, strYear As String Dim pdfPath As String Dim OutApp As Object, OutMail As Object '--- Đặt biến --- Set wsData = ThisWorkbook.Sheets("Dữ liệu") Set wsReport = ThisWorkbook.Sheets("Báo cáo") '--- Xác định tháng hiện tại --- strMonth = Format(Date, "mmmm") strYear = Year(Date) '--- Xóa PivotTable cũ nếu có --- On Error Resume Next wsReport.PivotTables("PT_BanHang").TableRange2.Clear On Error GoTo 0 '--- Định nghĩa vùng dữ liệu --- Set rngData = wsData.ListObjects("tblBanHang").Range '--- Tạo PivotTable --- Set pt = wsReport.PivotTables.Add(PivotCache:=ThisWorkbook.PivotCaches.Create( _ SourceType:=xlDatabase, SourceData:=rngData), _ TableDestination:=wsReport.Range("A3"), TableName:="PT_BanHang") With pt .PivotFields("Sản phẩm").Orientation = xlRowField .PivotFields("Doanh số").Orientation = xlDataField .PivotFields("Doanh số").Function = xlSum .PivotFields("Số lượng").Orientation = xlDataField .PivotFields("Số lượng").Function = xlSum .PivotFields("Tháng").Orientation = xlPageField .PivotFields("Tháng").CurrentPage = strMonth End With '--- Định dạng nhanh --- wsReport.Range("A1").Value = "BÁO CÁO BÁN HÀNG THÁNG " & UCase(strMonth) & " " & strYear wsReport.Range("A1").Font.Size = 16 wsReport.Range("A1").Font.Bold = True '--- Xuất PDF --- pdfPath = ThisWorkbook.Path & "\BaoCao_" & strMonth & "_" & strYear & ".pdf" wsReport.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath, _ Quality:=xlQualityStandard, IncludeDocProperties:=True, _ IgnorePrintAreas:=False, OpenAfterPublish:=False '--- Gửi email --- Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0) With OutMail .To = "giamdoc@congty.com" .CC = "" .BCC = "" .Subject = "Báo cáo bán hàng tháng " & strMonth & " " & strYear .Body = "Kính gửi Quý vị," & vbCrLf & vbCrCrLf & _ "Đính kèm là báo cáo bán hàng tháng " & strMonth & " " & strYear. _ vbCrLf & vbCrLf & "Trân trọng," .Attachments.Add pdfPath .Send 'Hoặc .Display để xem trước End With MsgBox "Báo cáo đã được tạo và gửi thành công!", vbInformation
End Sub
Giải thích mã
| Phần | Mô tả |
|---|---|
Set wsData | Đặt sheet chứa dữ liệu gốc. |
strMonth, strYear | Lấy tháng và năm hiện tại để lọc và đặt tên file. |
PivotCaches.Create | Tạo bộ nhớ đệm cho PivotTable, giúp tốc độ nhanh hơn. |
CurrentPage = strMonth | Lọc PivotTable chỉ hiển thị dữ liệu tháng hiện tại. |
ExportAsFixedFormat | Xuất sheet báo cáo dưới dạng PDF. |
Outlook.Application | Tạo đối tượng Outlook để gửi email. |
Lưu ý khi chạy macro
- Đảm bảo Macro Security cho phép chạy macro (Trust Center → Macro Settings).
- Outlook phải được cài đặt và đăng nhập trên máy tính.
- Thư mục lưu file PDF phải tồn tại; trong ví dụ trên, file sẽ lưu cùng thư mục của workbook.
Mở rộng
- Thêm vòng lặp (For Each) để tạo báo cáo cho nhiều tháng trong một năm và gửi từng email.
- Sử dụng
Application.ScreenUpdating = Falseđể tăng tốc độ khi xử lý dữ liệu lớn.
4. Bài Tập 4 – Sử Dụng Power Query Để Làm Sạch Dữ Liệu
Mô tả bài tập
Bạn nhận được một file CSV chứa dữ liệu khách hàng: cột Tên, Ngày sinh, Số điện thoại, Email. Tuy nhiên:
- Một số ô
Ngày sinhđang ở dạng text “dd/mm/yyyy”. - Cột
Số điện thoạichứa dấu gạch ngang và khoảng trắng. - Có nhiều bản ghi trùng lặp (cùng tên và email).
Yêu cầu:
- Dùng Power Query (Get & Transform) để chuyển đổi
Ngày sinhsang kiểu Date. - Làm sạch
Số điện thoạichỉ giữ lại số. - Loại bỏ bản ghi trùng lặp dựa trên
TênvàEmail.
Các bước thực hiện
Bước 1: Nhập dữ liệu vào Power Query
Data→Get Data→From Text/CSV→ Chọn file CSV.- Click
Transform Datađể mở Power Query Editor.
Bước 2: Chuyển đổi kiểu dữ liệu Ngày sinh
- Chọn cột
Ngày sinh. Transform→Data Type→Date.- Nếu Excel không nhận dạng đúng định dạng, chọn
Using Locale...→ Locale: Vietnamese (Vietnam) → Date format:dd/MM/yyyy.
Bước 3: Làm sạch Số điện thoại
- Chọn cột
Số điện thoại. Transform→Replace Values→ Thay “-” bằng “”.- Lặp lại: Replace “ ” (space) bằng “”.
- Hoặc dùng
Transform→Extract→Digits Only(có trong Power Query 2026 trở lên).
Bước 4: Loại bỏ trùng lặp
- Chọn cả hai cột
TênvàEmail(Ctrl + click). Home→Remove Rows→Remove Duplicates.
Bước 5: Đóng và tải dữ liệu
Home→Close & Load→ ChọnLoad To…→Tabletrên một sheet mới, đặt têntblKhachHang_Sach.
Giải thích chi tiết
- Power Query thực hiện các bước xử lý dữ liệu một cách tái sử dụng. Khi nguồn dữ liệu thay đổi, chỉ cần Refresh (Ctrl + Alt + F5) để cập nhật toàn bộ quy trình làm sạch.
- Việc xóa trùng lặp dựa trên nhiều cột giúp bảo đảm không mất dữ liệu hợp lệ khi chỉ dựa vào một cột duy nhất.
Mở rộng
- Thêm cột
Tuổibằng công thức tùy chỉnh trong Power Query:
= Duration.Days(DateTime.LocalNow() - Ngày sinh) / 365
- Thêm cột
Nhóm khách hàngdựa trênDoanh thu(nếu có) bằngConditional Column.
5. Bài Tập 5 – Xây Dựng Mô Hình Dự Báo Với Hàm FORECAST.LINEAR
Mô tả bài tập
Bạn có dữ liệu doanh thu hàng tháng trong 3 năm (36 bản ghi) ở cột B (tháng) và C (doanh thu). Yêu cầu:

Có thể bạn quan tâm: Cách Thêm Dòng Trong Bảng Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
- Dự báo doanh thu cho 6 tháng tiếp theo (tháng 37‑42).
- Vẽ biểu đồ kết hợp thực tế và dự báo.
Sử dụng hàm FORECAST.LINEAR
Công thức dự báo:
=FORECAST.LINEAR(x, known_y's, known_x's)
xlà giá trị tháng cần dự báo (ví dụ 37).known_y'slà dải doanh thu thực tế (C2:C37).known_x'slà dải tháng (B2:B37).
Bước thực hiện
- Tạo cột tháng: Trong ô
B2nhập1, kéo xuống tớiB37để có 36 tháng. - Nhập doanh thu thực tế trong cột
C. - Thêm cột dự báo: Trong ô
D38(tháng 37) nhập công thức:
=FORECAST.LINEAR(B38,$C$2:$C$37,$B$2:$B$37)
- Kéo công thức xuống tới
D43(tháng 42). - Định dạng: Đánh dấu cột
B(tháng) và cộtC(doanh thu thực tế) →Insert→Line Chart. - Thêm series dự báo: Chuột phải vào biểu đồ →
Select Data→Add→Series values==$D$38:$D$43.
Giải thích
- Hàm FORECAST.LINEAR thực hiện hồi quy tuyến tính (least squares) dựa trên dữ liệu đã cho.
- Độ chính xác phụ thuộc vào tính tuyến tính của dữ liệu; nếu dữ liệu có mùa vụ, nên dùng Holt‑Winters (công cụ Analysis ToolPak) hoặc Power Pivot với mô hình thời gian.
Mở rộng
- Sử dụng Data Analysis →
Regressionđể thu được hệ sốR², kiểm tra độ phù hợp. - Thêm độ tin cậy bằng cách tính khoảng tin cậy 95% (công thức
CONFIDENCE.NORM).
6. Bài Tập 6 – Xây Dựng Dashboard Tương Tác Với Slicer và Chart
Mô tả bài tập
Bạn muốn tạo một Dashboard hiển thị:
- Doanh thu theo khu vực (cột
Khu vực). - Lượng bán theo sản phẩm (cột
Sản phẩm). - Biểu đồ đường xu hướng doanh thu tháng.
Dashboard cần cho phép người dùng chọn khu vực và khoảng thời gian để lọc dữ liệu ngay lập tức.
Các thành phần cần chuẩn bị
| Thành phần | Mô tả |
|---|---|
| PivotTable 1 | Tổng doanh thu theo khu vực |
| PivotTable 2 | Lượng bán theo sản phẩm |
| PivotChart | Đường xu hướng doanh thu tháng |
| Slicer | Bộ lọc Khu vực và Tháng |
| Timeline | Bộ lọc thời gian (năm – tháng) |
Các bước thực hiện
Bước 1: Chuẩn bị dữ liệu Table
- Đảm bảo dữ liệu bán hàng được định dạng thành Table
tblBanHangvà có cộtNgày(định dạng Date).
Bước 2: Tạo PivotTable cho Doanh thu khu vực
Insert→PivotTable→ Chọn Table → Đặt vị trí trong sheet “Dashboard”.- Rows:
Khu vực - Values:
Doanh số(Sum)
Bước 3: Tạo PivotTable cho Lượng bán sản phẩm
- Tương tự, Rows:
Sản phẩm→ Values:Số lượng(Sum).
Bước 4: Tạo PivotChart đường xu hướng
- Chọn PivotTable tổng doanh thu theo
Ngày(Rows =Ngày, Values =Doanh số). Insert→Line Chart. Đặt chart trong Dashboard.
Bước 5: Thêm Slicer và Timeline
- Click vào bất kỳ PivotTable nào →
PivotTable Analyze→Insert Slicer→ ChọnKhu vực. - Click vào PivotTable có trường
Ngày→Insert Timeline→ ChọnNgày. - Đặt các bộ lọc ở vị trí hợp lý, thay đổi màu sắc để phân biệt.
Bước 6: Liên kết Slicer/Timeline tới tất cả PivotTable
- Click vào Slicer →
Options→Report Connections→ Đánh dấu vào tất cả các PivotTable cần đồng bộ. - Timeline cũng làm tương tự.
Bước 7: Định dạng Dashboard
- Thêm tiêu đề lớn, phân vùng bằng Shape hoặc Text Box.
- Đặt màu sắc thống nhất (theme) để Dashboard trông chuyên nghiệp.
Kết quả
Khi người dùng chọn một khu vực trên Slicer và kéo Timeline để chọn tháng, cả ba bảng và biểu đồ sẽ tự động cập nhật, cung cấp cái nhìn tổng thể về doanh thu, lượng bán và xu hướng thời gian.
Mở rộng
- Thêm KPI (Key Performance Indicator) bằng công thức
=GETPIVOTDATAđể hiển thị mục tiêu doanh thu và tỷ lệ hoàn thành. - Sử dụng Conditional Formatting để tô màu các vùng vượt mục tiêu.
7. Bài Tập 7 – Tính Toán KPI Với Hàm XLOOKUP và IFERROR
Mô tả bài tập
Bạn có bảng Mục tiêu (cột Khu vực, Doanh thu mục tiêu) và bảng Thực tế (cột Khu vực, Doanh thu thực tế). Yêu cầu:
- Tạo bảng tổng hợp hiển thị % hoàn thành =
Doanh thu thực tế / Doanh thu mục tiêu. - Nếu không có mục tiêu (NULL), hiển thị “Chưa đặt mục tiêu”.
Công thức
Giả sử bảng tổng hợp bắt đầu ở E2 (cột Khu vực), cột F là Doanh thu thực tế, cột G là Doanh thu mục tiêu, cột H là % Hoàn Thành.
Bước 1: Lấy dữ liệu thực tế
=IFERROR(XLOOKUP(E2, ThucTe Khu vực , ThucTe Doanh thu thực tế ), 0)
Bước 2: Lấy dữ liệu mục tiêu
=IFERROR(XLOOKUP(E2, MucTieu Khu vực , MucTieu Doanh thu mục tiêu ), "")
Bước 3: Tính % hoàn thành
=IF(G2="", "Chưa đặt mục tiêu", TEXT(F2/G2, "0.0%"))
Giải thích
XLOOKUPlà phiên bản mạnh hơnVLOOKUP, cho phép tìm kiếm từ trái sang phải và trả về giá trị mặc định nếu không tìm thấy.IFERRORbắt mọi lỗi (ví dụ #N/A) và trả về 0 hoặc chuỗi rỗng, tránh làm hỏng công thức.TEXT(..., "0.0%")định dạng kết quả dưới dạng phần trăm với một chữ số thập phân.
Mở rộng
- Thêm cột
Màubằng Conditional Formatting: nếu % hoàn thành < 80% → màu đỏ, 80‑100% → màu vàng, >100% → màu xanh. - Sử dụng
GETPIVOTDATAđể lấy dữ liệu tự động nếu bảng thực tế được tóm tắt bằng PivotTable.
8. Bài Tập 8 – Tối Ưu Hóa Tốc Độ Khi Xử Lý Dữ Liệu Lớn
Vấn đề thực tế
Khi làm việc với bảng dữ liệu có hàng triệu bản ghi (ví dụ log giao dịch), các hàm như VLOOKUP, COUNTIF thường chậm. Bạn cần các kỹ thuật để tăng tốc.
Giải pháp
| Kỹ thuật | Mô tả | Cách thực hiện |
|---|---|---|
| Sử dụng Table + Structured References | Giảm thời gian truy cập ô so với tham chiếu A1:B1000000. | Đánh dấu dữ liệu → Ctrl+T → Đặt tên Table. |
| Dùng XLOOKUP hoặc INDEX/MATCH thay vì VLOOKUP | XLOOKUP tối ưu hơn và không cần sắp xếp cột. | =XLOOKUP(lookup_value, lookup_array, return_array, "", 0, 1) |
| Áp dụng Power Query | Xử lý dữ liệu trước khi đưa vào Excel, chỉ tải phần cần thiết. | Data → Get Data → From Table/Range → Transform → Load to Data Model. |
| Sử dụng công thức Array (Dynamic Array) thay vì công thức lặp | Các hàm như FILTER, UNIQUE tính toán nhanh hơn. | =UNIQUE(FILTER(...)) |
| Tắt tính năng tính toán tự động | Khi nhập nhiều công thức, tạm thời tắt Auto Calculation. | Formulas → Calculation Options → Manual. Sau khi hoàn thành, nhấn F9 để tính lại. |
| Sử dụng VBA để thực hiện vòng lặp nhanh | Khi cần duyệt hàng triệu dòng, VBA thường nhanh hơn công thức. | Viết macro dùng Dictionary để lưu trữ và tra cứu. |
| Chỉ tải dữ liệu cần thiết vào Worksheet | Đừng để toàn bộ dữ liệu trong một sheet, chỉ tải phần tổng hợp. | Dùng Power Pivot để tạo Data Model và tạo PivotTable trực tiếp từ đó. |
Ví dụ: Thay thế COUNTIF bằng Dictionary trong VBA
Function CountOccurrences(rng As Range, key As Variant) As Long Dim dict As Object, cell As Range Set dict = CreateObject("Scripting.Dictionary") For Each cell In rng If Not dict.Exists(cell.Value) Then dict(cell.Value) = 1 Else dict(cell.Value) = dict(cell.Value) + 1 End If Next cell If dict.Exists(key) Then CountOccurrences = dict(key) Else CountOccurrences = 0 End If
End Function
- Sử dụng:
=CountOccurrences(A2:A1000000, "Khách hàng A") - Hàm này chỉ tính một lần cho toàn bộ vùng và lưu trong Dictionary, nhanh hơn rất nhiều so với
COUNTIFlặp lại.
9. Bài Tập 9 – Tạo Báo Cáo Định Kỳ Tự Động Với Power Automate
Mô tả
Bạn muốn mỗi đầu tháng Excel tự động:
- Lấy dữ liệu bán hàng của tháng trước.
- Tạo file PDF báo cáo.
- Gửi email cho bộ phận tài chính.
Các bước thực hiện trên Power Automate (trước đây là Microsoft Flow)
- Trigger:
Recurrence→ ChọnMonthlyvào ngày 1. - Action:
Get file content→ Lấy file Excel từ OneDrive/SharePoint. - Action:
Run script→ Gọi Office Script (script viết bằng TypeScript) để thực hiện lọc và tạo PivotTable.
Office Script mẫu
function main(workbook: ExcelScript.Workbook) { const sheetData = workbook.getWorksheet("Dữ liệu"); const table = sheetData.getTable("tblBanHang"); // Lọc dữ liệu tháng trước const today = new Date(); const prevMonth = new Date(today.getFullYear(), today.getMonth() - 1, 1); const monthStart = prevMonth; const monthEnd = new Date(prevMonth.getFullYear(), prevMonth.getMonth() + 1, 0); const rows = table.getRangeBetweenHeaderAndTotal().getValues(); const filtered = rows.filter(r => { const date = new Date(r0); // Giả sử cột 0 là Ngày return date >= monthStart && date <= monthEnd; }); // Tạo sheet báo cáo tạm thời const reportSheet = workbook.addWorksheet("ReportTmp"); reportSheet.getRange("A1").getResizedRange(filtered.length, filtered0.length).setValues(filtered); // Tạo PivotTable const pivotSheet = workbook.addWorksheet("Report"); const pivotTable = pivotSheet.addPivotTable("PT_BanHang", reportSheet.getRange("A1").getResizedRange(filtered.length, filtered0.length)); // Cấu hình pivot (tùy chỉnh) // ...
}
- Action:
Create file→ Lưu PDF vào OneDrive. - Action:
Send an email (V2)→ Đính kèm file PDF, nhập địa chỉ người nhận.
Lợi ích
- Không cần mở Excel: Tự động chạy trên đám mây.
- Tiết kiệm thời gian: Báo cáo được tạo và gửi trong vài phút.
10. Tổng Kết – Hành Trình Trở Thành Chuyên Gia Excel
Qua 10 bài tập nâng cao trên, bạn đã:
- Quản lý và phân tích dữ liệu bằng PivotTable, Slicer, Timeline.
- Áp dụng hàm Dynamic Array để tạo danh sách duy nhất, sắp xếp tự động.
- Tự động hoá quy trình bằng Macro VBA và Power Automate.
- Làm sạch dữ liệu thông qua Power Query, giảm thiểu lỗi nhập liệu.
- Dự báo doanh thu bằng các hàm thống kê và mô hình hồi quy.
- Xây dựng Dashboard tương tác, cung cấp thông tin quyết định nhanh chóng.
- Tối ưu hoá hiệu suất khi làm việc với dữ liệu lớn, sử dụng VBA, Power Pivot và các kỹ thuật tối ưu.
Những Bước Tiếp Theo
- Thực hành thường xuyên: Đặt mục tiêu hoàn thành ít nhất một bài tập mỗi tuần.
- Tham gia cộng đồng: Các forum như Reddit r/excel, Stack Overflow, hay những nhóm Facebook chuyên về Excel.
- Khám phá thêm công cụ: Power BI, Power Apps – mở rộng khả năng báo cáo và ứng dụng doanh nghiệp.
- Chứng chỉ Microsoft Office Specialist (MOS): Kiểm chứng kiến thức và nâng cao giá trị bản thân trên thị trường lao động.
Kết luận: Excel là một công cụ vô hạn nếu bạn biết khai thác đúng cách. Khi đã thành thạo các bài tập Excel nâng cao này, bạn không chỉ giải quyết được các vấn đề hiện tại mà còn có thể thiết kế các giải pháp sáng tạo, tối ưu hoá quy trình và tạo ra giá trị thực sự cho doanh nghiệp. Hãy tiếp tục học hỏi, thử nghiệm và chia sẻ kiến thức – đó chính là cách để trở thành chuyên gia Excel thực thụ.

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
