Dữ liệu trong Excel rất đa dạng và cần có nhiều cách xử lý khác nhau để phù hợp với từng loại dữ liệu. Trong bài viết này chúng ta cùng tìm hiểu về một chủ đề khó nhưng rất thú vị là: Đếm số giá trị không trùng trong 1 danh sách. Hãy cùng Học Excel Online tìm hiểu xem khó ở đâu và thú vị ở đâu nhé.
Giả sử chúng ta có 1 bảng dữ liệu như sau:
Một yêu cầu đặt ra là đếm xem trong cột Nhân viên có bao nhiêu người, cột Ngày có bao nhiêu ngày, cột Tên hàng có bao nhiêu mặt hàng nhưng không tính các giá trị trùng nhau. Vậy chúng ta sẽ giải quyết ra sao với bài toán này?
Xem nhanh
Đây là cách làm cơ bản, dễ thực hiện và cũng dễ hiểu. Nhược điểm duy nhất của cách này là làm qua nhiều bước và tăng số công thức phải tính lên nhiều.
Ví dụ với cột Ngày, chúng ta sẽ tạo 1 cột phụ là cột F và sử dụng hàm COUNTIF tại đó. Hàm COUNTIF không còn xa lạ gì với chúng ta phải không nào. Nếu bạn không nhớ hàm COUNTIF dùng thế nào thì xem tại đây nhé:
Hàm CountIf trong excel, hướng dẫn cụ thể và có ví dụ minh họa
Để phân biệt giá trị tại dòng đó xuất hiện lần thứ mấy thì chúng ta dùng hàm COUNTIF như sau:
Kết quả thu được là 9
Như vậy khi sử dụng hàm COUNTIF trong cột phụ thì giải quyết yêu cầu trên khá dễ dàng.
Nhược điểm
Cách này tuy đơn giản nhưng lại có nhược điểm là tính thủ công. Bạn phải chọn 1 cột phụ. Dùng công thức tại cột phụ. Dùng công thức tính kết quả. Rất nhiều bước phải không nào? Hơn nữa với bảng dữ liệu lớn thì việc này khiến tăng thêm 1 lượng công thức rất lớn, với mỗi dòng dữ liệu là 1 công thức.
Vậy nên trong những bảng dữ liệu lớn và khả năng Excel của bạn tốt thì tại sao chúng ta không tìm hiểu cách thứ 2 nhỉ?
Hẳn bạn thấy FREQUENCY là một hàm hơi lạ phải không. Đây là một hàm xử lý dữ liệu dạng mảng, dùng để đếm số lần xuất hiện của các giá trị trong 1 phạm vi nào đó. Trong yêu cầu của bài toán này, nếu không sử dụng cột phụ thì chúng ta phải sử dụng các công thức xử lý dữ liệu theo mảng để tính.
Nếu bạn chưa biết về hàm Frequency có thể xem tại bài viết: Chức năng và cú pháp hàm FREQUENCY trong Excel
Cấu trúc hàm FREQUENCY như sau:
=FREQUENCY(data_array,bins_array)
Nguyên tắc của hàm Frequency là đếm xem các giá trị trong tham số bins_array được lặp lại bao nhiêu lần trong data_array. Về bản chất thì đây giống như việc dùng hàm COUNTIF để đếm từng phần tử trong bins_array (criteria) trong vùng data_array (range) vậy.
Ứng dụng nguyên tắc trên, chúng ta xét 2 nội dung sau:
Khi kiểm tra kết quả hàm MATCH bằng cách bôi đen công thức trên thanh Formulas Bar và nhấn phím F9 ta có:
Các giá trị lần lượt trả về là 1 mảng gồm các phần tử 1, 2, 3, 4, 5, 6, 7, 8, 10 trong đó phần tử 8 xuất hiện 2 lần do ngày 27/6/2018 xuất hiện 2 lần trong mảng. Điều này tương ứng với cách biểu diễn hàm MATCH như sau:
Khi kết hợp 2 thành phần trên vào hàm Frequency ta được:
Việc còn lại là đếm số giá trị lớn hơn 0 trong mảng tạo ra bởi hàm Frequency là ra kết quả.
Tuy nhiên vì công thức chỉ đặt trong 1 ô nên hàm đếm giá trị lớn hơn 0 phải dùng đến hàm SUMPRODUCT. Cách làm như sau:
Kết quả cũng ra là 9
Như vậy chỉ cần đặt 1 biểu thức tại 1 ô C13 chúng ta cũng ra được kết quả giống như cách thứ 1.
Ưu điểm:
Nhược điểm:
Nâng cao:
Không phải lúc nào chúng ta cũng sử dụng cột STT trong bảng dữ liệu. Vậy nên việc sử dụng trực tiếp vùng A2:A11 vào tham số bins_array trong hàm Frequency phải thay đổi bằng cách khác. Theo bạn thì chúng ta có thể dùng cách nào? Hãy chia sẻ với Học Excel Online cách giải quyết trong trường hợp này nhé.
Tham khảo:
Hướng dẫn cách dùng hàm SUMPRODUCT để đếm theo nhiều điều kiện
Tổng hợp các phương pháp loại bỏ dữ liệu lặp
Cách lọc ra một danh sách các giá trị duy nhất và khác biệt trong Excel
Ngoài ra Học Excel Online xin giới thiệu với các bạn Khóa học Excel từ cơ bản tới nâng cao dành cho người đi làm. Đây là 1 khóa học rất đầy đủ kiến thức và bổ trợ rất tuyệt vời cho bạn trong việc làm quen với Excel, sử dụng các công cụ, các hàm trong Excel để giúp bạn làm việc trên Excel được tốt hơn, hiệu quả hơn. Chi tiết xem tại: