나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내
작성자:  

 dew (dewdrop)

추천:  2
파일:     조회:  1223
제목:   [RE]지역별 매출 실적 순위 함수 문의
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 엑셀 버전(95,97,2000,xp,2003,2007): 엑셀 2007

* 아래줄에 질문을 작성하세요 >>

안녕하세요

지역별 매출실적 데이터 표에서 상위 1위~3위 및 하위 1위 ~ 3위 실적 순위를 표시하기 위하여 아래 함수를 사용했습니다.

=IF(H4<=SMALL($H$4:$H$15,1),"하위 1위",IF(H4<=SMALL($H$4:$H$15,2),"하위 2위",IF(H4<=SMALL($H$4:$H$15,3),"하위 3위",IF(H4>=LARGE($H$4:$H$15,1),"상위 1위",IF(H4>=LARGE($H$4:$H$15,2),"상위 2위",IF(H4>=LARGE($H$4:$H$15,3),"상위 3위",""))))))

위 함수는 너무 길고 복잡한 것 같은데, 좀 더 짥고 간단하게 순위 표시할 수 있는 함수는 어떻게 하여야 하는지요.

첨부파일을 살펴봐 주시고 함수식을 알려 주세요

감사합니다.
==============[박인호님 글에 대한 답변입니다]==============

VBA로 하는 방법 

Sub userRank()
    Dim rData As Range, rX As Range
    Dim iX As Integer
    
    Set rData = ActiveSheet.Range("H4:H15")
    
    For Each rX In rData
        For iX = 1 To 3
            If WorksheetFunction.Small(rData, iX) = rX Then rX.Offset(, 1) = "하위 " & iX & "위"
            If WorksheetFunction.Large(rData, iX) = rX Then rX.Offset(, 1) = "상위 " & iX & "위"
        Next
    Next
   
End Sub

 
[불량 게시물 신고]  
박인호답변 고맙습니다02-13 (10:35)
삭제 ■신고
        
  

작성일 : 2019-02-12(15:55)
최종수정일 : 2019-02-12(15:55)
 


 ◎ 관련글

  제 목   작성자   날짜
지역별 매출 실적 순위 함수 문의 박인호 2019-02-11
[RE]지역별 매출 실적 순위 함수 문의 dew 2019-02-12