Có thể bạn quan tâm: Cách Chỉnh Định Dạng Số Tiền Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Tới Nâng Cao
Giới thiệu chung
Trong nhiều ứng dụng thực tế, chúng ta thường gặp trường hợp cần tổng hợp dữ liệu từ nhiều sheet khác nhau trong cùng một workbook. Ví dụ: một doanh nghiệp muốn spor tổng doanh thu, chi phí, lợi nhuận của các phòng ban, từng kỳ hoặc từng sản phẩm. Để tránh việc tính toán thủ công, Excel cung cấp nhiều công cụ mạnh mẽ giúp cộng tổng dữ liệu giữa các sheet một cách nhanh chóng và chính xác. Bài viết này sẽ hướng dẫn chi tiết cách thực hiện, từ cách sử dụng cú pháp 3D reference đến các hàm nâng cao như SUMIF, INDIRECT, SUMPRODUCT, và thậm chí là cách viết macroا VBA để tự động hoá quá trình. Bạn cũng sẽ được tìm hiểu các mẹo và thủ thuật để tránh lỗi, kiểm tra tính đúng đắn và nâng cao hiệu suất tính toán trong Excel.
Có thể bạn quan tâm: Cách Chuyển Font Chữ Hoa Sang Chữ Thường Trong Excel
1. Cấu trúc workbook và cách đặt tên sheet
Trước khi bắt đầu viết công thức, hãy xác định một cấu trúc rõ ràng cho workbook của bạn:
- Tên sheet chuẩn: Đặt tên sheet theo dạng
Kỳ1,Kỳ2,Kỳ3hoặcBánHàng,ChiPhí,LợiNhuận. Tránh đặt tên có dấu cách hoặc ký tự đặc biệt, vì khi dùng hàmINDIRECThoặcSUMIFcó thể gây lỗi. - Cột dữ liệu thống nhất: Mỗi sheet cần có cùng một cấu trúc cột để dễ dàng cộng tổng. Ví dụ cột A:
Mã Sản Phẩm, cột B:Số Lượng, cột C:Đơn Giá, cột D:Tổng Tiền. - Ghi chú: Dùng một sheet riêng để lưu trữ danh sách các sheet, giúp dễ dàng tham khảo khi viết công thức dài.
Với cấu trúc chuẩn, việc viết công thức sẽ trở nên mạch lạc và dễ bảo trì.
Có thể bạn quan tâm: Microsoft Excel 2026 Free Download Full Version Crack – Hướng Dẫn Tải Và Cài Đặt
2. Cộng tổng qua 3D reference (địa chỉ 3 chiều)
Cách đơn giản nhất để cộng tổng giá trị từ nhiều sheet là sử dụng địa chỉ 3D. Cú pháp:
=SUM(FirstSheet:LastSheet!Range)
FirstSheetlà sheet đầu tiên efficaces trong dải sheet cần tính.LastSheetlà sheet cuối cùng trong dải sheet cần tính.Rangelà vùng dữ liệu cụ thể.
Ví dụ thực tế
Giả sử bạn có 3 sheet: BánHàng1, BánHàng2, BánHàng3. Mỗi sheet đều có cột Tổng Tiền ở ô D5. Bạn muốn tính tổng doanh thu của cả ba sheet:
=SUM(BánHàng1:BánHàng3!D5)
Kết quả sẽ là tổng của D5 trên ba sheet.
Khi nào sử dụng 3D reference
- Khi dữ liệu có cấu trúc đồng nhất: Cột và hàng cần tổng luôn ở cùng một vị trí.
- Khi số sheet cố định: Bạn biết trước chính xác bao nhiêu sheet sẽ được cộng.
Lưu ý khi dùng 3D reference
- Nếu có sheet không muốn tính, hãy đặt sheet đó ở đầu hoặc cuối dải, hoặc tạm thời đổi tên thành
Temp. - Nếu có sheet chứa tiêu đề, dữ liệu sẽ được cộng vào, gây sai lệch. Kiểm tra kỹ.
3. Cộng tổng với SUMIF và SUMIFS
Trong thực tế, bạn có thể cần cộng giá trị dựa trên điều kiện. Hàm SUMIF (đơn điều kiện) và SUMIFS (đa điều kiện) rất hữu ích.
Cú pháp
SUMIF(range, criteria, sum_range)SUMIFS(sum_range, criteria_range1, criteria1, criteria_range2, criteria2, …)
Cộng tổng theo điều kiện trên nhiều sheet
Để áp dụng SUMIF hoặc SUMIFS trên nhiều sheet, cần viết công thức cho từng sheet rồi cộng kết quả. Ví dụ:
=SUMIF(BánHàng1!$A$2:$A$100, "Sản Phẩm A", BánHàng1!$D$2:$D$100) + SUMIF(BánHàng2!$A$2:$A$100, "Sản Phẩm A", BánHàng2!$D$2:$D$100) + SUMIF(BánHàng3!$A$2:$A$100, "Sản Phẩm A", BánHàng3!$D$2:$D$100)
Nếu số sheet lớn, cách này trở nên bất tiện. Một giải pháp là dùng INDIRECT kết hợp với mảng.
Sử dụng INDIRECT để tham chiếu động
Giả sử bạn có danh sách tên sheet trong cột A của sheet Summary, từ A2:A4. Bạn muốn tính tổng Tổng Tiền (ô D5) cho mỗi sheet:
=SUMPRODUCT(SUMPRODUCT(INDIRECT("'" & Summary!$A$2:$A$4 & "'!D5")))
INDIRECT("'" & Summary!$A$2:$A$4 & "'!D5")tạo mảng địa chỉ 3D động.SUMPRODUCTtính tổng của mảng.
Lưu ý: Hàm
INDIRECTlà hàm volatile, có thể làm chậm workbook nếu dùng quá nhiều.
Cộng tổng nhiều điều kiện
Sử dụng SUMIFS để đếm số lượng bán hàng theo nhiều tiêu chí, ví dụ:
=SUMPRODUCT(SUMIFS(INDIRECT("'" & Summary!$A$2:$A$4 & "'!$D$2:$D$100"), INDIRECT("'" & Summary!$A$2:$A$4 & "'!$A$2:$A$100"), "Sản Phẩm A", INDIRECT("'" & Summary!$A$2:$A$4 & "'!$B$2:$B$100"), ">500"))
Đây là một công thức phức tạp nhưng mạnh mẽ.
4. Sử dụng hàm SUMPRODUCT để tổng hợp dữ liệu
SUMPRODUCT thường được dùng cho tính toán ma trận, nhưng cũng rất tiện khi cộng dữ liệu từ nhiều sheet.
Cộng tổng giá trị trong một cộtVisitor
Giả sử bạn muốn tính tổng các giá trị trong cột C của nhiều sheet:
=SUMPRODUCT(SUMPRODUCT(INDIRECT("'" & Summary!$A$2:$A$4 & "'!C:C")))
Kết quả sẽ là tổng các số trong cột C của 3 sheet.
Khi dùng SUMPRODUCT thay vì SUM
Lợi thế: SUMPRODUCT hỗ trợ tính toán trên mảng, tránh phải viết công thức dài. Tuy nhiên, khi data lớn, SUMPRODUCT cũng có thể làm chậm.
5. Cộng tổng bằng cách tạo một sheet “Tổng hợp”
Một cách phổ biến và dễ bảo trì là tạo một sheet riêng biệt, thường gọi là Summary hoặc Dashboard. Từ sheet này, bạn sẽ đặt công thức tham chiếu đến từng sheet.
Bước 1: Tạo danh sách tên sheet
Trong cột A, nhập danh sách tên sheet:
| A |
|---|
| BánHàng1 |
| BánHàng2 |
| BánHàng3 |
Bước 2: Thêm công thức tham chiếu
Ở cột B, nhập công thức tính tổng Tổng Tiền từ mỗi sheet:
=INDIRECT("'" & A2 & "'!D5")
Kéo công thức xuống cho tất cả các dòng.
Bước 3: Tổng hợp toàn bộ
Ở ô B5, tính tổng:
=SUM(B2:B4)
Cách này rất trực quan, dễ chỉnh sửa khi thêm sheet mới: chỉ cần thêm tên sheet vào danh sách, các công thức sẽ tự động cập nhật.
6. Tạo danh sách động dùng INDEX và spi
Nếu bạn muốn tránh dùng INDIRECT (volatile) và muốn danh sách sheet tự động cập nhật khi thêm hoặc xóa sheet, bạn có thể dùng một hàm macro hoặc công thức phức tạp.

