Thêm các giá trị duy nhất bằng VBA trong Microsoft Excel
Trong bài viết này, chúng tôi sẽ tạo một Hàm do Người dùng Xác định (UDF) hoặc hàm tùy chỉnh để thêm các giá trị duy nhất trong một phạm vi xác định.
Dữ liệu thô cho bài viết này bao gồm các số ngẫu nhiên trong bảy mẫu khác nhau.
Thêm một cột khác để tìm tổng giá trị trong mỗi hàng.
Cột “Tổng cộng” hiển thị tổng các số trong mỗi hàng.
Bây giờ, thêm một cột khác để tìm tổng chỉ các số duy nhất trong mỗi hàng. Chúng tôi đã tạo một Hàm do Người dùng Xác định “AddDistinctValues” để tìm tổng các số duy nhất. Thêm công thức = AddDistinctValues (A11: G11) trong Ô I11 và kéo công thức sang các hàng khác.
UDF “AddDistinctValues” sẽ cung cấp tổng các số duy nhất trong phạm vi xác định. Trong hình ảnh dưới đây, người ta có thể dễ dàng nhận thấy sự khác biệt giữa tổng tổng và tổng các số duy nhất.
Giải thích logic
UDF “AddDistinctValues” lấy đối tượng phạm vi làm đầu vào. Nó cộng các số duy nhất trong phạm vi đầu vào.
Để tìm các số duy nhất trong phạm vi đầu vào, chúng tôi đã sử dụng đối tượng collection. Như chúng ta biết bộ sưu tập không thể lưu trữ các giá trị trùng lặp, khi chúng tôi chèn các số vào phạm vi đầu vào trong bộ sưu tập, các số trùng lặp sẽ không được chèn lại trong bộ sưu tập, thay vào đó, lỗi sẽ được tạo ra.
Để xử lý lỗi, chúng tôi đã sử dụng câu lệnh “Khi Lỗi Tiếp tục Tiếp theo”.
Câu lệnh này sẽ không ngăn hàm gặp lỗi, thay vào đó, Loop sẽ chuyển sang câu lệnh tiếp theo.
Khi chúng ta có các số duy nhất trong bộ sưu tập, chúng ta có thể thêm chúng vào mảng.
Vui lòng theo dõi bên dưới để biết mã
Function AddDistinctValues(InputRange As Range) As Integer 'Declaring variables Dim Rng As Range Dim UniqueValues As New Collection Dim UniqueValue As Variant 'Recalculates the function whenever calculation occur in any other cell Application.Volatile On Error Resume Next 'Adding unique values to collection from input range For Each Rng In InputRange UniqueValues.Add Rng.Value, CStr(Rng.Value) Next On Error GoTo 0 AddDistinctValues = 0 'Adding values in the collection For Each UniqueValue In UniqueValues AddDistinctValues = AddDistinctValues + UniqueValue Next End Function
Nếu bạn thích blog này, hãy chia sẻ nó với bạn bè của bạn trên Facebook và Facebook.
Chúng tôi rất muốn nghe ý kiến từ bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi [email protected]