Tạo bảng xếp hạng giá trị thấp nhất trong Excel bằng cách sắp xếp dữ liệu thủ công, sao chép từng dòng, rồi dán vào vùng riêng là cách làm lãng phí thời gian. Tôi từng làm việc này hàng ngày cho báo cáo doanh số. Mỗi khi dữ liệu thay đổi phải lặp lại toàn bộ quy trình từ đầu. Hàm SMALL giải quyết vấn đề này bằng công thức duy nhất tự động cập nhật.

Cú pháp hàm SMALL đơn giản hơn bạn nghĩ
Hàm SMALL trả về giá trị nhỏ thứ k trong một tập dữ liệu số. Công thức chỉ cần hai đối số: vùng dữ liệu và thứ hạng bạn muốn tìm.
Cú pháp cơ bản:
=SMALL(array, k)
Trong đó:
- array: Vùng ô chứa dữ liệu số (ví dụ: B2:B50)
- k: Thứ hạng giá trị nhỏ (1 = nhỏ nhất, 2 = nhỏ thứ hai, v.v.)
Giả sử cột B chứa doanh số của 20 nhân viên trong ô B2:B21. Để tìm doanh số thấp nhất, nhập công thức:
=SMALL(B2:B21, 1)
Kết quả trả về ngay lập tức là giá trị nhỏ nhất trong danh sách. Thay số 1 bằng 2 để lấy giá trị nhỏ thứ hai, hoặc 3 cho giá trị nhỏ thứ ba. Hàm này bỏ qua các ô trống và ô chứa văn bản, chỉ tính toán với dữ liệu số.
Tại sao SMALL nhanh hơn sắp xếp thủ công
Sắp xếp và lọc thủ công yêu cầu nhiều bước và phải lặp lại mỗi khi dữ liệu thay đổi. Tôi đã so sánh cả hai phương pháp trên bảng 500 dòng dữ liệu.
Quy trình sắp xếp thủ công:
- Chọn toàn bộ vùng dữ liệu (5 giây)
- Nhấn Dữ Liệu > Sắp Xếp Từ Nhỏ Đến Lớn (3 giây)
- Sao chép 10 dòng đầu tiên (4 giây)
- Dán vào vùng riêng (2 giây)
- Hoàn tác để trả dữ liệu về thứ tự ban đầu (3 giây)
Tổng thời gian: 17 giây cho một lần. Nếu dữ liệu thay đổi 5 lần trong ngày, mất 85 giây. Nhân với 20 ngày làm việc trong tháng là 28 phút.
Phương pháp hàm SMALL: Viết công thức một lần duy nhất trong 10 giây. Dữ liệu tự động cập nhật mỗi khi giá trị trong vùng gốc thay đổi. Không cần thao tác thủ công thêm. Tiết kiệm 28 phút mỗi tháng chỉ với một công thức.
Thêm vào đó, sắp xếp thủ công làm thay đổi thứ tự dữ liệu gốc. Nếu bạn cần giữ nguyên vị trí ban đầu của các hàng, phương pháp thủ công trở nên phức tạp hơn nhiều. Hàm SMALL không chạm vào dữ liệu nguồn.
Kết hợp ROWS để tự động tạo bảng xếp hạng
Viết 10 công thức SMALL với k từ 1 đến 10 tốn thời gian và dễ sai sót. Hàm ROWS tự động tăng giá trị k khi kéo công thức xuống.
Giả sử bạn muốn hiển thị 10 giá trị thấp nhất từ vùng B2:B100 trong cột E bắt đầu từ E2.
Công thức trong E2:
=SMALL($B$2:$B$100, ROWS($B$2:B2))
Giải thích cách hoạt động:
$B$2:$B$100: Vùng dữ liệu cố định (dùng dấu đô la để không thay đổi khi sao chép)ROWS($B$2:B2): Đếm số hàng từ B2 đến B2, trả về 1
Khi kéo công thức từ E2 xuống E3, phần ROWS($B$2:B2) trở thành ROWS($B$2:B3) và trả về 2. Tiếp tục kéo xuống E4, công thức tính ROWS($B$2:B4) và trả về 3. Cứ như vậy, giá trị k tự động tăng từ 1 đến 10.
Kết quả: Cột E hiển thị 10 giá trị thấp nhất theo thứ tự tăng dần. Mỗi khi dữ liệu trong cột B thay đổi, toàn bộ bảng xếp hạng cập nhật tự động. Không cần sửa công thức hoặc kéo lại.
Phương pháp này hoạt động với bất kỳ số lượng giá trị nào. Muốn top 5 thì kéo đến E6. Muốn top 20 thì kéo đến E21. Công thức tự điều chỉnh.
Trích xuất tên hoặc thông tin liên quan
Hàm SMALL chỉ trả về giá trị số. Để lấy thông tin đi kèm như tên nhân viên hoặc mã sản phẩm, kết hợp với INDEX và MATCH.
Giả sử cột A chứa tên nhân viên (A2:A21), cột B chứa doanh số (B2:B21). Bạn muốn hiển thị tên của người có doanh số thấp nhất trong ô D2.
Công thức trong D2:
=INDEX(A2:A21, MATCH(SMALL(B2:B21, 1), B2:B21, 0))
Cách công thức hoạt động từ trong ra ngoài:
SMALL(B2:B21, 1): Tìm doanh số thấp nhấtMATCH(..., B2:B21, 0): Tìm vị trí hàng của doanh số đó trong cột BINDEX(A2:A21, ...): Trả về tên từ cột A tại vị trí hàng tương ứng
Để tạo danh sách 10 người có doanh số thấp nhất kèm tên, sửa công thức thành:
=INDEX(A2:A21, MATCH(SMALL($B$2:$B$21, ROWS($B$2:B2)), $B$2:$B$21, 0))
Kéo công thức này từ D2 xuống D11. Cột D sẽ hiển thị tên của 10 người có doanh số thấp nhất theo thứ tự tăng dần. Kết hợp với cột E chứa giá trị SMALL để có bảng xếp hạng hoàn chỉnh.
Lưu ý quan trọng: Nếu có giá trị trùng lặp trong dữ liệu, MATCH chỉ trả về vị trí của kết quả khớp đầu tiên. Trong trường hợp hai nhân viên có cùng doanh số thấp nhất, công thức sẽ hiển thị tên của người xuất hiện trước trong danh sách.
Tính tổng các giá trị thấp nhất với SUMPRODUCT
Đôi khi bạn cần tổng của 5 hoặc 10 giá trị thấp nhất mà không quan tâm từng giá trị riêng lẻ. Hàm SUMPRODUCT kết hợp với SMALL làm điều này trong một công thức duy nhất.
Cú pháp tổng 5 giá trị thấp nhất:
=SUMPRODUCT(SMALL(B2:B21, {1;2;3;4;5}))
Dấu ngoặc nhọn {1;2;3;4;5} tạo một mảng hằng số. Hàm SMALL xử lý cả 5 giá trị k cùng lúc và trả về mảng 5 giá trị thấp nhất. SUMPRODUCT cộng chúng lại.
Trong Excel 365, bạn có thể dùng SEQUENCE để tự động tạo dãy số:
=SUM(SMALL(B2:B21, SEQUENCE(5)))
SEQUENCE(5) tạo mảng {1;2;3;4;5} tự động. Khi muốn tổng 10 giá trị thấp nhất, chỉ cần thay 5 thành 10.
Tôi dùng công thức này để tính tổng doanh số của 5 nhân viên có thành tích thấp nhất mỗi quý. Kết quả giúp xác định nhanh nhóm cần hỗ trợ thêm. Trước đây phải sắp xếp, nhìn từng dòng rồi cộng bằng máy tính. Giờ một ô công thức giải quyết trong 1 giây.
Xử lý lỗi phổ biến với hàm SMALL
Hàm SMALL trả về lỗi trong một số trường hợp cụ thể. Hiểu rõ các lỗi này giúp bạn xây dựng công thức chắc chắn hơn.
Lỗi NUM khi k lớn hơn số dữ liệu: Nếu vùng B2:B21 chỉ có 15 giá trị số (5 ô trống hoặc chứa văn bản), công thức =SMALL(B2:B21, 20) trả về lỗi NUM. Giá trị k không thể vượt quá số lượng giá trị số trong vùng.
Giải pháp: Dùng hàm COUNT để kiểm tra số lượng giá trị trước:
=IF(ROWS($B$2:B2) <= COUNT($B$2:$B$21), SMALL($B$2:$B$21, ROWS($B$2:B2)), "")
Công thức này trả về chuỗi rỗng thay vì lỗi khi k vượt quá số lượng dữ liệu.
Lỗi NUM khi k nhỏ hơn 1: Giá trị k phải là số nguyên dương. Công thức =SMALL(B2:B21, 0) hoặc =SMALL(B2:B21, -1) đều trả về lỗi NUM. Kiểm tra lại công thức nếu bạn dùng phép tính hoặc tham chiếu ô cho đối số k.
Lỗi NUM khi vùng trống: Nếu không có giá trị số nào trong vùng array, hàm SMALL không có gì để tính toán và trả về lỗi NUM. Đảm bảo vùng dữ liệu chứa ít nhất một giá trị số.
Các lỗi này thường xuất hiện khi kéo công thức quá xa hoặc khi vùng dữ liệu thay đổi kích thước. Bọc công thức trong hàm IFERROR hoặc IF để xử lý lỗi một cách linh hoạt.
Sắp xếp tự động toàn bộ danh sách
Hàm SMALL không chỉ tìm các giá trị thấp nhất mà còn sắp xếp toàn bộ danh sách tự động. Phương pháp này thay thế hoàn toàn tính năng sắp xếp thủ công.
Trong Excel 365, hàm SORT làm việc này trực tiếp. Nhưng các phiên bản cũ hơn cần kết hợp SMALL với ROWS.
Công thức sắp xếp trong cột E:
=SMALL($B$2:$B$100, ROWS($B$2:B2))
Kéo công thức này xuống đến hàng cuối cùng của dữ liệu. Cột E sẽ hiển thị toàn bộ giá trị từ cột B theo thứ tự tăng dần. Mỗi khi bạn thêm hoặc sửa giá trị trong cột B, cột E cập nhật tự động.
Điểm mạnh của phương pháp này so với sắp xếp thủ công: dữ liệu gốc không bị động chạm. Bạn có thể giữ thứ tự nhập liệu ban đầu trong cột B và xem phiên bản đã sắp xếp trong cột E cùng lúc. Không cần hoàn tác hoặc lưu nhiều bản sao.
Nếu muốn sắp xếp giảm dần, dùng hàm LARGE thay vì SMALL với cú pháp giống hệt. LARGE trả về giá trị lớn thứ k thay vì nhỏ thứ k.
Làm việc với ngày tháng và thời gian
Hàm SMALL không chỉ hoạt động với số thuần túy mà còn với ngày tháng và thời gian. Excel lưu ngày dưới dạng số tuần tự, cho phép SMALL sắp xếp chúng.
Giả sử cột C chứa ngày giao hàng (C2:C50) và bạn muốn tìm 5 đơn hàng có ngày giao sớm nhất.
Công thức tìm ngày sớm nhất:
=SMALL(C2:C50, 1)
Kết quả trả về dưới dạng số tuần tự. Định dạng ô thành ngày tháng (Ctrl+1 > Ngày) để hiển thị đúng.
Tìm 5 ngày sớm nhất:
=SMALL($C$2:$C$50, ROWS($C$2:C2))
Kéo công thức từ E2 xuống E6 để có 5 ngày giao hàng sớm nhất. Kết hợp với INDEX và MATCH để lấy thông tin đơn hàng tương ứng.
Phương pháp này hữu ích cho theo dõi thời hạn, lập lịch ưu tiên, hoặc tìm các sự kiện gần nhất trong danh sách dài. Tôi dùng để theo dõi 10 nhiệm vụ có deadline sớm nhất từ danh sách 200 nhiệm vụ đang mở.
Tự động hóa không cần lập trình
Hàm SMALL làm việc sắp xếp và lọc thủ công trở nên lỗi thời cho hầu hết trường hợp. Công thức tự động cập nhật mỗi khi dữ liệu thay đổi. Không cần nhấn nút hoặc chạy đoạn mã tự động. Không cần lo lắng về việc quên cập nhật báo cáo.
Phương pháp này hoạt động trên mọi phiên bản Excel từ 2010 trở đi. Không yêu cầu tính năng đặc biệt hoặc tiện ích mở rộng. Công thức tương thích với Google Sheets với cú pháp giống hệt. Tệp chia sẻ cho đồng nghiệp sẽ hoạt động ngay lập tức trên máy họ.
Tôi tiết kiệm được 30 phút mỗi tuần sau khi thay thế toàn bộ quy trình sắp xếp và lọc bằng các công thức SMALL tự động. Báo cáo doanh số cập nhật ngay khi nhập dữ liệu mới. Không còn lo sót bước hoặc dùng dữ liệu cũ. Hàm SMALL có sẵn trong Excel 2007 trở lên và tất cả các phiên bản Microsoft 365.
