Một query gộp đủ 12 tháng bán hàng đã sạch. Tháng sau chỉ cần thả file mới vào thư mục rồi bấm Refresh, không phải làm lại bước nào.
- Thư mục Bán hàng11 file
Bán hàng T01.xlsx…T11.xlsx, mỗi file một tháng - Lọc danh sách fileChỉ giữ
.xlsx, bỏ file tạm~$ - Transform Sample FileLàm sạch một file mẫu (tháng 1)
- Áp cho mọi filePower Query lặp lại đúng các bước đó cho từng tháng
- Bảng 12 tháng2.085 dòng sạch, thêm tháng chỉ cần Refresh
Sau bài này bạn sẽ
- Gộp nhiều file cùng mẫu trong một thư mục bằng From Folder và Combine Files
- Biết làm sạch ở đâu: Transform Sample File hay query chính
- Làm sạch theo đúng thứ tự: cả bảng trước, từng cột sau, bỏ trùng cuối cùng
- Đổi kiểu ngày theo kiểu Việt Nam bằng Using Locale
- Tự kiểm tra kết quả bằng số dòng và tổng doanh thu
Dữ liệu dùng bộ tài liệu của lớp: thư mục 0. Dữ liệu dùng chung (buổi 1-6)\Bán hàng và file Tháng mới\Bán hàng T12.xlsx.
Giải nén toàn bộ tài liệu vào C:\Power Query\.
Không mở các file trong thư mục Bán hàng trong lúc làm: Excel sẽ tạo file tạm ~$… và làm lỗi query.
Lấy danh sách file trong thư mục
- Data → Get Data → From File → From Folder → chọn thư mục
Bán hàng→ bấm Transform Data (chưa bấm Combine). - Lọc cột Extension chỉ giữ
.xlsx. - Lọc tiếp cột Name → Text Filters → Does Not Begin With → gõ
~$. Đây là file tạm Excel tạo ra khi đang mở một file, cũng có đuôi.xlsx.
| Dòng | kiểu TextName | kiểu TextExtension | kiểu chưa đặtContent |
|---|---|---|---|
| 1 | Bán hàng T01.xlsx | .xlsx | Binary |
| 2 | Bán hàng T02.xlsx | .xlsx | Binary |
| … | |||
| 3 | Bán hàng T11.xlsx | .xlsx | Binary |
| 4(dòng sẽ bị bỏ) | |||
| 5(dòng sẽ bị bỏ) | |||
- Source
- Filtered Rows
- Filtered Rows1
Combine và mở Transform Sample File
- Bấm nút hai mũi tên ở góc phải tiêu đề cột Content (Combine Files).
- Ở ô Sample File chọn
Bán hàng T01.xlsx. Đừng để First file, vì file đầu danh sách có thể là T11. - Chọn sheet
BaoCao→ OK. - Trong khung Queries bên trái, bấm vào Transform Sample File. Xoá bước Promoted Headers và Changed Type nếu có.
| Dòng | kiểu chưa đặtColumn1 | kiểu chưa đặtColumn2 | kiểu chưa đặtColumn4 | kiểu chưa đặtColumn5 | kiểu chưa đặtColumn7 | kiểu chưa đặtColumn9 |
|---|---|---|---|---|---|---|
| 1 | BÁO CÁO BÁN HÀNG CHI TIẾT | null | null | null | null | null |
| 2 | Kỳ báo cáo: 01/2026 | null | null | null | null | null |
| 3 | Xuất từ hệ thống ERP ngày 31/01/2026 18:05 | null | null | null | null | null |
| 4 | Ngày | Số CT | Mã NV | SKU | Số lượng | Doanh thu |
| 5 | ngày 01/01/2026 | HD010001 | NV08 | NGK-0018 | 115 | 18515000 |
| 6 | ngày 01/01/2026 | HD010001 | null | GVI-0028 | 8 | 1016000 |
| … | ||||||
- Source
- Navigation
Vì sao làm sạch ở Transform Sample File?
Làm sạch trong Transform Sample File thì mọi file trong thư mục được làm sạch theo. Phần làm sạch (bước 03 đến 05) làm ở Transform Sample File; bước 01, 02, 06 đến 08 làm ở query Bán hàng. Trước mỗi bước, nhìn ô Name ở Query Settings cho chắc.
Làm sạch cả bảng trước
Đang ở Transform Sample File.
- Home → Remove Rows → Remove Top Rows → gõ
3→ OK. - Trên thanh công thức, sửa số
3thànheach [Column1] <> "Ngày". Power Query sẽ bỏ các dòng đầu cho tới khi gặp dòng tiêu đề, nên file nào phần đầu dài hay ngắn cũng chạy đúng. - Bấm Use First Row as Headers, rồi xoá bước Changed Type mà Power Query vừa tự thêm.
- Lọc cột Ngày: bỏ chọn
(null)vàTổng cộng(không thấyTổng cộngthì gõ vào ô Search).
= Table.Skip(#"Navigation", each [Column1] <> "Ngày")
| Dòng | kiểu chưa đặtNgày | kiểu chưa đặtSố CT | kiểu chưa đặtMã NV | kiểu chưa đặtSKU | kiểu chưa đặtSố lượng | kiểu chưa đặtDoanh thu |
|---|---|---|---|---|---|---|
| 1 | ngày 01/01/2026 | HD010001 | NV08 | NGK-0018 | 115 | 18515000 |
| 2 | ngày 01/01/2026 | HD010001 | null | GVI-0028 | 8 | 1016000 |
| … | ||||||
| 3(dòng sẽ bị bỏ) | ||||||
| 4(dòng sẽ bị bỏ) | ||||||
- Source
- Navigation
- Removed Top Rows
- Promoted Headers
- Filtered Rows
Làm sạch từng cột, từ trái qua phải
Cột nào xong hẳn mới sang cột sau.
- Ngày: Home → Replace Values, Value To Find gõ
ngày(có dấu cách ở cuối), Replace With để trống. Chuột phải cột Ngày → Change Type → Using Locale → đổi cả hai ô: Data Type chọn Date, Locale chọn Vietnamese (Vietnam). Từ đây không đổi kiểu cột Ngày thêm lần nào nữa. - Số CT → Tên sản phẩm: bấm tiêu đề Số CT, giữ Shift bấm Tên sản phẩm (5 cột) → Transform → Data Type → Text.
- Mã NV: chuột phải → Fill → Down.
- SKU: Transform → Format → Trim, rồi Format → UPPERCASE.
- Số lượng: Data Type → Text. Replace Values, Value To Find gõ
thùng(có dấu cách ở đầu), Replace With để trống, không tick Match entire cell contents. Rồi Data Type → Whole Number. - Đơn giá → Chiết khấu: bấm Đơn giá, giữ Shift bấm Chiết khấu (3 cột) → Data Type → Whole Number.
Trước và sau khi làm sạch
| Trước | Sau | Cách làm |
|---|---|---|
| ngày 01/01/2026 | 01/01/2026 | Replace Values bỏ ngày , rồi Using Locale → Date, Vietnamese |
| null | NV08 | Fill Down lấy mã NV của dòng phía trên (dòng 2, 3 là NV08) |
| ␣(dấu cách)sua-0038 | SUA-0038 | Trim bỏ dấu cách, UPPERCASE đổi chữ hoa |
| 32 thùng | 32 | Đổi sang Text, bỏ thùng, rồi Whole Number |
| Dòng | kiểu DateNgày | kiểu TextSố CT | kiểu TextMã NV | kiểu TextSKU | kiểu Whole NumberSố lượng | kiểu Whole NumberDoanh thu |
|---|---|---|---|---|---|---|
| 1 | 01/01/2026 | HD010001 | NV08 | NGK-0018 | 115 | 18515000 |
| 2 | 01/01/2026 | HD010001 | NV08 | GVI-0028 | 8 | 1016000 |
| 3 | 01/01/2026 | HD010001 | NV08 | GVI-0028 | 8 | 1016000 |
| 4 | 01/01/2026 | HD010002 | NV06 | NGK-0011 | 77 | 5544000 |
| … | ||||||
- …
- Changed Type with Locale
- Changed Type
- Filled Down
- Uppercased Text
- Changed Type2
Kiểm tra
- Biểu tượng cột Ngày là hình lịch. Công thức bước Locale có
{{"Ngày", type date}}, "vi-VN") - 5 cột Số CT → Tên sản phẩm có biểu tượng ABC
- Không còn ô trống ở Mã NV
- Thanh công thức bước Replace của Số lượng có chữ
Replacer.ReplaceText - 3 cột Đơn giá → Chiết khấu có biểu tượng 123
Bỏ dòng trùng, làm cuối cùng
Hai dòng tô vàng ở bảng trên chỉ trùng hẳn sau khi đã điền Mã NV và chuẩn hoá SKU. Vì vậy bỏ trùng phải để cuối.
- Ctrl+A (chọn tất cả cột) → Home → Keep Rows → Keep Duplicates để xem dòng trùng. Xem xong thì xoá bước này.
- Ctrl+A lần nữa → Remove Rows → Remove Duplicates.
Kiểm tra
- Keep Duplicates hiện 10 dòng (5 cặp)
- Sau Remove Duplicates: 138 dòng, tổng Doanh thu 1.175.404.000, tổng Số lượng 8.355
Xem số kiểm tra ngay trong Power Query
Transform → Count Rows cho số dòng. Chọn một cột → Transform → Statistics → Sum cho tổng. Xem xong xoá bước đó ngay, nếu không query trả về một con số thay vì bảng và mọi file trong thư mục bị lỗi.
Quay lại query chính, thêm cột Tháng
- Bấm sang query Bán hàng. Chuột phải bước Expanded Table Column1 → Delete Until End.
- Bấm nút hai mũi tên ở cột Transform File → bỏ tick Use original column name as prefix → OK.
- Đặt kiểu từ trái qua phải: Ngày → Date; Số CT → Tên sản phẩm → Text; Số lượng → Chiết khấu → Whole Number.
- Chọn cột Source.Name → Add Column → Extract → Text Between Delimiters, giữa
Tvà.→ đổi tên thành Tháng → Change Type → Whole Number.
Cột Tháng lấy từ tên file
| Trước | Sau | Cách làm |
|---|---|---|
| Bán hàng T01.xlsx | 1 | Lấy phần giữa T và ., đổi sang Whole Number |
| Bán hàng T11.xlsx | 11 | Là số, không phải chữ "11", nên lọc và sắp xếp đúng |
Đã thấy dải vàng "The column 'Doanh thu' of the table wasn't found"?
Đó là lỗi tháng 7. Làm bước 07 trước rồi quay lại đây.
Sửa lỗi tháng 7
- Lọc cột Tháng: Number Filters → Equals → 7. Đừng tick trong danh sách, vì danh sách chỉ lấy 1.000 dòng đầu, có thể chưa có số 7.
- Power Query báo lỗi The column 'Doanh thu' of the table wasn't found. Đây là lỗi cố ý của dữ liệu.
- Mở file tháng 7 xem tên cột (xem xong đóng ngay): cột ghi Doanh số, không phải Doanh thu.
| Dòng | kiểu chưa đặtNgày | kiểu chưa đặtSố CT | kiểu chưa đặtMã NV | kiểu chưa đặtSKU | kiểu chưa đặtSố lượng | kiểu chưa đặtĐơn giá | kiểu chưa đặtDoanh số |
|---|---|---|---|---|---|---|---|
| 1 | ngày 01/07/2026 | HD070409 | NV01 | BKN-0002 | 34 | 96000 | 3264000 |
| 2 | ngày 01/07/2026 | HD070410 | NV04 | NGK-0020 | 8 | 230000 | 1840000 |
| … | |||||||
- Sang Transform Sample File, chuột phải bước Promoted Headers → Insert Step After, sửa công thức thành:
= Table.RenameColumns(#"Promoted Headers", {{"Doanh số", "Doanh thu"}}, MissingField.Ignore)
MissingField.Ignore nghĩa là: file nào có cột Doanh số thì đổi tên, file nào không có thì bỏ qua, không báo lỗi.
- Bấm bước Filtered Rows: công thức phải bắt đầu bằng
Table.SelectRows(Custom1,. Quay lại query Bán hàng, xoá bước lọc Tháng = 7.
Kiểm tra
- Hết lỗi
- 1.929 dòng, tổng Doanh thu 15.519.298.000
Nạp vào Excel và thêm tháng 12
- Home → Close & Load To → Table → New worksheet → OK.
- Chép
Tháng mới\Bán hàng T12.xlsxvào thư mụcBán hàng→ Data → Refresh All.
- 11 tháng1.929 dòng · 15.519.298.000
- Thả file T12 vào thư mụcKhông sửa query
- Data → Refresh AllMọi bước chạy lại cho file mới
- 12 tháng2.085 dòng · 16.801.520.000
Kiểm tra
- Khung Queries & Connections ghi 1.929 rows loaded
- Sau Refresh: 2.085 dòng, tổng Doanh thu 16.801.520.000
Ghi nhớ và lỗi hay gặp
Ghi nhớ
- Thứ tự làm sạch: việc của cả bảng trước (bỏ dòng đầu, lấy tiêu đề, lọc dòng thừa), rồi từng cột từ trái qua phải, cột nào xong hẳn mới sang cột sau. Bỏ trùng làm cuối cùng.
- Ngày theo vùng: máy kiểu Mỹ đọc
04/07là ngày 7 tháng 4, kiểu Việt Nam đọc là ngày 4 tháng 7. Using Locale là cách nói cho Power Query biết dữ liệu viết theo kiểu Việt Nam. - Combine & Load cũng gộp đủ các file như Combine & Transform, chỉ là nạp thẳng vào Excel mà không mở trình chỉnh sửa.
Lỗi hay gặp
| Thấy gì | Nguyên nhân | Cách sửa |
|---|---|---|
| Cột đầu tên là "BÁO CÁO BÁN HÀNG CHI TIẾT", giữa bảng có dòng "Kỳ báo cáo", "Tổng cộng" | Đang làm ở query chính thay vì Transform Sample File, hoặc chưa xoá bước Promoted Headers tự thêm | Làm lại bước 02 |
| Transform Sample File đang hiện tháng 11 chứ không phải tháng 1 | Lúc Combine để Sample File là First file, mà file đầu danh sách là T11 | Mở query Sample File, chọn bước cuối, trên thanh công thức thay {0} bằng {[Name="Bán hàng T01.xlsx"]} |
| The field 'Column1' of the record wasn't found | Đặt bước Remove Top Rows ở query chính | Xoá bước đó ở query chính, làm lại trong Transform Sample File |
| Bộ lọc báo List may be incomplete | Danh sách chỉ lấy từ khoảng 1.000 dòng đầu | Đừng bỏ chọn từng giá trị ở query chính. Lọc trong Transform Sample File, hoặc dùng Number Filters / Text Filters |
| Replace "thùng" không có tác dụng | Cột chưa phải kiểu Text, nên Power Query chỉ thay khi cả ô đúng bằng "thùng" (Replacer.ReplaceValue) |
Đổi cột sang Text rồi Replace lại, hoặc sửa ReplaceValue thành ReplaceText |
| External table is not in the expected format … Ghi chú.txt | Chưa lọc Extension .xlsx ở bước 01 |
Ở query chính, chọn bước Source, lọc Extension = .xlsx |
| Refresh báo lỗi trong lúc đang mở một file tháng | Excel tạo file tạm ~$Bán hàng T07.xlsx, cũng có đuôi .xlsx |
Đóng file đó. Thêm bộ lọc Name không bắt đầu bằng ~$ ở bước 01 |
| Cột Ngày vẫn là ABC sau bước Using Locale | Trong hộp thoại Using Locale, ô Data Type vẫn để Text (Power Query tự điền sẵn kiểu cũ) | Xoá bước Locale, làm lại, đổi ô Data Type sang Date |
| Ngày 1 đến 12 đúng, từ ngày 13 trở đi báo Error | Có bước Changed Type đổi Ngày sang Date mà không qua Locale, nên ngày bị đọc kiểu Mỹ (tháng/ngày) | Xoá bước Changed Type đó. Chỉ đổi kiểu Ngày một lần, bằng Using Locale → Vietnamese |
| We cannot convert the value 138 to type Table | Quên xoá bước Count Rows hoặc Statistics trong Transform Sample File | Xoá bước kiểm tra đó |
Tên cột thành Transform File.Ngày, Transform File.Số CT… |
Lúc bung bảng ở bước 06 còn tick Use original column name as prefix | Xoá bước Expanded, bung lại và bỏ tick |
| Lọc Tháng = 7 không ra dòng nào | Cột Tháng đang là chữ "07" | Đổi cột Tháng sang Whole Number |
Bài tập 1: Kiểu dữ liệu
File Bài tập kiểu dữ liệu.csv trong thư mục buổi 1.
- Get Data → From Text/CSV → chọn file. Trong cửa sổ xem trước, chỉnh 3 ô: File Origin 65001: Unicode (UTF-8), Delimiter Semicolon, Data Type Detection Do not detect data types → bấm Transform Data (không bấm Load).
- Applied Steps chỉ còn Source và Promoted Headers, mọi cột vẫn là chữ, bảng có 10 dòng.
- Xử lý lần lượt từng cột từ trái qua phải. Ở mọi bước Using Locale, đổi cả hai ô: Data Type chọn đúng kiểu ghi bên dưới, Locale chọn Vietnamese (Vietnam).
Mỗi cột một kiểu viết, đổi về đúng kiểu
| Trước | Sau | Cách làm |
|---|---|---|
| 00123 | 00123 (Text) | Mã SP, Tên sản phẩm: chọn 2 cột → Data Type → Text. Giữ số 0 ở đầu |
| 1.234.567,5 | 1234567,5 | Doanh thu: Using Locale → Decimal Number |
| (1.500.000) | -1500000 | Lãi lỗ: Replace ( thành -, Replace ) thành rỗng → Using Locale → Whole Number |
| 125.000 đ | 125000 | Giá bán: Replace đ (dấu cách rồi chữ đ) thành rỗng → Using Locale → Whole Number |
| 12,5% | 0,125 | Tỷ lệ CK: Using Locale → Percentage |
| 46023 | 01/01/2026 | Ngày tạo: Data Type → Whole Number, rồi → Date (hỏi thì chọn Add new step). Đổi thẳng chữ sang Date sẽ ra Error |
| 05/03/2026 14:30 | ngày 5 tháng 3, 14:30 | Ngày giờ: Using Locale → Date/Time. Rồi Add Column → Date → Date Only, đặt tên Ngày giao dịch |
| Có | true | Khuyến mãi: Replace Có → true, Không → false (tick Match entire cell contents) → True/False |
| 0 | Số lượng: Replace - → 0 (tick Match entire cell contents) → Whole Number |
Kiểm tra
- 8 mã sản phẩm vẫn có số 0 ở đầu
- Doanh thu tổng 56.072.318,5
- Lãi lỗ tổng 3.035.000, có 4 số âm
- Giá bán tổng 1.323.000
- Dòng mã
01020có Tỷ lệ CK là 12,5% (tức 0,125), không phải 125% - Ngày tạo từ 01/01/2026 đến 07/04/2026
- Khuyến mãi có 5 dòng TRUE, Số lượng tổng 166
Tự kiểm tra sau khi Close & Load
Ô số canh phải, ô chữ canh trái. Cột nào lẽ ra là số mà còn canh trái là chưa đổi kiểu: thường do ô Data Type trong hộp thoại Using Locale vẫn để Text.
Ngày hiện theo cài đặt Windows. Máy cài vùng Mỹ sẽ hiện 3/5/2026 cho ngày 5 tháng 3: đó là cách hiển thị, không phải sai dữ liệu. Muốn hiện kiểu Việt Nam: Format Cells → Custom → dd/mm/yyyy.
Không mở file CSV bằng Excel rồi bấm Save: Excel sẽ đổi dấu phân cách và làm lệch cột. Muốn xem file thì mở bằng Notepad.
Bài tập 2: Biểu mẫu chi nhánh
Thư mục Biểu mẫu chi nhánh có 3 file báo cáo, phần đầu dài ngắn khác nhau (dòng tiêu đề bảng nằm ở dòng 8, 5 và 9), bên dưới có dòng Tổng cộng và phần chữ ký. Không có con số Remove Top Rows nào đúng cho cả 3 file, nên phải bỏ theo điều kiện.
| Dòng | kiểu chưa đặtColumn1 | kiểu chưa đặtColumn2 | kiểu chưa đặtColumn3 | kiểu chưa đặtColumn4 | kiểu chưa đặtColumn5 | kiểu chưa đặtColumn6 |
|---|---|---|---|---|---|---|
| 1(dòng sẽ bị bỏ) | ||||||
| 2(dòng sẽ bị bỏ) | ||||||
| … | ||||||
| 3(dòng sẽ bị bỏ) | ||||||
| 4 | STT | Ngày | Số CT | SKU | Số lượng | Doanh thu |
| 5 | 1 | 46317 | CNHCM0001 | NGK-0018 | 85 | 13685000 |
| … | ||||||
| 6 | 8 | 46298 | CNHCM0008 | NGK-0011 | 6 | 432000 |
| 7(dòng sẽ bị bỏ) | ||||||
| 8(dòng sẽ bị bỏ) | ||||||
- Source
- Navigation
Mẹo: để Power Query tự tạo công thức bằng nút trên ribbon, rồi chỉ sửa con số trên thanh công thức, tên bước trong ngoặc giữ nguyên.
- Data → Get Data → From File → From Folder → chọn thư mục
Biểu mẫu chi nhánh→ Transform Data → bấm nút hai mũi tên ở cột Content. Sample File chọnBiểu mẫu chi nhánh HCM.xlsx, sheetBáo cáo→ OK. Bấm vào Transform Sample File, xoá bước Promoted Headers và Changed Type nếu có. Kiểm tra: dòng 1 của Column1 là CÔNG TY CP THỰC PHẨM AN VY. - Bỏ phần đầu: Home → Remove Rows → Remove Top Rows → gõ
1→ OK. Sửa số1thànheach [Column1] <> "STT". Bấm Use First Row as Headers, xoá bước Changed Type vừa tự thêm. Kiểm tra: tiêu đề là STT, Ngày, Số CT, SKU, Số lượng, Doanh thu. - Bỏ phần dưới: Home → Keep Rows → Keep Top Rows → gõ
1→ OK. Sửa số1thànheach [STT] <> null and [STT] <> "Tổng cộng". Kiểm tra: file HCM còn 8 dòng (STT 1 đến 8). - Đổi kiểu từ trái qua phải: STT → Whole Number; Ngày → Date; Số CT, SKU → Text; Số lượng, Doanh thu → Whole Number. Kiểm tra: cột Ngày hiện dạng ngày, không phải số như 46317.
- Sang query chính: chuột phải bước Expanded Table Column1 → Delete Until End. Bấm nút hai mũi tên ở cột Transform File, bỏ tick Use original column name as prefix → OK. Đặt lại kiểu như bước 4. Cột Source.Name: Replace Values
Biểu mẫuthành rỗng, rồi.xlsxthành rỗng, đổi tên cột thành Chi nhánh.
= Table.Skip(#"Navigation", each [Column1] <> "STT")
= Table.FirstN(#"Promoted Headers", each [STT] <> null and [STT] <> "Tổng cộng")
Table.FirstN giữ các dòng từ trên xuống và dừng ở dòng đầu tiên không thoả điều kiện, nên bỏ được cả phần chữ ký dù phần đó ghi gì.
Kiểm tra
- 21 dòng, tổng Doanh thu 178.029.000
- Cột Chi nhánh ghi Chi nhánh HCM, Chi nhánh Hà Nội, Chi nhánh Đà Nẵng
- Group By theo Chi nhánh, Sum Doanh thu (xem xong xoá bước): HCM 8 dòng, 62.045.000; Hà Nội 6 dòng, 33.676.000; Đà Nẵng 7 dòng, 82.308.000
Bài tập 3: Phân loại đơn hàng
Không tạo query mới. Mở lại file Excel đã làm ở bước 08 và thêm cột vào query Bán hàng (đã có đủ 12 tháng, 2.085 dòng).
- Khung Queries & Connections → bấm đúp query Bán hàng → trong Applied Steps chọn bước cuối cùng. Kiểm tra: ô Name ghi Bán hàng, cột Doanh thu có biểu tượng 123.
- Add Column → Conditional Column. New column name: Loại đơn.
- If Doanh thu is less than
2000000→ Output Nhỏ - Bấm Add Clause: Else If Doanh thu is less than
10000000→ Output Vừa - Else: Lớn → OK
- If Doanh thu is less than
- Chọn cột Loại đơn → Transform → Group By → Count Rows để xem số đơn mỗi loại. Xem xong xoá bước này rồi Close & Load.
Doanh thu → Loại đơn
| Trước | Sau | Cách làm |
|---|---|---|
| 1.016.000 | Nhỏ | Dưới 2 triệu |
| 5.544.000 | Vừa | Từ 2 triệu đến dưới 10 triệu |
| 18.515.000 | Lớn | Từ 10 triệu trở lên |
Kiểm tra
- Nhỏ 447 / Vừa 974 / Lớn 664 (tổng 2.085)
- Nếu chưa chép T12 vào thư mục: 416 / 897 / 616 (tổng 1.929)
Bài tập 4: Gộp nhiều sheet
File Bán hàng Q1 nhiều sheet.xlsx có 3 sheet T01, T02, T03, cùng 8 cột và đã sạch. Mở cả file (không chọn sheet nào) thì Power Query trả về một bảng, mỗi sheet là một dòng: cột Name là tên sheet, cột Data là nội dung sheet. Bung cột Data ra là 3 sheet nối thành một bảng, còn cột Name trở thành cột Tháng.
| Dòng | kiểu TextName | kiểu chưa đặtData | kiểu TextItem | kiểu TextKind | kiểu True/FalseHidden |
|---|---|---|---|---|---|
| 1 | T01 | Table | T01 | Sheet | FALSE |
| 2 | T02 | Table | T02 | Sheet | FALSE |
| 3 | T03 | Table | T03 | Sheet | FALSE |
- Source
- Data → Get Data → From File → From Excel Workbook → chọn file. Trong Navigator, bấm vào dòng tên file ở trên cùng (không bấm T01, T02, T03) → Transform Data. Nếu nút Transform Data bị mờ: bấm T01 → Transform Data, rồi xoá bước Navigation, chỉ giữ bước Source.
- Chọn 2 cột Name và Data → chuột phải → Remove Other Columns.
- Bấm nút hai mũi tên ở cột Data → bỏ tick Use original column name as prefix → OK. Các cột là Name, Column1 … Column8.
- Home → Use First Row as Headers → xoá bước Changed Type vừa tự thêm. Cột đầu bị đặt tên là
T01(giá trị dòng đầu của cột Name): bấm đúp tiêu đề, đổi tên thành Tháng. - Lọc cột Ngày: bỏ chọn giá trị
Ngày(dòng tiêu đề của sheet T02 và T03 bị lẫn vào giữa bảng). - Cột Tháng: Replace Values
Tthành rỗng → Data Type → Whole Number. - Đổi kiểu từ trái qua phải: Ngày → Date; Số CT → SKU → Text; Số lượng → Doanh thu → Whole Number. Xong thì Close & Load.
| Dòng | kiểu chưa đặtTháng | kiểu chưa đặtNgày | kiểu chưa đặtSố CT | kiểu chưa đặtSKU | kiểu chưa đặtSố lượng | kiểu chưa đặtDoanh thu |
|---|---|---|---|---|---|---|
| 1 | T01 | … | … | … | … | … |
| … | ||||||
| 2(dòng sẽ bị bỏ) | ||||||
| 3 | T02 | … | … | … | … | … |
| … | ||||||
| 4(dòng sẽ bị bỏ) | ||||||
- Source
- Removed Other Columns
- Expanded Data
- Promoted Headers
- Renamed Columns
- Filtered Rows
Kiểm tra
- 424 dòng, tổng Doanh thu 3.596.535.000
- Tháng 1: 138 dòng, 1.175.404.000
- Tháng 2: 136 dòng, 1.236.768.000
- Tháng 3: 150 dòng, 1.184.363.000
- Số của từng tháng khớp với 3 tháng đầu của query Bán hàng ở phần trên lớp