W tym artykule stworzymy niestandardową funkcję do zliczania unikalnych wartości w zdefiniowanym zakresie.
Surowe dane dla tego przykładu składają się z liczb losowych w wierszach. W tym przykładzie chcemy policzyć liczbę unikalnych liczb w każdym wierszu.
Stworzyliśmy niestandardową funkcję „CountUniqueValues”, aby znaleźć liczbę unikalnych liczb w rzędzie. Ta funkcja przyjmuje jako dane wejściowe zakres i zwraca unikalną liczbę liczb.
Wyjaśnienie logiczne
Stworzyliśmy niestandardową funkcję „CountUniqueValues”, aby uzyskać liczbę unikalnych liczb. W tej niestandardowej funkcji stworzyliśmy obiekt obiektu kolekcji. Ten obiekt kolekcji służy do tworzenia listy unikalnych numerów. Gdy mamy już listę unikalnych numerów, otrzymujemy liczbę elementów w kolekcji.
Wyjaśnienie kodu
Application.Volatile jest używany, ponieważ zostanie ponownie obliczona za każdym razem, gdy wartość komórki zostanie zmieniona w skoroszycie.
On Error Resume Next służy do obsługi błędów.
Proszę postępować zgodnie z poniższym kodem!
Opcja Funkcja jawna CountUniqueValues(InputRange As Range) As Integer Dim CellValue As Variant, UniqueValues As New Collection Application.Volatile 'W przypadku obsługi błędów po błędzie Wznów Dalej 'Przechodzenie w pętlę przez wszystkie komórki w zdefiniowanym zakresie For Each CellValue In InputRange UniqueValues.Add CellValue , CStr(CellValue) ' dodaj unikalny element Next 'Zwracanie liczby unikalnych wartości CountUniqueValues = UniqueValues.Count Funkcja końcowa
Jeśli podobał Ci się ten blog, podziel się nim ze znajomymi na Facebooku. Możesz również śledzić nas na Twitterze i Facebooku.
Chcielibyśmy usłyszeć od Ciebie, daj nam znać, jak możemy poprawić naszą pracę i uczynić ją lepszą dla Ciebie. Napisz do nas na stronie e-mail