내가 달성하려는 것은 열의 고유 값 (문자열) 목록을 반환하는 것입니다. 그 목록을 배열에 넣은 다음 값 목록을 새로운 시트 열 A에 붙여 넣습니다. 그런 다음 각 배열 요소에 대해 원래 목록이 몇 번 있었는지 계산하고 새 시트의 열 B에서 빈도 카운트를 반환합니다 그것의 유일한 끈에 대하여.각각의 고유 한 문자열의 개수를 반환하는 Array의 각 루프에 대해
이것은 지금까지 제 코드입니다.
1. 피벗 테이블 :
은 그냥 데이터 범위에 대한 피벗 테이블을 삽입
Sub UniqueList()
Dim rListPaste As Range
Dim causeList As Range
Dim iReply As Integer
Dim element As Variant
On Error Resume Next
Set rListPaste = Application.InputBox _
(Prompt:="Please select the destination cell", Type:=8)
If rListPaste Is Nothing Then
iReply = MsgBox("No range nominated," _
& " terminate", vbYesNo + vbQuestion)
If iReply = vbYes Then Exit Sub
End If
causeList = Range("E1", Range("E65536").End(xlUp))
Range("causeList").AdvancedFilter Action:=xlFilterCopy, Unique:=True
Range("causeList").AdvancedFilter CopyToRange:=causeList.Cells(1, 1)
element = 0
For Each element In causeList
element = element + 1
Next element
End
End Sub
피벗 테이블을 사용하지 않는 이유는 무엇입니까? –
WorksheetFunction.Countif 함수는 범위 내에서 값의 발생 횟수를 반환합니다. 마지막 루프가 아닌 해당 값을 사용합니다. CopyToRange의 결과 범위에 대해 'For Each Temprangevariable For UniqueRange'를 사용하면'Temprangevariable.Offset (0,1) '을 countif 값으로 설정할 수 있습니다. – MattCrum
이 답변은 찾고자하는 답변이 아니지만 원하는 작업을 수행 할 수있는 방법입니다. [고유 값 필터링] (http://office.microsoft.com/en-001/excel-help/) 고유 값 필터 또는 중복 값 필터 - HP010073943.aspx) [각 값 반복 수] (http://office.microsoft.com/en-us/excel-help/count-occurrences-of 데이터 범위 -high-values-in-a-data-range-HP003056118.aspx) –