반응형

네이버 지식인에서 어떤분이 물어온 질문에 대한 답변을 다운 받았다.

 

 

kin.naver.com/qna/detail.nhn?d1id=1&dirId=102020101&docId=367281215&mode=answer

 

엑셀질문)순위 나열하기

안녕하세요.순위 나열하는법 질의드립니다. 가장 많이 사람이 방문한 시간대를 순위별로 나열해주시면됩니다.랭크는 그냥 순위만 옆에 숫자로 나오는데 이렇게 말고 1위 00:00~00:5...

kin.naver.com

 

답변주신분의 파일을 공부겸 글로 남긴다.

 

=INDEX($B$1:$B$26,ROUND(1/MOD(LARGE(INDEX($D$3:$D$26+1/ROW($D$3:$D$26),),ROW(A1)),1),))

 

함수를 하나 하나 뜯어보자.

 

 

1. INDEX($D$3:$D$26+1/ROW($D$3:$D$26),) 

방문자 숫자에 대한 배열로 만드는데 방문자 숫자가 같은 경우가 있으니 1/ROW($D$3:$D$26)로 배열값에 차이를 줄 수 있도록 했다.

 

{0.333333333333333;1.25;2.2;3.16666666666667;0.142857142857143;0.125;5.11111111111111;1.1;5.09090909090909;0.0833333333333333;7.07692307692308;8.07142857142857;9.06666666666667;10.0625;1.05882352941176;4.05555555555556;8.05263157894737;5.05;5.04761904761905;1.04545454545455;1.04347826086957;5.04166666666667;5.04;2.03846153846154}

 

2. LARGE(INDEX($D$3:$D$26+1/ROW($D$3:$D$26),),ROW(A1))

위에서 정의한 배열을 숫자가 ROW(A1) 번째 큰 숫자를 찾는다

 

{10.0625}

 

3. MOD({10.0625},1)

1로 나눈 나머지를 찾는다.

{0.0625}

 

4. ROUND(1/{0.0625},)

여기서 0.0625는 1/ROW(D3)과 같다. 따라서 역수를 취하면 ROW(D16)이다.

 

5. =INDEX($B$1:$B$26,{16})

시간배열 중에서 16행에 있는 값을 반환한다.

 

반응형

'엑셀' 카테고리의 다른 글

잘못된 제품 코드입력 방지  (0) 2020.09.08
판매액범위내에서 판촉비용 최대 찾기  (0) 2020.09.07
중복 항목 입력 방지  (0) 2020.09.07
특정문자열 이후의 문자 추출하기  (0) 2020.09.06
예산한도 설정  (0) 2020.09.06

+ Recent posts