rand(life)
[함수] 반복빈도수 순위에 따른 문자열 찾기 본문
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(A1:A6,A1:A6,0)에 의해 {1;2;2;1;5;2} 라는 배열이 두 개 만들어지고, 그 두 배열을 Frequency함수로 받으면
FREQUENCY({1;2;2;1;5;2},{1;2;2;1;5;2}) 가 되어, {2;3;0;0;1;0;0}이라는 결과가 만들어집니다.
({1;2;2;1;5;2}안에서 1은 두번 나오고, 2는 3번 나오고, 5는 1번 나오므로)
C1의 값이 2라면 Large(~~~, 2)가 되어 위의 배열에서 두번째로 큰 값을 찾으면 2입니다.
다시 FREQUENCY(MATCH(A1:A6,A1:A6,0),MATCH(A1:A6,A1:A6,0))를 하면
다시 {2;3;0;0;1;0;0}라는 배열이 나오는데,
거기서 위에서 찾은 2라는 값이 어디있는지를 Match함수에서 찾으면 1이 되고
A1:A6에서 1의 위치에 있는 것은 '사과'입니다.
짐작하시겟지만, 동률순위가 있을 때는 제대로 답이 나오지 않습니다.