엑셀 함수 > 찾기 및 참조영역 함수 > SORT 함수로 여러 기준 (다중 기준) 정렬하기

SORT 함수로 여러 기준 (다중 기준) 정렬하기

엑셀에는 다음과 같이 데이터를 정렬해주는 SORT 함수SORTBY 함수가 있습니다.

함수 정렬 기준 정렬 기준의 개수 기타
SORT 정렬 기준이 되는 행, 열의 위치를 숫자로 지정 한 개만 가능 출력결과에 포함되지 않은 범위를 정렬기준으로 설정 가능
SORTBY 정렬 기준을 범위로 지정 여러 개 가능

위 표에 나와 있는대로 SORT 함수는 정렬 기준을 여러 개 지정할 수 없는 단점이 있습니다.

SORTBY 함수로 여러 범위를 지정할 수도 있지만 SORTBY 함수를 사용할 수 없는 경우(예: FILTER 함수에 포함할 때)도 있기 때문에 배열을 사용해서 SORT 함수로 여러 기준으로 정렬하는 방법을 알아보겠습니다.

실습용 엑셀파일 다운로드 : SORT함수로-여러기준-정렬.xlsx

 

SORT 함수로 한 개 기준으로 정렬

SORT 함수는 정렬 기준으로 한 개만 지정 가능합니다.

다음과 같이 '거래처별 판매실적' 자료가 있다고  할 때 SORT 함수를 이용하여 '판매일자' 기준으로 오름차순(빠른 날짜가 앞에, 늦은 날짜가 뒤에 옴)으로 정렬해 보겠습니다.

[B18] 셀에 다음 수식을 입력합니다.

=SORT(B6:E13,2,1)

SORT 함수로 한 개 기준으로 정렬

수식 풀이:

=SORT(B6:E13,2,1)

SORT 함수의 두 번째 인수 sort_index2로 지정했으므로 두 번째 열인 '거래처명'으로 정렬되었습니다.
sort_index 인수 자체가 숫자 하나만 지정할 수 있으므로 하나의 기준으로만 정렬해야 하는 단점이 있습니다.

 

 

 SORT 함수로 여러 기준 정렬(배열 사용)

SORT 함수의 두 번째 인수에 숫자 하나만 지정할 수 있는 단점은 배열을 사용하면 해결할 수 있습니다.

배열을 사용해서 거래처(오름차순), 판매금액(내림차순)으로 정렬해 보겠습니다.

[B30] 셀에 다음 수식을 입력합니다.

=SORT(B6:E13,{2,4},{1,-1})

 SORT 함수로 여러 기준 정렬

거래처명 기준으로 오름차순(작은 값이 앞에, 큰 값이 뒤로)으로 먼저 정렬된 후, 판매금액 기준으로 내림차순(큰 값이 앞에, 작은 값이 뒤로)으로 정렬된 것을 확인할 수 있습니다.

수식 풀이:

 SORT 함수로 여러 기준 정렬

수식에서 {2,4}와 같이 중괄호 '}'로 된 부분이 배열입니다. 배열은 한 번에 중괄호 안의 항목의 개수만큼 수식이 실행된다고 이해를 하면 됩니다.

따라서 위 수식은 다음과 같이 SORT 함수가 두 번 실행됩니다.

=SORT(B6:E13,2,1,)
2번째 열(거래처)로 오름차순 정렬(1) 한 후

=SORT(B6:E13,4,-1,)
4번째 열(판매금액)로 내림차순 정렬(-1)한 결과를 보여줍니다.

※ 위의 예에서는 2개의 기준으로 정렬했지만 배열에 정렬 기준을 추가하여 원하는 개수대로 정렬할 수 있습니다. 
=SORT(B6:E13,{2,4,1},{1,-1,1}) 
2번째 열(거래처)로 오름차순 정렬(1) 한 후
4번째 열(판매금액)로 내림차순 정렬(-1)하고 
1
번째 열(판매일자)로 오름차순 정렬(1)

=SORT(B6:E13,{2,4,1,3},{1,-1,1,1}) 
2번째 열(거래처)로 오름차순 정렬(1) 한 후
4번째 열(판매금액)로 내림차순 정렬(-1)하고 
1
번째 열(판매일자)로 오름차순 정렬(1)하고
3번째 열(상품)로 오름차순 정렬(1)

 

 

