
Hàm SUMIFS trong Excel cộng các ô ở một vùng, nhưng chỉ lấy những dòng thỏa đồng thời mọi điều kiện bạn đặt ra. Cú pháp là =SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...), trong đó vùng cần cộng (sum_range) đứng đầu tiên, còn mỗi điều kiện gồm một vùng để kiểm tra và một tiêu chí.
Bài này dùng một bảng bán hàng nhỏ để chạy thử từng công thức: một, hai và ba điều kiện, cách viết điều kiện (khác, lớn hơn, ký tự đại diện), khoảng ngày, điều kiện HOẶC, và cách soát khi kết quả ra 0 hoặc báo lỗi. Mọi kết quả đều tính trên đúng bảng mẫu đó, bạn có thể chép vào Excel để đối chiếu.
SUMIFS là hàm cộng có điều kiện, có từ Excel 2007. Hàm xét từng dòng: dòng nào thỏa tất cả điều kiện thì giá trị ở vùng cần cộng được cộng vào kết quả, dòng nào trượt dù chỉ một điều kiện thì bị bỏ qua. Ví dụ: tổng doanh thu của nhân viên An ở khu vực Bắc, hoặc tổng doanh thu trong khoảng từ ngày 5 đến ngày 15.
Các điều kiện nối với nhau theo kiểu VÀ. SUMIFS vẫn chạy khi chỉ có một điều kiện, nhưng với một điều kiện thì hàm SUMIF ngắn gọn hơn.
=SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)

| Đối số | Bắt buộc | Ý nghĩa |
|---|---|---|
sum_range |
Có | Vùng chứa các số cần cộng. Luôn đứng đầu tiên. |
criteria_range1 |
Có | Vùng đầu tiên dùng để kiểm tra điều kiện. |
criteria1 |
Có | Điều kiện áp lên criteria_range1: một số, một chữ đặt trong ngoặc kép, một biểu thức như ">30", hoặc một ô tham chiếu. |
criteria_range2, criteria2, ... |
Không | Các cặp điều kiện thêm vào, tối đa 127 cặp theo tài liệu của Microsoft. |
criteria_range phải có cùng số hàng và số cột với sum_range. Lệch kích thước thì hàm trả về #VALUE!."Vở". Chữ hoa và chữ thường được coi như nhau, nhưng dấu thì phân biệt: "Vo" không khớp với “Vở”.Chép bảng sau vào một sheet trống: tiêu đề ở hàng 1, dữ liệu từ A2 đến F13. Cột Ngày cần là ngày thật của Excel, và doanh thu tính bằng triệu đồng.
| Ngày | Nhân viên | Sản phẩm | Khu vực | Số lượng | Doanh thu |
|---|---|---|---|---|---|
| 01/10/2026 | An | Vở | Bắc | 40 | 12 |
| 02/10/2026 | Bình | Bút | Nam | 25 | 5 |
| 03/10/2026 | An | Bút | Bắc | 30 | 6 |
| 05/10/2026 | Chi | Sổ | Trung | 15 | 9 |
| 07/10/2026 | Bình | Vở | Nam | 50 | 14 |
| 08/10/2026 | Dũng | Thước | Bắc | 20 | 4 |
| 10/10/2026 | An | Sổ | Bắc | 16 | 11 |
| 12/10/2026 | Chi | Vở | Trung | 35 | 10 |
| 14/10/2026 | Bình | Sổ | Nam | 22 | 13 |
| 15/10/2026 | Dũng | Bút | Trung | 45 | 7 |
| 18/10/2026 | An | Vở | Nam | 28 | 8 |
| 20/10/2026 | Chi | Bút | Bắc | 32 | 15 |
Trong các công thức dưới đây, cột F (doanh thu) là vùng cần cộng, cột B là nhân viên, C là sản phẩm, D là khu vực, E là số lượng, A là ngày.
Tổng doanh thu của sản phẩm Vở:
=SUMIFS(F2:F13, C2:C13, "Vở")
Kết quả là 44. Bốn dòng có sản phẩm Vở (ngày 01/10, 07/10, 12/10 và 18/10) có doanh thu 12, 14, 10 và 8; cộng lại được 44. Trong công thức, F2:F13 là sum_range, C2:C13 là vùng xét điều kiện và "Vở" là tiêu chí.
Tổng doanh thu của nhân viên An ở khu vực Bắc:
=SUMIFS(F2:F13, B2:B13, "An", D2:D13, "Bắc")
Kết quả là 29. Chỉ có ba dòng vừa là An vừa ở Bắc, ngày 01/10, 03/10 và 10/10, với doanh thu 12, 6 và 11: 12 + 6 + 11 = 29. Các dòng còn lại chỉ thỏa một điều kiện nên không được cộng. Đó là dòng ngày 18/10 (An, nhưng ở Nam) và hai dòng ngày 08/10, 20/10 (ở Bắc, nhưng không phải An).

