Note: The other languages of the website are Google-translated. Back to English

Excel의 여러 열에서 고유 값을 추출하는 방법은 무엇입니까?

여러 값이있는 여러 열이 있다고 가정하면 일부 값이 동일한 열 또는 다른 열에서 반복됩니다. 이제 한 열에 한 번만 존재하는 값을 찾고 싶습니다. Excel의 여러 열에서 고유 값을 추출하는 빠른 트릭이 있습니까?


배열 수식을 사용하여 여러 열에서 고유 한 값 추출

다음은 여러 열에서 고유 한 값을 추출하는 데 도움이되는 배열 수식입니다.

1. 범위 내 값 가정 A2 : C9, E2 셀에 다음 수식을 입력하십시오.

=INDIRECT(TEXT(MIN(IF(($A$2:$C$9<>"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),"R0C00"),)&""

주의 사항: 위의 공식에서 A2 : C9 고유 값을 추출하려는 셀 범위를 나타냅니다. E1 : E1 결과를 배치하려는 열의 첫 번째 셀입니다. $ 2 : $ 9 사용하려는 셀이있는 행에 서서 $ A : $ C 사용하려는 셀이 열에 포함되어 있음을 나타냅니다. 자신의 것으로 변경하십시오.

2. 그런 다음 쉬프트 + 컨트롤 + 엔터 키를 함께 누른 다음 채우기 핸들을 끌어 빈 셀이 나타날 때까지 고유 한 값을 추출합니다. 스크린 샷보기 :


피벗 테이블을 사용하여 여러 열에서 고유 값 추출

피벗 테이블에 익숙하다면 다음 단계를 통해 여러 열에서 고유 한 값을 쉽게 추출 할 수 있습니다.

1. 먼저 데이터 왼쪽에 새 빈 열을 하나 삽입하십시오.이 예에서는 원본 데이터 옆에 A 열을 삽입합니다.

2. 데이터에서 한 셀을 클릭하고 Alt + D 키를 누른 다음 P 열려면 즉시 키 피벗 테이블 및 피벗 차트 마법사선택한다. 다양한 통합 범위 마법사 1 단계에서 스크린 샷을 참조하십시오.

3. 그런 다음 다음 버튼, 확인 나를위한 단일 페이지 필드 만들기 마법사 2 단계의 옵션, 스크린 샷 참조 :

4. 클릭으로 이동 다음 버튼을 클릭하여 왼쪽 새 ​​셀 열을 포함하는 데이터 범위를 선택한 다음 추가 버튼을 눌러 데이터 범위를 모든 범위 목록 상자, 스크린 샷 참조 :

5. 데이터 범위를 선택한 후 계속 클릭 다음, 마법사 3 단계에서 원하는대로 피벗 테이블 보고서를 배치 할 위치를 선택합니다.

6. 마지막으로 마감재 마법사를 완료하고 현재 워크 시트에 피벗 테이블이 생성되었습니다. 보고서에 추가 할 필드 선택 섹션, 스크린 샷 참조 :

7. 그런 다음 필드를 확인하십시오. 가치관 또는 값을 이제 다음과 같이 여러 열에서 고유 한 값을 가져옵니다.


VBA 코드로 여러 열에서 고유 값 추출

다음 VBA 코드를 사용하여 여러 열에서 고유 한 값을 추출 할 수도 있습니다.

1. 누르고 ALT + F11 키가 열립니다. Microsoft Visual Basic for Applications 창.

2. 딸깍 하는 소리 끼워 넣다 > 모듈을 클릭하고 모듈 창에 다음 코드를 붙여 넣습니다.

VBA : 여러 열에서 고유 한 값 추출

Sub Uniquedata()
'Updateby Extendoffice
Dim rng As Range
Dim InputRng As Range, OutRng As Range
Set dt = CreateObject("Scripting.Dictionary")
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
For Each rng In InputRng
    If rng.Value <> "" Then
        dt(rng.Value) = ""
    End If
Next
OutRng.Range("A1").Resize(dt.Count) = Application.WorksheetFunction.Transpose(dt.Keys)
End Sub

3. 그런 다음 F5 이 코드를 실행하면 사용할 데이터 범위를 선택하라는 메시지 상자가 나타납니다. 스크린 샷보기 :

4. 그런 다음 OK, 결과를 넣을 위치를 선택할 수있는 또 다른 프롬프트 상자가 나타납니다. 스크린 샷을 참조하십시오.

5. OK 이 대화 상자를 닫으려면 모든 고유 값이 한 번에 추출되었습니다.


놀라운 기능으로 단일 열에서 고유 한 값 추출

때로는 단일 열에서 고유 한 값을 추출해야하는 경우 위의 방법이 도움이되지 않습니다. 여기서 유용한 도구를 추천 할 수 있습니다.Excel 용 Kutools그와 고유 한 값으로 셀 추출 (첫 번째 중복 포함) 유틸리티를 사용하면 고유 한 값을 빠르게 추출 할 수 있습니다.

참고 :이것을 적용하려면 고유 한 값으로 셀 추출 (첫 번째 중복 포함), 먼저 Excel 용 Kutools을 클릭 한 다음 기능을 빠르고 쉽게 적용하십시오.

설치 후 Excel 용 Kutools, 다음과 같이하십시오.

1. 결과를 출력 할 셀을 클릭하십시오. (주의 사항: 첫 번째 행의 셀을 클릭하지 마십시오.)

2. 그런 다음 쿠툴 > 수식 도우미 > 수식 도우미, 스크린 샷 참조 :

3. 에서 수식 도우미 대화 상자에서 다음 작업을 수행하십시오.

  • 본문 옵션에서 공식 거래증명방식 드롭 다운 목록;
  • 그런 다음 고유 한 값으로 셀 추출 (첫 번째 중복 포함) 인사말 fromula 선택 리스트 박스;
  • 오른쪽에서 인수 입력 섹션에서 고유 한 값을 추출 할 셀 목록을 선택하십시오.

4. 그런 다음 Ok 버튼을 클릭하고 빈 셀이 표시 될 때까지 모든 고유 값을 나열하려는 셀로 채우기 핸들을 드래그합니다. 스크린 샷 참조 :

지금 Excel 용 Kutools를 무료로 다운로드하십시오!


더 많은 관련 기사 :

  • 목록에서 고유하고 고유 한 값의 수 계산
  • 중복 된 항목이있는 긴 값 목록이 있다고 가정 해 보겠습니다. 이제 고유 한 값 (목록에 한 번만 표시되는 값) 또는 고유 한 값 (목록에있는 모든 다른 값은 고유함을 의미 함)의 수를 계산하려고합니다. 왼쪽 스크린 샷과 같이 열에 값 +1 번째 중복 값)이 표시됩니다. 이 기사에서는 Excel 에서이 작업을 처리하는 방법에 대해 설명합니다.
  • Excel의 기준에 따라 고유 한 값 추출
  • 아래 스크린 샷과 같은 결과를 얻기 위해 열 A의 특정 기준에 따라 열 B의 고유 이름 만 나열하려는 다음 데이터 범위가 있다고 가정합니다. Excel에서이 작업을 어떻게 빠르고 쉽게 처리 할 수 ​​있습니까?
  • Excel에서 고유 한 값만 허용
  • 워크 시트 열에 고유 한 값만 입력하고 중복을 방지하려면이 문서에서이 작업을 처리 할 수있는 몇 가지 빠른 트릭을 소개합니다.
  • Excel의 기준에 따라 고유 값 합계
  • 예를 들어 다음 스크린 샷과 같이 Name 열을 기반으로 Order 열의 고유 값만 합산하기 위해 Name 및 Order 열을 포함하는 데이터 범위가 있습니다. Excel에서이 작업을 빠르고 쉽게 해결하는 방법은 무엇입니까?

최고의 사무 생산성 도구

Excel용 Kutools는 대부분의 문제를 해결하고 생산성을 80% 증가시킵니다.

  • 재사용: 빠르게 삽입 복잡한 공식, 차트 그리고 이전에 사용한 모든 것; 셀 암호화 암호로; 메일 링리스트 생성 이메일 보내기 ...
  • 슈퍼 포뮬러 바 (여러 줄의 텍스트와 수식을 쉽게 편집 할 수 있습니다.) 레이아웃 읽기 (많은 수의 셀을 쉽게 읽고 편집합니다.) 필터링 된 범위에 붙여 넣기...
  • 셀 / 행 / 열 병합 데이터 손실없이; 셀 내용 분할; 중복 행 / 열 결합... 중복 셀 방지; 범위 비교...
  • 중복 또는 고유 선택 행; 빈 행 선택 (모든 셀이 비어 있음); 슈퍼 찾기 및 퍼지 찾기 많은 통합 문서에서; 무작위 선택 ...
  • 정확한 사본 수식 참조를 변경하지 않고 여러 셀; 참조 자동 생성 여러 시트에; 글 머리 기호 삽입, 확인란 등 ...
  • 텍스트 추출, 텍스트 추가, 위치 별 제거, 공간 제거; 페이징 부분합을 만들고 인쇄합니다. 셀 내용과 주석 간 변환...
  • 슈퍼 필터 (다른 시트에 필터 구성표 저장 및 적용) 고급 정렬 월 / 주 / 일, 빈도 등 특수 필터 굵은 기울임 꼴로 ...
  • 통합 문서와 워크 시트 결합; 키 열을 기반으로 테이블 병합; 데이터를 여러 시트로 분할; xls, xlsx 및 PDF 일괄 변환...
  • 300개 이상의 강력한 기능. Office / Excel 2007-2021 및 365를 지원합니다. 모든 언어를 지원합니다. 기업 또는 조직에서 쉽게 배포할 수 있습니다. 전체 기능은 30일 무료 평가판입니다. 60일 환불 보장.
kte 탭 201905

Office Tab은 Office에 탭 인터페이스를 제공하여 작업을 훨씬 쉽게 만듭니다.

  • Word, Excel, PowerPoint에서 탭 편집 및 읽기 사용, Publisher, Access, Visio 및 Project.
  • 새 창이 아닌 동일한 창의 새 탭에서 여러 문서를 열고 만듭니다.
  • 생산성을 50% 높이고 매일 수백 번의 마우스 클릭을 줄입니다!
officetab 하단
코멘트 (31)
5에서 평가 된 5 · 1 등급
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
Is this formula complete? =INDIRECT(TEXT(MIN(IF(($A$2:$C$9"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),"R0C00"),)&"",
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이것은 아직 수정되지 않았습니다.슬픈:
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
시간 낭비 ..... 공식이 작동하지 않습니다
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
고맙습니다!!! 이 작업을 수행하고 Pivot Wizard(피벗 마법사)에 어떤 일이 발생했는지 알아내기 위해 몇 시간을 보냈습니다(다른 기사).
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
VBA 코드를 사용하고 있지만 상자가 팝업되는 것을 원하지 않습니다. 대신 매번 사용할 셀 범위와 출력을 넣을 상자를 정확히 정의하고 싶습니다. 입력 범위와 출력은 두 개의 다른 시트에 있습니다. VBA를 업데이트하려면 어떻게 해야 합니까? 고맙습니다!!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
여기요! 이 공식이 87행 이후에 오류로 이어지는 이유를 아는 사람이 있습니까? 마치 완벽하게 작동하고 특정 시점에서 모든 행에 대해 오류를 반환합니다. 이것은 최악입니다! 내가 여기에 필요한 것과 정확히 가까우니까...
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
=INDIRECT(TEXT(MIN(IF(($A$2:$C$9"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),"R0C00"),)&"" It doesn't work
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 다른 열과 비교할 때 첫 번째 열에서 고유한 셀을 추출하고 싶습니다(XNUMX개의 같지 않은 열이 있습니다). 어떻게 할 수 있습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 저는 세 개의 같지 않은 열이 있고 첫 번째 열의 고유한 셀을 추출하고 싶습니다. 어떻게하니?? 미리 감사합니다
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
나는 사랑

피벗 테이블을 사용하여 여러 열에서 고유한 값 추출
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
올바른 수식을 제출할 수 있습니까... VBA 기능은 잘 작동합니다.
내 프로젝트에 대해서만 올바른 공식을 사용합니다.


감사
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
누구든지 출력을 위해 한 줄이 아닌 여러 줄로 만드는 방법을 알고 있습니까? (현재 한 줄 결과는 workflowfunction.transpose에 의해 달성되지만 내가 (결과로) 달성하고자 하는 것은 3개의 열을 선택할 때 반환된 결과도 3개 대신 XNUMX개의 열이라는 것입니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이 배열 공식은 정확합니다. 열 A에서 C의 데이터, 셀 D2의 첫 번째 결과 수식... 이것은 나중에 수식을 아래로 복사하고 Ctrl+Shift+모든 수식을 입력하는 다른 배열 수식과 다릅니다. 그러나 이 배열 수식은 첫 번째 셀에서 Ctrl+Shift+Enter를 수행하고 아래로 복사해야 합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
무하스 그라시아스 포 라 매크로!!! 나 퓨뮤유틸
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
내 시트에 조정했지만 정의된 배열의 첫 번째 값만 반환합니다... 내가 누락된 것은 무엇입니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕, 코디
위의 공식은 내 워크시트에서 잘 작동합니다. 여기에서 데이터 문제의 스크린샷을 제공할 수 있습니까?
감사합니다!
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
공식 버전과 관련하여 이 부분이 무엇을 하는지 자세히 설명해 주시겠습니까? *100+COLUMN($A:$C),7^8)),"R0C00") 구체적으로 어떤 것들이 * 100, 7 ^ 8의 메이크업 시연, 그리고 한국에서 사랑을 담아 보낸 "R0C000" 행위? 나는 다른 모든 것을 이해하지만 이것이 무엇을 위한 것인지 알 수 없습니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
답변이 조금 늦었지만...
ROW($2:$9)*100 - 행 번호 *100을 곱한 것이므로 행 5에 있으면 이제 숫자는 500입니다.
COLUMN($A:$C) - 행*100 숫자에 추가되므로 행 5 열 2이면 숫자는 502입니다.
7^8)), - 이것은 (내 생각에) 이전의 min 문에 대한 최대 값을 갖는 것입니다.
"R0C00") - 숫자를 기반으로 텍스트 서식을 지정합니다. 이 예에서는 502가 있으므로 R5C02(행 5, 열 02)를 제공합니다.

열은 많지만 행은 많지 않은 경우 ROW($2:$9)*로 변경할 수 있습니다.1000+열($A:$C),7^8)),"R0C000")
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
코드 주셔서 감사합니다. 이 페이지의 VBA 코드를 사용하고 있습니다. 고유 값을 추출한 후 자동으로 정렬되도록 정렬 코드를 추가하는 방법이 있습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
매크로 대신 uniqdata 함수를 만들 수 있습니까?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, İlhan,이 문제를 해결하기 위한 수식을 만드는 사용자 정의 함수가 마음에 들면 아래 코드가 도움이 될 수 있습니다. 코드를 삽입한 후 결과를 넣을 셀 목록을 선택하십시오. 그런 다음 다음 수식을 입력합니다.=고유(A1:C4)  수식 입력줄에서.Press Ctrl + Shift + Enter를 열쇠. 


Function Uniques(ByVal inputRange As Range)
Dim inputArray As Variant
Dim myColl As New Collection
Dim xVal As Variant
Dim outArray() As Variant
On Error Resume Next
With inputRange
inputArray = Application.Intersect(.Cells, .Parent.UsedRange).Value
End With
On Error GoTo 0
On Error Resume Next
For Each xVal In inputArray
myColl.*** Item:=xVal, Key:=(CStr(xVal) & TypeName(xVal))
Next xVal
myColl.Remove "String"
On Error GoTo 0
ReDim outArray(1 To Application.Max(myColl.Count, Application.Caller.Cells.Count))
For xVal = 1 To UBound(outArray)
outArray(xVal) = vbNullString
Next xVal
For xVal = 1 To Application.Min(myColl.Count, Application.Caller.Cells.Count)
outArray(xVal) = myColl(xVal)
Next xVal
If Application.Caller.Columns.Count = 1 Then
Uniques = Application.Transpose(outArray)
Else
Uniques = outArray
End If
End Function
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
żart에 Czy?
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
상단의 배열 수식은 동일한 시트의 데이터와 함께 사용할 때 훌륭하게 작동하지만 다른 시트의 동일한 정확한 데이터를 참조하는 데 사용하려고 하면 수식이 아무 것도 반환하지 않습니다. 이유를 알 수 없습니다. 다른 시트의 범위를 참조할 수 없도록 하는 배열 기능에 제한이 있습니까?

제공할 수 있는 통찰력을 제공해 주셔서 감사합니다.
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 에린입니다.

도움이 되어 기쁩니다. 이 수식의 INDIRECT 함수는 다른 워크시트의 데이터를 참조할 때 사용하기가 더 복잡합니다. 다른 워크시트의 범위를 참조할 때는 이 기능을 사용하지 않는 것이 좋습니다.

예: 이제 데이터가 Sheet1에 있으므로 Sheet2에 있는 Sheet1의 C2 셀 내용을 참조하고 싶습니다. 먼저 D2 및 D1와 같은 Sheet2의 두 셀에 각각 Sheet1 및 C2를 입력합니다. 이 시점에서 Sheet2의 빈 셀에 수식을 입력합니다.
=INDIRECT("'"&D1&"'!"&D2), Sheet2의 C1 셀 내용을 반환할 수 있습니다.

보시다시피, 그것은 일을 훨씬 더 복잡하게 만듭니다. 제 설명이 도움이 되기를 바랍니다. 좋은 하루 되세요.

감사합니다.
맨디
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요 선생님! VBA는 훌륭하게 작동했습니다. 그 점에 대해 대단히 감사합니다! 원본 데이터를 변경하면 고유 값으로 열을 자동으로 새로 고칠 수 있습니까?
5에서 평가 된 5
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
안녕하세요, Ioannis님.

도움이 되어 기쁩니다. 원본 데이터를 변경한 후 VBA는 결과를 자동으로 새로 고칠 수 없습니다. 내가 생각할 수 있는 가장 쉬운 방법은 Ctrl + Alt + F9를 눌러 열려 있는 모든 통합 문서의 워크시트에 있는 모든 결과를 새로 고치는 것입니다. 좋은 하루 되세요.

감사합니다.
맨디
이 댓글은 사이트의 중재자에 의해 최소화되었습니다
이 훌륭한 기사에 감사드립니다.

사용하시는 분들을 위해 영어가 아닌 Excel의 배열 수식 텍스트 형식 문자열에 특별한 주의를 기울여야 합니다. 예: "R0C00".
독일어의 경우 "Z0S00"으로 번역됩니다. 그러나 "S"는 시간 형식을 위한 초를 나타내는 특수 문자입니다. 이 문자는 이스케이프해야 하므로 독일어 Excel의 올바른 형식 문자열은 "Z0\S00"입니다.

나는 이것이 미래에 누군가를 돕기를 바랍니다 :-)
아직 코멘트가 없습니다
더보기

Follow Us

저작권 © 2009 - WWW.extendoffice.com. | 판권 소유. 에 의해 구동 ExtendOffice. | | 사이트 맵
Microsoft 및 Office 로고는 미국 및 / 또는 기타 국가에서 Microsoft Corporation의 상표 또는 등록 상표입니다.
Sectigo SSL로 보호