이 기사에서는 사용자 정의 함수 (UDF) 또는 사용자 정의 함수를 만들어 정의 된 범위에 고유 한 값을 추가합니다.

이 기사의 원시 데이터는 7 가지 샘플의 난수로 구성됩니다.

ArrowRawData

다른 열을 추가하여 각 행의 값 합계를 찾습니다.

ArrowTotal

“Total Sum”열은 각 행의 숫자 합계를 표시합니다.

이제 다른 열을 추가하여 각 행에서 고유 한 숫자의 합을 찾습니다. 고유 한 숫자의 합계를 찾기 위해 사용자 정의 함수“AddDistinctValues”를 만들었습니다. 셀 I11에 수식 = AddDistinctValues ​​(A11 : G11)를 추가하고 수식을 다른 행으로 끕니다.

UDF“AddDistinctValues”는 정의 된 범위에서 고유 한 숫자의 합계를 제공합니다. 아래 이미지에서 총합과 고유 숫자의 합의 차이를 쉽게 확인할 수 있습니다.

ArrowUniqueNoSum

논리 설명

UDF“AddDistinctValues”는 범위 개체를 입력으로 사용합니다. 입력 범위에서 고유 한 숫자를 더합니다.

입력 범위에서 고유 한 숫자를 찾기 위해 컬렉션 개체를 사용했습니다. 컬렉션은 중복 값을 저장할 수 없으므로 컬렉션의 입력 범위에 숫자를 삽입하면 중복 된 숫자가 컬렉션에 다시 삽입되지 않고 오류가 생성됩니다.

오류를 처리하기 위해 “On Error Resume Next”문을 사용했습니다.

이 문은 오류 발생시 함수를 중지하지 않고 대신 루프가 다음 문으로 이동합니다.

컬렉션에 고유 번호가 있으면 배열에 추가 할 수 있습니다.

아래 코드를 따르세요

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

이 블로그가 마음에 들면 Facebook 및 Facebook에서 친구들과 공유하십시오.

여러분의 의견을 듣고 싶습니다. 작업을 개선하고 더 나은 서비스를 제공 할 수있는 방법을 알려주십시오. [email protected]로 문의 해주세요