Thêm một cặp nữa để chỉ lấy các dòng có số lượng từ 30 trở lên:
=SUMIFS(F2:F13, B2:B13, "An", D2:D13, "Bắc", E2:E13, ">=30")
Kết quả là 18. Dòng ngày 10/10 có số lượng 16, nhỏ hơn 30 nên bị loại. Còn lại dòng 01/10 và 03/10: 12 + 6 = 18.
Tiêu chí là phần dễ gõ sai. Bảng dưới gom các dạng cần dùng; cột cuối là tổng doanh thu (cột F) trên bảng mẫu.
| Muốn lọc | Viết tiêu chí | Cặp vùng và tiêu chí | Tổng doanh thu |
|---|---|---|---|
| Bằng một chữ | "Vở" |
C2:C13, "Vở" |
44 |
| Bằng một số | 30 |
E2:E13, 30 |
6 |
| Khác một giá trị | "<>Vở" |
C2:C13, "<>Vở" |
70 |
| Lớn hơn | ">30" |
E2:E13, ">30" |
58 |
| Lớn hơn hoặc bằng | ">=30" |
E2:E13, ">=30" |
64 |
| Nhỏ hơn | "<20" |
E2:E13, "<20" |
20 |
| So với số nằm trong ô (giả sử H1 chứa 40) | ">"&H1 |
E2:E13, ">"&H1 |
21 |
| Bắt đầu bằng một chữ cái | "S*" |
C2:C13, "S*" |
33 |
| Đúng một ký tự bất kỳ ở vị trí cuối | "Ch?" |
B2:B13, "Ch?" |
34 |
">30", không viết >30.& để ghép toán tử với ô, như ">"&H1. Nếu viết ">H1", Excel hiểu H1 là một chuỗi chữ chứ không lấy số trong ô.* thay cho một chuỗi ký tự bất kỳ (kể cả rỗng), dấu ? thay cho đúng một ký tự. Muốn tìm chính dấu * hoặc ?, gõ thêm dấu ~ phía trước, ví dụ "~*". Ký tự đại diện chỉ dùng với tiêu chí chữ."<>Vở" cũng giữ lại các dòng có ô điều kiện để trống, vì ô trống không phải là “Vở”.Khoảng ngày là hai điều kiện đặt trên cùng một cột và nối bằng VÀ: ngày lớn hơn hoặc bằng ngày bắt đầu, và nhỏ hơn hoặc bằng ngày kết thúc. Tổng doanh thu từ 05/10/2026 đến 15/10/2026:
=SUMIFS(F2:F13, A2:A13, ">="&DATE(2026,10,5), A2:A13, "<="&DATE(2026,10,15))
Kết quả là 68, tổng của bảy dòng từ ngày 05/10 đến 15/10: 9 + 14 + 4 + 11 + 10 + 13 + 7 = 68. Nếu ngày bắt đầu nằm ở ô H1 và ngày kết thúc ở ô H2, công thức thành ">="&H1 và "<="&H2.
DATE(năm, tháng, ngày) thì kết quả không phụ thuộc cách Excel hiểu thứ tự ngày/tháng theo cài đặt vùng.">="&TODAY()-7 và "<="&TODAY()."<="&DATE(2026,10,15) sẽ bỏ sót mọi dòng của ngày 15/10 sau 0 giờ. Dùng "<"&DATE(2026,10,16) để lấy trọn ngày cuối.MONTH(A2:A13) bên trong. Muốn cộng cả tháng 10, lấy khoảng từ ngày 1 đến ngày cuối tháng: =SUMIFS(F2:F13, A2:A13, ">="&DATE(2026,10,1), A2:A13, "<="&EOMONTH(DATE(2026,10,1),0)). Trên bảng mẫu, mọi dòng đều thuộc tháng 10 nên kết quả là 114, đúng bằng tổng cột F.Các điều kiện trong SUMIFS luôn nối bằng VÀ. Hai tiêu chí khác nhau trên cùng một cột không thể cùng đúng với một dòng, nên đặt cả hai vào một SUMIFS sẽ ra 0. Muốn HOẶC, hãy tách thành nhiều SUMIFS rồi cộng lại.
Cùng một cột: doanh thu của sản phẩm Vở hoặc Sổ.
=SUMIFS(F2:F13, C2:C13, "Vở") + SUMIFS(F2:F13, C2:C13, "Sổ")
Kết quả: 44 + 33 = 77.
Hai cột khác nhau: doanh thu của nhân viên An hoặc khu vực Bắc. Nếu chỉ cộng hai SUMIFS, dòng vừa là An vừa ở Bắc bị đếm hai lần, nên phải trừ phần trùng:
=SUMIFS(F2:F13, B2:B13, "An") + SUMIFS(F2:F13, D2:D13, "Bắc") - SUMIFS(F2:F13, B2:B13, "An", D2:D13, "Bắc")
Kết quả: 37 + 48 – 29 = 56.
Thay vì viết riêng từng SUMIFS cho mỗi cặp nhân viên và khu vực, bạn có thể dựng một bảng tổng hợp rồi kéo một công thức duy nhất cho mọi ô. Gõ tên khu vực vào K2:M2 (Bắc, Nam, Trung), tên nhân viên vào J3:J6 (An, Bình, Chi, Dũng), rồi nhập vào K3:
=SUMIFS($F$2:$F$13, $B$2:$B$13, $J3, $D$2:$D$13, K$2)
Kéo công thức sang phải tới cột M, rồi kéo cả hàng xuống tới hàng 6. Các vùng dữ liệu khóa cả cột lẫn hàng ($F$2:$F$13) để không bị trượt khi kéo. $J3 khóa cột, nên khi kéo sang phải vẫn đọc tên nhân viên ở cột J. K$2 khóa hàng, nên khi kéo xuống vẫn đọc tên khu vực ở hàng 2. Kết quả trên bảng mẫu:
| Nhân viên | Bắc | Nam | Trung | Cộng hàng |
|---|---|---|---|---|
| An | 29 | 8 | 0 | 37 |
| Bình | 0 | 32 | 0 | 32 |
| Chi | 15 | 0 | 19 | 34 |
| Dũng | 4 | 0 | 7 | 11 |
| Cộng cột | 48 | 40 | 26 | 114 |
Hai con số dùng để soát: ô An–Bắc bằng 29, khớp Ví dụ 2; ô tổng cuối bằng 114, khớp =SUM(F2:F13). Nếu tổng cuối nhỏ hơn tổng cột F, có dòng mang tên nhân viên hoặc khu vực không nằm trong bảng tổng hợp, thường do gõ sai hoặc thừa khoảng trắng.
Hai hàm khác nhau ở số điều kiện và ở vị trí của vùng cần cộng. Khi chuyển từ SUMIF sang SUMIFS, hãy đưa vùng cần cộng lên đầu công thức.

