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.

ArrowRawData

Thêm một cột khác để tìm tổng giá trị trong mỗi hàng.

ArrowTotal

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.

ArrowUniqueNoSum

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]