목록빈도 (2)
rand(life)
지식인 질문에 대한 답. 다른 분의 답이지만 연구를 위해 가져왔다. 이런 구조에서, A와B열에서 가장 많이 나온 문자, 또는 두번째로 많이 나온 문자를 찾는 문제이다. VBA로 해야한다.코드 전체는 첨부화일을 참고하면 된다. 코드 중에서 오늘 살펴볼 부분은 아래 부분이다. v = Intersect(ws.UsedRange, 범위).Value For r = 1 To UBound(v, 1) For c = 1 To UBound(v, 2) d(v(r, c)) = d(v(r, c)) + 1 Next Next그 중에서도 파란색으로 표시한 부분이 제일 어려웠다. 여기서 d는 지난 포스트에서 설명한 Scripting.Dictionary이다. 오랜 시간동안 F8키를 누르면서 살펴보았는데, 결론은 다음과 같다. 위의 그림 ..
A열과 같이 같은 문자열이 반복되어 나오고 있을때, 가장 많이 나오는 문자열이 무엇인지, 또는 두 번째로 많이 나오는 문자열이 무엇인지를 알 수 있는 함수입니다.=INDEX(A1:A6,MATCH(LARGE(FREQUENCY(MATCH(A1:A6,A1:A6,0),MATCH(A1:A6,A1:A6,0)),C1),FREQUENCY(MATCH(A1:A6,A1:A6,0),MATCH(A1:A6,A1:A6,0)),0))배열함수이므로, Ctrl-Shift-Enter해야합니다. 길어서 복잡해보이지만, FREQUENCY(MATCH(A1:A6,A1:A6,0),MATCH(A1:A6,A1:A6,0)) 이 부분이 반복되어서 그런것입니다. 이 부분이 하는 역할은, A열의 각 문자열이 나오는 횟수를 배열로 만드는 것입니다. MATCH..