FILTER 함수의 결과를 SORT 함수로 정렬

FILTER 함수를 사용하면 조건에 따라 원하는 결과를 가져올 수 있는데, 가끔 가져온 결과를 정렬해야 하는 경우가 있습니다. 이런 경우에는 SORT 함수를 사용하면 편리합니다.

거래처별 판매실적 자료에서 FILTER 함수로 상품이 '노트'인 것만 골라낸 후 SORT 함수로 판매일자(오름차순)로 정렬해 보겠습니다.

[B42] 셀에 다음 수식을 입력합니다.

=SORT(FILTER(B6:E13,(D6:D13="노트")),1,1)

FILTER 함수의 결과를 SORT 함수로 정렬

수식 풀이:

=SORT(FILTER(B6:E13,(D6:D13="노트")),1,1)

  • 수식의 안쪽의 FILTER 함수로 먼저 상품이 '노트'인 것만 골라낸 후
  • SORT 함수의 두 번째 인수 sort_index1로 지정했으므로 첫번째 열 '판매일자'로 정렬하되
    세 번째 인수 sort_order1로 지정했으므로 오름차순으로 정렬됩니다.

 

 

FILTER 함수의 결과를 SORT 함수로 여러 기준 정렬(배열 사용)

이번에는 FILTER 함수로 상품이 '노트'인 것만 골라내고 거래처(오름차순), 판매금액(내림차순)으로 정렬해 보겠습니다.

[B50] 셀에 다음 수식을 입력합니다.

=SORT(FILTER(B6:E13,(D6:D13="노트")),{2,4},{1,-1})

FILTER 함수의 결과를 SORT 함수로 여러 기준 정렬

수식 풀이:

=SORT(FILTER(B6:E13,(D6:D13="노트")),{2,4},{1,-1})

수식에서 {2,4}와 같이 중괄호 '}'로 된 부분이 배열입니다. 배열을 사용하면 한 번에 중괄호 안의 항목의 개수만큼 수식이 실행된다고 이해를 하면 됩니다.

따라서 위 수식은 다음과 같이 SORT 함수가 두 번 실행됩니다.

=SORT(FILTER함수의 결과범위,2,1,)
2번째 열(거래처)로 오름차순 정렬(1) 한 후

=SORT(FILTER함수의 결과범위,4,-1,)
4번째 열(판매금액)로 내림차순 정렬(-1)한 결과를 보여줍니다.

 

 


관련 글

FILTER 함수 사용법 FILTER 함수 - 원하는 조건으로 필터링하기 - 엑셀에서 범위의 데이터를 원하는 조건으로 조회(필터링)하려면 다음과 같이 리본메뉴 > 데이터 > '필터' 기능을 이용하여 원본데이터 자체를 필터링했지만... 엑셀 2021…

FILTER 함수 - 원하는 조건으로 필터링하기 더 보기 »

SORTBY 함수 사용법 SORTBY 함수 - 범위의 값을 기준으로 데이터 정렬하기 - 엑셀에서 범위의 데이터를 정렬하려면 다음과 같이 리본 메뉴에 있는 '정렬' 기능을 이용하여 원본데이터 자체를 정렬했지만...   엑셀 2021 이상 버전부터 제공되는 SORT…

SORTBY 함수 - 범위의 값을 기준으로 데이터 정렬하기 더 보기 »

SORT 함수 사용법 SORT 함수 - 데이터 정렬하기 - 엑셀에서 범위의 데이터를 정렬하려면 다음과 같이 리본 메뉴에 있는 '정렬' 기능을 이용하여 원본데이터 자체를 정렬했지만... 엑셀 2021 이상 버전부터 제공되는…

SORT 함수 - 데이터 정렬하기 더 보기 »

엑셀웍스 책 출간 안내

그동안 엑셀웍스에 올린 '엑셀 강좌', '함수 사용법', 여러 '실무 예제'에서 핵심만 뽑아 '된다! 엑셀 수식 & 함수' 책으로 출간하였습니다.

 자세히 보기

온라인 구매처: 예스24   교보문고   알라딘 

댓글 남기기

Scroll to Top