| Tiêu chí | SUMIF | SUMIFS |
|---|---|---|
| Số điều kiện | Một | Một hoặc nhiều, tối đa 127 cặp |
| Vị trí vùng cần cộng | Thứ ba, ở cuối | Thứ nhất, ở đầu |
| Có thể bỏ vùng cần cộng không | Được; khi bỏ, hàm cộng chính vùng điều kiện | Không, bắt buộc có |
| Cú pháp | =SUMIF(range, criteria, [sum_range]) |
=SUMIFS(sum_range, criteria_range1, criteria1, ...) |
| Ví dụ tổng doanh thu Vở | =SUMIF(C2:C13, "Vở", F2:F13) cho 44 |
=SUMIFS(F2:F13, C2:C13, "Vở") cho 44 |
Kiểm tra từ trên xuống: Excel có nhận công thức không, rồi đến mã lỗi, rồi đến kết quả 0, cuối cùng là kết quả lệch so với mong đợi.
| Bước | Dấu hiệu | Nguyên nhân và cách sửa |
|---|---|---|
| 1 | Nhấn Enter nhưng Excel báo lỗi hoặc không nhận công thức | Dấu nháy kép cong (“ ”) khi chép công thức từ web hoặc văn bản. Excel chỉ nhận nháy kép thẳng (“). Xóa và gõ lại dấu nháy kép ngay trong ô công thức. |
| 2 | Excel vẫn từ chối công thức dù nháy kép đã đúng | Dấu ngăn cách giữa các đối số phụ thuộc cài đặt vùng và ngôn ngữ. Bài này dùng dấu phẩy; nếu Excel không nhận, thử thay các dấu phẩy ngăn cách đối số bằng dấu chấm phẩy. |
| 3 | #NAME? |
Tiêu chí chữ thiếu ngoặc kép, ví dụ =SUMIFS(F2:F13, C2:C13, Vở): Excel coi Vở là một tên chưa được định nghĩa. Viết lại thành "Vở". |
| 4 | #VALUE! |
Các vùng lệch kích thước, ví dụ =SUMIFS(F2:F13, C2:C12, "Vở") có 12 ô ở vùng cộng nhưng 11 ô ở vùng điều kiện. Chọn lại để mọi vùng cùng số hàng và số cột. |
| 5 | #VALUE! dù các vùng đã cùng kích thước |
Công thức lấy vùng ở một tệp Excel khác đang đóng. SUMIFS chỉ đọc được vùng của tệp đang mở. Mở tệp nguồn rồi nhấn F9 để tính lại; nếu cần tệp nguồn đóng thường xuyên, chép dữ liệu sang tệp hiện tại. |
| 6 | Kết quả bằng 0, không có mã lỗi | Không dòng nào thỏa tất cả điều kiện. Các lý do có thể là: gõ sai chính tả hoặc sai dấu (“Vo” thay vì “Vở”); khoảng trắng thừa trong ô dữ liệu; ngày hoặc số được lưu dạng chữ; hai tiêu chí loại trừ nhau trên cùng một cột. Để tìm ra, chạy riêng từng cặp điều kiện: cặp nào ra 0 là cặp có vấn đề. |
| 7 | Kết quả nhỏ hơn mong đợi | Số trong sum_range được lưu dạng chữ nên không được cộng. Số như vậy thường nằm lệch về bên trái ô, và =ISNUMBER(F2) trả về FALSE. Nhập lại các ô đó thành số. |
| 8 | Kết quả sai khi tiêu chí là một đoạn chữ rất dài | Tiêu chí dài hơn 255 ký tự không so khớp được: hàm cho kết quả sai hoặc báo #VALUE!. Rút gọn bằng ký tự đại diện, ví dụ lấy 30 ký tự đầu rồi thêm *: LEFT(H1,30)&"*", với điều kiện 30 ký tự đầu đủ để phân biệt các dòng. |
Có. Đưa các giá trị cần lấy vào một hằng mảng trong ngoặc nhọn rồi bọc bằng SUMPRODUCT: =SUMPRODUCT(SUMIFS(F2:F13, C2:C13, {"Vở","Sổ"})). SUMIFS tính riêng từng giá trị trong mảng, SUMPRODUCT cộng các kết quả lại. Trên bảng mẫu công thức cho 77. Cách này chỉ dùng cho HOẶC trên cùng một cột.
SUMIFS không làm được việc này. Dùng SUMPRODUCT kết hợp EXACT: =SUMPRODUCT(--EXACT(C2:C13,"Vở"), F2:F13). EXACT trả về TRUE chỉ khi khớp cả hoa thường, hai dấu trừ đổi TRUE/FALSE thành 1/0, rồi SUMPRODUCT nhân với cột doanh thu và cộng lại.
Có. SUMIFS không quan tâm dòng đang hiện hay ẩn. Muốn chỉ cộng các dòng còn thấy sau khi lọc, thêm một cột phụ dùng =SUBTOTAL(103, B2) (ra 1 nếu dòng đang hiện, 0 nếu bị ẩn), rồi đưa cột phụ này vào SUMIFS làm thêm một điều kiện bằng 1.
Dùng tiêu chí là chuỗi rỗng "", ví dụ =SUMIFS(F2:F13, G2:G13, "") cộng các dòng có ô cột G trống. Ngược lại, tiêu chí "" lấy các dòng mà ô cột G có dữ liệu. Hai kết quả cộng lại luôn bằng tổng cả cột F.
Có, cùng tên và cùng thứ tự đối số, các công thức trong bài chép sang là chạy. Khác biệt hay gặp là dấu ngăn cách: bảng tính đặt vùng Việt Nam thường dùng dấu chấm phẩy thay cho dấu phẩy. Google Sheets còn có SUMIF và hàm QUERY để tổng hợp theo nhiều điều kiện.
Nên đặt vào ô riêng khi điều kiện hay đổi, ví dụ tên nhân viên, ngày bắt đầu, ngày kết thúc. Công thức tham chiếu ô (như ">="&H1) thì chỉ cần sửa ô H1 là kết quả cập nhật, không phải mở công thức ra sửa, và người khác nhìn bảng cũng biết đang lọc theo gì.