Có thể bạn quan tâm: Cách Cài Đặt Excel 2026 Trên Máy Tính: Hướng Dẫn Chi Tiết Từng Bước
Sử dụng hàm INDEX với ROW
=INDEX(SheetList!$A$1:$A$100, ROW(A1))
Trong đó SheetList!$A$1:$A$100 là danh sách tên sheet (được tạo bằng macro). Công thức này trả về tên sheet tương ứng với dòng hiện tại.
Sử dụng OFFSET để tạo mảng động
=OFFSET(Summary!$A$1, 0, 0, COUNTA(Summary!$A:$A), 1)
Trả về mảng chứa tên sheet.
Sau đó, bạn có thể kết hợp với INDIRECT:
=SUMPRODUCT(SUMPRODUCT(INDIRECT("'" & OFFSET(Summary!$A$1, 0, 0, COUNTA(Summary!$A:$A), 1) & "'!D5")))
Cách này tự động tính tổng với mảng tên sheet.
7. Tính toán tổng theo thời gian (ví dụ: theo tháng)
Nếu data của bạn được lưu trong các sheet theo tháng, bạn có thể tổng hợp theo năm. Ví dụ: Jan, Feb, Mar, … Dec.
Cộng tổng theo năm
=SUM(Jan:Dec!D5)
Như đã trình bày ở phần 3, 3D reference rất tiện.
Tính tổng theo quý
Giả sử bạn muốn tổng doanh thu của quý 1:
=SUM(Jan:Mar!D5)
Tính tổng theo mô hình mẫu
Nếu tên sheet không liên tục, bạn có thể dùng SUMPRODUCT:
=SUMPRODUCT(SUMPRODUCT(INDIRECT("'" & {"Jan","Feb","Mar"} & "'!D5")))
8. Sử dụng Power Query để tổng hợp dữ liệu
Nếu workbook có nhiều sheet và dữ liệu lớn, Power Query (Get & Transform) là công cụ mạnh mẽ để tự động hóa quá trình tổng hợp.
Các bước cơ bản
- Chọn Data > Get Data > From Other Sources > Blank Query.
- Sử dụng M code: Đặt tên sheet trong một danh sách, sau đó
Table.Combineđể kết hợp dữ liệu. - Chuyển đổi/Thêm cột: Ví dụ, tính
Tổng Tiềnbằng cách nhânSố LượngĐơn Giá. - Load vào Excel: Chọn
Close & Load To..., tạo một sheet mới.
Lợi ích
- Không cần viết công thức phức tạp.
- Tự động cập nhật khi dữ liệu trong các sheet thay đổi.
- Thân thiện với dữ liệu lớn, tính toán nhanh hơn.
9. Tự động hoá với VBA (Macro)
Đối với người dùng muốn tự động hoá quá trình cộng tổng, viết macro đơn giản là cách tốt nhất.
Mẫu macro
Sub SumAcrossSheets() Dim ws As Worksheet Dim sumTotal As Double Dim targetCell As String Dim sheetNames As Variant Dim i As Long targetCell = "D5" ' Ô cần tổng sheetNames = Array("BánHàng1", "BánHàng2", "BánHàng3") ' Danh sách sheet sumTotal = 0 For i = LBound(sheetNames) To UBound(sheetNames) Set ws = ThisWorkbook.Worksheets(sheetNames(i)) sumTotal = sumTotal + ws.Range(targetCell).Value Next i ' Ghi kết quả vào sheet Summary ThisWorkbook.Worksheets("Summary").Range("B5").Value = sumTotal
End Sub
- Đoạn script này đọc giá trị ô
D5từ từng sheet trong mảngsheetNames, cộng dồn và ghi vào sheetSummary. - Bạn có thể mở rộng để tính theo nhiều ô hoặc tạo danh sách sheet tự động.
Macro nâng cao: lấy’Espanh
Sub SumAllSheets() Dim ws As Worksheet Dim sumTotal As Double Dim targetCell As String targetCell = "D5" sumTotal = 0 For Each ws In ThisWorkbook.Worksheets ' Bỏ sheet Summary If ws.Name <> "Summary" Then sumTotal = sumTotal + ws.Range(targetCell).Value End If Next ws ThisWorkbook.Worksheets("Summary").Range("B5").Value = sumTotal
End Sub
Macro này tự động tính tổng cho mọi sheet ngoại trừ Summary.
10. Kiểm tra tính đúng đắn và tránh lỗi
Khi cộng tổng nhiều sheet, có một số lỗi phổ biến cần tránh:
| Lỗi | Nguyên nhân | Giải pháp |
|---|---|---|
#VALUE! | Ô tham chiếu không hợp lệ (INDIRECT sai tên) | Kiểm tra tên sheet, tránh khoảng trắng, ký tự đặc biệt |
#REF! | Sheet bị xóa hoặc chuyển tên | Kiểm tra danh sách sheet, đồng bộ công thức |
| Tổng sai lệch | Có sheet chứa tiêu đề hoặc dữ liệu pomag | Dùng hàm SUMIF để lọc, hoặc xác định vùng dữ liệu cụ thể |
| Workbook chậm | Sử dụng INDIRECT nhiều lần | Thay vì INDIRECT, dùng SUMPRODUCT hoặc Power Query |
| Không cập nhật comum | Cấu hình tính toán thủ công | Tránh đặt tính toán thủ công, dùng Automatic |
Kiểm tra bằng công thức IFERROR
=IFERROR(SUM(BánHàng1:BánHàng3!D5), "Lỗi")
Nếu có lỗi, sẽ hiển thị Lỗi thay vì #REF!.
11. Tối ưu hiệu suất tính toán
Nếu workbook của bạn có hàng nghìn hàng và nhiều sheet, hãy chú ý:
- Tắt tính toán thủ công:
Formulas > Calculation > Automatic. - Sử dụng
SUMPRODUCTthay vìINDIRECT:SUMPRODUCTnhanh hơn khi làm việc với mảng. - Giới hạn vùng dữ liệu: Thay vì
C:C, chỉ dùngC2:C1000để giảm số lượng ô cần tính. - Sử dụng Power Query: Nó tối ưu hóa khi làm việc với dữ liệu lớn, tránh tính toán từng ô trong Excel.
12. Thực hành: Ví dụ cụ thể
Tình huống
Bạn đang quản lý một cửa hàng bán lẻ với 3 cửa hàng (A, B, C). Mỗi cửa hàng lưu dữ liệu bán hàng trong sheet riêng: ShopA, ShopB, ShopC. Bạn muốn tổng hợp doanh thu (Tổng Tiền ở ô D5) và số lượng bán (Số Lượng ở ô B5) trong một sheet Summary.
Bước 1: Tạo danh sách sheet
| A |
|---|
| ShopA |
| ShopB |
| ShopC |
Bước 2: Tham chiếu tổng doanh thu
=INDIRECT("'" & A2 & "'!D5")
Kéo xuống.
Bước 3: Tham chiếu tổng số lượng
=INDIRECT("'" & A2 & "'!B5")
Kéo xuống.
Bước 4: Tổng hợp
=SUM(B2:B4) ' Tổng doanh thu
=SUM(C2:C4) ' Tổng số lượng
Bước 5: Kiểm tra lỗi
=IFERROR(INDIRECT("'" & A2 & "'!D5"), 0)
Nếu sheet bị thiếu, sẽ trả về 0 thay vì lỗi.
Kết quả
- Tổng doanh thu:
=SUM(B2:B4) - Tổng số lượng:
=SUM(C2:C4)
Đơn giản, chính xác, dễ bảo trì.
13. Kết luận và lời khuyên cuối cùng
- Chọn công cụ phù hợp: 3D reference cho dữ liệu đồng nhất,
SUMIF/SUMIFSNull for điều kiện,SUMPRODUCTcho mảng, Power Query cho dữ liệu lớn, VBA cho tự động hoá. - Bảo trì công thức: Luôn giữ】【: danh sách sheet, tránh thay đổi tên sheet, dùng
INDIRECTcẩn thận. - Tối ưu hiệu suất: Giới hạn vùng dữ liệu, tránh volatile formulas, dùng Power Query khi cần.
- Kiểm tra dữ liệu: Sử dụng
IFERROR,ISNUMBER,ISREFđể tránh lỗi. - Tự động hoá: Macro là công cụ mạnh mẽ nhưng cần kiểm tra kỹ lưỡng trước khi chạy trên dữ liệu quan trọng.
Bằng cách áp dụng những kiến thức và phương pháp trên, bạn sẽ nhanh chóng và chính xác tổng hợp dữ liệu giữa nhiều sheet trong Excel, tiết kiệm thời gian và giảm thiểu sai sót. Hãy thử áp dụng vào workbook của bạn và cảm nhận sự khác biệt trong công việc!

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ẻ.
