image

이전 기사에서는 다양한 엑셀 함수의 조합을 사용하여 범위에서 고유 한 값을 추출하는 방법을 배웠습니다. 그들은 환상적으로 작동하지만 너무 복잡하지만 이것을 부인할 수 없습니다. 고유 한 값을 자주 추출하면 이러한 공식이 피곤할 수 있습니다. 그들은 또한 파일을 무겁고 느리게 만듭니다.

따라서이 기사에서는 범위를 인수로 사용하고 해당 범위에서 고유 한 값만 반환하는 사용자 정의 함수를 만드는 방법을 배웁니다. 코드를 파일에 직접 복사하고 즉시 사용할 수 있습니다.

고유 한 기능에 대한 VBA 코드 :

Function UNIQUES(rng As Range) As Variant()

Dim list As New Collection

Dim Ulist() As Variant

'Adding each value of rng to the collection.

On Error Resume Next

For Each Value In rng

'here value and key are the same. The collection does not allow duplicate keys hence only unique values will remain.

list.Add CStr(Value), CStr(Value)

Next

On Error GoTo 0

'Defining the length of the array to the number of unique values. Since the array starts from 0, we subtract 1.

ReDim Ulist(list.Count - 1, 0)

'Adding unique value to the array.

For i = 0 To list.Count - 1

Ulist(i, 0) = list(i + 1)

Next

'Printing the array

UNIQUES = Ulist

End Function

코드를 Excel의 VB 편집기로 복사하십시오.

UNIQUE 함수 사용

위의 함수는`link : / custom-functions-in-vba-create-vba-function-to-return-array [user-defined multi-cell array function]`입니다. 즉, 고유 목록을 인쇄 할 범위를 선택한 다음 수식을 작성하고 CTRL + SHIFT + ENTER 키 조합을 눌러야합니다.

위의 gif에는 국가 목록이 있습니다. 이제 목록에 중복 된 국가가 많이 있습니다. 고유 한 국가 목록 만 가져 오려고합니다.

이렇게하려면 고유 목록을 원하는 범위를 선택하십시오. 이제 다음 공식을 작성하십시오.

=UNIQUES(A2:B7)

Ctrl + Shift + Enter 키 조합을 누르십시오. 그리고 끝났습니다. 모든 고유 값이 선택한 범위에 나열됩니다.

참고 : * 선택한 범위가 고유 한 값보다 크면 # N / A 오류가 표시됩니다. 고유 값이 끝나는 표시로 사용할 수 있습니다. 목록 끝에 # N / A가 표시되지 않으면 더 많은 고유 값이있을 수 있습니다 .

코드 설명

이 UD 기능에서 VBA의 두 가지 주요 개념을 사용했습니다.

link : / excel-macros-and-vba-how-to-use-vba-collections-in-excel [컬렉션]

및`link : / custom-functions-in-vba-create-vba-function-to-return-array [User Defined Array Function]`. 먼저, 제공된 범위에서 고유 한 값을 가져 오기 위해 컬렉션을 사용했습니다.

for Each Value In rng

list.Add CStr(Value), CStr(Value) Next

next

시트에 컬렉션을 인쇄 할 수 없기 때문에 다른 배열 UList로 전송했습니다.

for i = 0 To list.Count - 1

Ulist(i, 0) = list(i + 1) Next

next

참고 : * VBA 배열 인덱싱은 0부터 시작하고 컬렉션 인덱싱은 1부터 시작합니다. 이것이 바로 for 루프에서 배열에 대해 1을 빼고 목록 컬렉션의 인덱싱에 1을 더한 이유입니다.

결국 우리는 그 배열을 시트에 인쇄했습니다.

동일한 작업을 수행하는 2016 Excel에서 사용할 수없는 UNIQUE 함수가 있습니다. 이 기능은 Excel 2019에서 사용할 수 있습니다. 내부자 프로그램의 구성원 만 해당 기능에 액세스 할 수 있습니다. 이 기술을 사용하면 MS보다 앞서 있다는 것을 사무실에서 과시 할 수 있습니다.

자, 여러분, 이렇게 간단하게 고유 한 값을 추출하는 함수를 만들 수 있습니다. 나는 당신이 이것을 이해할 수있을만큼 충분히 설명이 되었기를 바랍니다. 이 질문 또는 기타 Excel VBA 관련 질문에 대한 특정 질문이있는 경우 아래 의견 섹션에서 질문하십시오.

작업 파일을 다운로드하려면 아래 링크를 클릭하십시오.

`link : /wp-content-uploads-2019-12-UNIQUES-function.xls [__ UNIQUES 함수]

관련 기사 :

link : / custom-functions-in-vba-create-vba-function-to-return-array [배열을 반환하는 VBA 함수 생성]| 배열을 반환하는 사용자 정의 배열 함수를 만드는 방법을 알아 봅니다.

link : / excel-array-formulas-arrays-in-excel-formula [Excel Formul의 배열]| Excel에서 배열이 무엇인지 알아보십시오.

link : / vba-user-defined-function [VBA를 통한 사용자 정의 함수 생성 방법]| Excel`link : / custom-functions-userdefined-functions-from-other-workbooks-using-vba-in-microsoft-excel | Excel의 다른 통합 문서에서 사용자 정의 함수 사용`link : / custom-functions-return-error-values-from-user-defined-functions-using-vba-in-microsoft-excel [Return error values ​​from user-defined Microsoft Excel에서 VBA를 사용하는 함수]| 사용자 정의 함수에서 오류 값을 반환하는 방법 알아보기