본문 바로가기
엑셀 함수 강좌-플러스

028. (엑셀 함수 Plus) Sortby 함수 사용법 - 2개 이상의 다중 조건으로 정렬하기

by Excel.Jump 청출어람 2023. 7. 28.
반응형

 
 

Sortby 함수 다중조건 정렬

 
 
 
 
 

■ 목차

 
1. 함수 설명
2. Sortby 함수의 구문 / 사용방법
3. Sortby 함수 사용해 보기
4. Sort Vs. Sortby 함수 이해하기
5. Sort 함수에서 다중 조건 정렬 - 배열 인수 사용
** 핵심 요약
 
 
  - Sortby 함수는 최신 엑셀 프로그램(엑셀 2021, MS365)에서 사용이 가능한 함수입니다. 
  - 엑셀의 "동적 배열" 기능을 사용하는 최신 함수로 기존의 정렬 기능을 함수로 구현하였으며
  - Sort 함수는 주로 한 개의 정열 조건을 Sortby 함수는 2개 이상의 다중 조건 정렬을 위한 함수입니다. 
 
 

1. 함수 설명

 
  - Sortby 함수는 2개 이상의 다중 정렬 기능이 함수로 구현된 것으로 범위 또는 배열의 내용을 오름차순 혹은 내림차순으로 정렬된 값을 별도의 위치에 표시하는 함수입니다. 
  - 최신 엑셀 버전 (엑셀 2021, MS365)에 새로이 추가된 함수로 함께 추가된 Unique 함수, Filter 함수와 함께 다양한 방식으로 응용이 가능해 보입니다. 
  - 그래서 과거 버전의 엑셀에는 없는 함수로 이전 버전의 엑셀에서는 추가해서 사용하는 것이 불가합니다. 

  - 결괏값이 원본 테이터가 정렬된 배열 형식으로 반환되는 최신 "동적 배열 함수"이기 때문에 "Ctrl + Shift + Enter"의
  - 기존 배열 수식 입력 방식이 아닌 일반적인 다른 함수와 동일하게 "Enter"로 수식입력을 마무리하시면 됩니다. 

  - 엑셀의 정렬 기능은 원본 데이터를 수정하게 되지만 Sortby 함수는 별도의 셀에 결괏값을 출력할 수 있기 때문에
  - Filter, Unique 함수의 결괏값을 정렬해서 보는 방식으로 응용이 가능할 것입니다. 

  - 참고로 "오름차순"은 숫자의 경우 작은 수에서 큰 수로 올라가는 순서 즉 1, 2, 3, …, 가, 나, 다, …, a, b, c, … 순서로 정렬되는 것을 의미하고
  - "내림차순"은 반대로 숫자가 큰 수에서 작은 수로 내려가는 순서로 정렬되는 것을 의미합니다. 
 
 
 
 

2. Sortby 함수의 구문 / 사용방법

 
  - 아래 구문은 엑셀 도움말의 설명 내용입니다. 우리는 엑셀 함수의 구문을 다 외울 수도 없고 그럴 필요도 없습니다.
  - 다만 엑셀 도움말과 함수사용 시 표시되는 풍선도움말의 용어들에 익숙해질 필요가 있기 때문에  기회가 될 때마다 편하게 봐주시기 바랍니다.

  - SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2],…) 

  - array    필수 요소입니다. 정렬할 범위 또는 배열
  - by_array1  정렬의 기준이 되는 배열 또는 범위
  - [sort_order1]  정렬에 사용할 순서. 1은 오름차순, -1은 내림차순 기본값은 오름차순입니다.
  - [by_array2]  정렬의 기준이 되는 배열 또는 범위
  - [sort_order2]  정렬에 사용할 순서. 1은 오름차순, -1은 내림차순 기본값은 오름차순입니다.


  - 첫 번째 인수는 array(= 배열, 셀 범위)는 정렬하고자 하는 원본 데이터 범위입니다. 보통 원본 데이터 범위에 해당하는 셀 주소를 입력하게 됩니다. 

  - 두 번째 인수는 by_arry1로 첫 번째 정렬의 기준이 되는 범위라고 보시면 됩니다. 어떤 열 혹은 행을 기준으로 정렬을 할 것인지 셀 주소로 지정을 해주시면 됩니다. 
  - 이때 지정되는 셀 주소의 범위는 정렬하고자 하는 원본 데이터 범위 밖의 임의의 범위를 지정해 주셔도 되는데
  - 다만 Sortby 함수에서 지정되는 범위는 크기가 모두 같아야 합니다. 
  - 즉, 정렬에 적용되는 array, by_array1, by_array2, … 들의 행방향 정렬 시는 열의 크기가 열 방향 정렬 시는 행의 크기가 같아야 한다는 의미입니다.  

  - 세 번째 인수는 sort_order1으로 첫 번째 정렬 범위에 적용될 정렬(sort) 방법(order)으로 "생략 = 숫자 1"은 "오름차순"이 되고
  - 숫자 -1은 "내림차순"을 기준으로 정렬이 적용되게 됩니다. 

  - 숫자 1 = + 1 = 숫자가 커지는 = 숫자가 올라가는 = 오름차순
  - 숫자 -1 = 숫자가 작아지는 = 숫자가 내려가는 = 내림차순으로 기억을 하시면 좋을 것 같습니다. 

  - 그리고 네 번째 인수부터는 "정렬의 기준(by_array2) / 정렬 방법(sort_order2)을 쌍으로 지정하게 되며
  - 2번째, 3번째 정렬 기준을 지정해 주는 인수들입니다. 이렇게 2개 이상의 다중조건으로 정렬 기준을 지정할 수 있게 됩니다. 

  - 그리고 Sortby 함수는 별도의 행방향 정렬이나 열 방향 정렬이라는 옵션이 정해져 있지 않습니다. 
  - 그냥 array, by_array1 등의 인수를 행방향으로 지정하거나 열 방향으로 지정하게 되면 엑셀이 자동으로 데이터에 맞게 정열을 해주기 때문에 행 방향/열 방향 원하는 대로 사용을 해주시면 됩니다. ^^

  - 또한 심지어 정렬이 되는 데이터 범위(array)와 정렬의 기준이 되는 셀범위(by_array1, 2,..)가 전혀 다른 곳에 위치를 해도 
  - 개수(정렬하고자 하는 행, 열의 길이)만 같다면 정렬기준으로 지정해서 사용하는 것이 가능합니다. ^^
 
 
 
 
 

3. Sortby 함수 사용해 보기

 
  - 아래 판매 실적 데이터를 ① "지점" 기준으로 "오름차순"으로 ② "이익율" 기준의 "내림차순" 2가지 기준으로 정렬을 해보도록 하겠습니다.
 
 

Sortby 함수 사용해 보기
* Sortby 함수 사용해 보기

 
 
  - 1) 함수 입력 :  = SORTBY(

  - 수식 입력을 위한 등호 ( " = " )와 함수 Sortby를 입력하고 인수 입력을 위해서 괄호 열기를 키보드로 입력합니다. 


  - 2) 첫 번째 인수 array 입력하기 :  = SORT(B3:E7,

  - 첫 번째 인수는 array로 정렬하고자 하는 원본 데이터의 전체 영역을 마우스 드래그로 선택하여 셀 주소 "B3:E7"을 입력합니다.
  - 그리고 인수 구분자 쉼표 ( " , " )를 키보드로 입력합니다.


  - 3) 두 번째 인수 by_array1 입력하기 :  =SORTBY(B3:E7, C3:C7,

  - 두 번째 인수인 by_array1로 1번째 정렬 기준이 되는 셀 범위입니다. "지점"에 해당하는 "C3:C7" 범위를 마우스 드래그로 선택하여 셀 주소를 입력합니다. 
  - 다음 인수를 입력하기 위해서 인수 구분자 쉼표( " , " )를 입력합니다. 


  - 4) 세 번째 인수 sort_order1 입력하기 :  =SORTBY(B3:E7, C3:C7,1,

  - 1번째 정렬 기준("지점")에 대한 정렬 방법(sort_order)으로 "오름차순"으로 정렬하기 위해서 숫자 1을 인수로 입력합니다.
  - 다음 인수를 입력하기 위해서 인수 구분자 쉼표( " , " )를 입력합니다. 

  - Sortby 함수에서 정렬 방법 중에 "오름차순"의 경우 기본 옵션값인 숫자 1은 생략이 가능한데 
  - 생략 하고자 한다면 인수값 입력 없이 그냥 인수 구분자 쉼표( " , ")만을 입력하시면 됩니다. 

  - 인수 생략 시 : =SORTBY(B3:E7, C3:C7, ,


  - 5) 네 번째 인수 by_array2 입력하기 :  =SORTBY(B3:E7, C3:C7,1, E3:E7,

  - 다음으로 두 번째 정렬 기준이 되는 "이익율"에 해당하는 범위 "E3:E7"을 마우스로 선택하여 셀 주소를 입력합니다.
  - 그리고 인수 구분자 쉼표 ( " , " )를 키보드로 입력합니다.


  - 6) 다섯 번째 인수 sort_order2 입력하기 :  =SORTBY(B3:E7, C3:C7,1, E3:E7,-1)

  - 2번째 정렬 기준("이익율")에 대한 정렬 방법(sort_order)으로 "내림차순"으로 정렬하기 위해서 숫자 -1을 인수로 입력합니다.
  - 그리고 괄호 닫기를 입력하고 "Enter"키를 눌러서 수식 입력을 마무리합니다. 

  - Sortby 함수는 "동적 배열 함수"이기 때문에 배열 수식이지만 "Ctrl + Shif + Enter"의 기존의 배열함수처럼 입력해 줄 필요가 없습니다. 
  - 그냥 "Enter"을 눌러 수식을 입력하는 것만으로도 배열 수식 입력이 가능하며 결과 또한 "필요한 크기만큼의 배열 형태"로 출력이 됩니다. 
  - 이렇게 "Enter"만으로 배열수식을 입력하고 그 배열의 크기가 자동으로 확장되는 것을 "동적 배열 함수, 동적 배열 수식"이라고 합니다.

  - Sortby 함수로 정렬된 결괏값은 서식까지 자동으로 지정해주지 않기 때문에 "일자", "이익율"열은 날짜와 퍼센트 셀 서식을 지정해 줍니다. 

  - (셀 서식) 메뉴 패스 : 셀 범위 선택 > (마우스 우클릭) > 셀 서식 > "표시 형식" > "날짜" / "백분율"

  - 적용 수식 : SORTBY(B3:E7, C3:C7, 1, E3:E7, -1)
 
 

Sortby 함수 사용해 보기 - 다중 조건 정렬
* Sortby 함수 사용해 보기 - 다중 조건 정렬

 
 
 
 

4. Sort Vs. Sortby 함수 이해하기

 
  - Sort, Sortby 함수 모두 오름차순/내림차순으로 정렬을 해주는 함수입니다.
  - Sort 함수는 하나의 정렬 기준 적용을 주로 하고 Sortby 함수는 2개 이상의 다중정렬에 적용할 수 있습니다.

  - 1) 정렬 대상 지정
  - Sort 함수 : 원본 데이터의 범위 내의 특정 열을 기준으로 정렬
  - Sortby 함수 : 원본의 정렬 대상의 범위와 상관없이 임의의 열을 지정하여 정렬이 가능함

  - Sort 함수는 원본 데이터의 범위 안에서 임의의 열을 기준으로 정렬하는 것만 가능합니다. 
  - 하지만 Sortby 함수의 경우 길이만 같다면 원본 데이터 밖의 임의의 다른 열을 기준으로 정렬하는 것이 가능한 함수로 차이가 있습니다. 


  - 2) 정렬 대상 개수
  - Sort 함수 : 정렬 기준에 해당하는 열을 일반적으로 1개 지정 가능
  - Sortby 함수 : 2개 이상의 다중 정렬 지정이 가능함

  - Sort 함수는 기본적으로 1개의 열을 기준으로 오름차순 혹은 내림차순으로 정렬이 가능합니다.
  - 물론 배열형식으로 인수를 사용하게 되면 2개, 3개 등 의 여러 열을 기준으로 각각의 열별로 오름차순/내림차순을 지정해서 정렬이 가능지만 
  - 일반적으로 Sort 함수는 1개의 열을 기준으로 지정하는 것을 기본으로 하고 있습니다. 
  - 이에 반해 Sortby 함수는 처음부터 1개의 열 기준 정렬을 포함해서 2개 이상의 여러 개의 열을 기준으로 정렬을 고려해서 만들어진 함수입니다.


  - 3) 정렬 방향 지정
  - Sort 함수 : 행방향, 열 방향 지정이 필요, 기본은 행방향 정렬
  - Sortby 함수 : 별도의 행/열 방향지정 없이 사용 시 엑셀이 자동으로 구분해 줌

  - Sort 함수는 by_col 인수를 지정해서 행방향(by_Colunm) 혹은 열 방향(by_Row)을 구분해서 지정해줘야 합니다. 
  - 기본 값은 행방향으로 사용이 가능하며 열 방향으로 정렬하기 위해서는 by_col 인수를 False = 0의 값을 지정해 주는 것이 필요합니다.
  - 반면에 Sortby 함수는 입력된 방향을 엑셀이 인식해서 자동으로 행/열 방향의 정렬을 해주는 함수입니다.
 
 
 
 
 

5. Sort 함수에서 다중 조건 정렬 - 배열 인수 사용

 
  - 위의 예제와 동일하게 판매 실적 데이터를 ① "지점" 기준으로 "오름차순"으로 ② "이익율" 기준의 "내림차순"의 2가지 기준으로
  - 이번에는 Sort 함수에서 정열기준 열과 정렬 순서를 배열값으로 지정해서 다중 정렬을 하는 예제를 소개드리겠습니다. 
  - 배열로 지정된 인수 부분을 자세하게 보시고 참조하시기 바랍니다. 


  - 적용 수식 : =SORT(B3:E7, {2,4}, {1,-1})
 
 

Sort 함수 다중 조건 정렬 - 배열 인수 사용
* Sort 함수 다중 조건 정렬 - 배열 인수 사용

 
 
 
 
 

** 핵심 요약 : Sortby 함수 사용법 - 2개 이상의 다중 조건으로 정렬하기

 
1. 함수 설명

  - Sortby 함수는 최신 엑셀 프로그램(엑셀 2021, MS365)에서 사용이 가능한 함수이다.
  - Sortby 함수는 2개 이상의 다중 조건 정렬을 위함 함수이다.


2. Sortby 함수의 구문 / 사용방법

  - SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2],…) 
  - array    필수 요소입니다. 정렬할 범위 또는 배열
  - by_array1  정렬의 기준이 되는 배열 또는 범위
  - [sort_order1]  정렬에 사용할 순서. 1은 오름차순, -1은 내림차순 기본값은 오름차순입니다.
  - [by_array2]  정렬의 기준이 되는 배열 또는 범위
  - [sort_order2]  정렬에 사용할 순서. 1은 오름차순, -1은 내림차순 기본값은 오름차순입니다.

  - 첫 번째 인수는 array(= 배열, 셀 범위)는 정렬하고자 하는 원본데이터 범위로 원본 데이터 범위에 해당하는 셀 주소를 입력한다.

  - 두 번째 인수는 by_arry1로 정렬의 기준이 되는 범위로 어떤 열 혹은 행을 기준으로 정렬을 할 것인지 셀 주소로 지정해 준다.

  - 세 번째 인수는 sort_order1으로 첫 번째 정렬 범위에 적용될 정열(sort) 방법(order)으로 "생략 = 숫자 1"은 "오름차순"이 되고 숫자 -1은 "내림차순"을 기준으로 정렬이 적용된다.

  - 그리고 네 번째 인수부터는 "정렬의 기준(by_array2) / 정렬 방법(sort_order2)을 쌍으로 지정하면 된다.

  - 다만 Sortby 함수에서 지정되는 범위는 크기가 모두 같아야 한다.
  - 정렬 방향(행/열)의 구분은 별도 지정 없이 정렬기준이 되는 인수를 지정하는 방향에 따라서 엑셀이 자동으로 데이터에 맞게 정렬한다.


3. Sortby 함수 사용해 보기

  - 판매 실적 데이터를 ① "지점" 기준으로 "오름차순"으로 ② "이익율" 기준의 "내림차순"의 2가지 기준으로 정렬해 보자
  - 1) 함수 입력 :  = SORTBY(
  - 2) 첫 번째 인수 array 입력하기 :  = SORT(B3:E7,
  - 3) 두 번째 인수 by_array1 입력하기 :  =SORTBY(B3:E7, C3:C7,
  - 4) 세 번째 인수 sort_order1 입력하기 :  =SORTBY(B3:E7, C3:C7,1,
  - 5) 네 번째 인수 by_array2 입력하기 :  =SORTBY(B3:E7, C3:C7,1, E3:E7,
  - 6) 다섯 번째 인수 sort_order2 입력하기 :  =SORTBY(B3:E7, C3:C7,1, E3:E7,-1)


4. Sort Vs. Sortby 함수 이해하기

  - 1) 정렬 대상 지정
  - Sort 함수 : 원본 데이터의 범위 내의 특정 열을 기준으로 정렬
  - Sortby 함수 : 원본의 정렬 대상의 범위와 상관없이 윈본  데이터 밖의 임의의 열을 기준으로 정렬이 가능함

  - 2) 정렬 대상 개수
  - Sort 함수 : 정렬 기준에 해당하는 열을 일반적으로 1개 지정 가능
  - Sortby 함수 : 2개 이상의 다중 정렬 지정이 가능함

  - 3) 정렬 방향 지정
  - Sort 함수 : 행방향, 열 방향 지정이 필요 기본은 행방향 정렬
  - Sortby 함수 : 별도의 행/열 방향지정 없이 사용 시 엑셀이 자동으로 구분해 줌


5. Sort 함수에서 다중 조건 정렬 - 배열 인수 사용

  - 정렬할 행(sort_index)과 정렬 방식(sort_order)을  배열로 지정된 인수 부분을 자세하게 보고 참조하자.

  - 적용 수식 : =SORT(B3:E7, {2,4}, {1,-1})
 
 

28. 예제 Sortby 함수
0.01MB

 
 

[엑셀 함수 강좌-플러스] - 999. 엑셀 함수 Plus 목차
 

999. 엑셀 함수 Plus 목차

[엑셀 함수 강좌-플러스] - 001. (엑셀 함수 Plus) Text 함수 사용법 - 원하는 서식(포맷, 날짜/시간, 소수점, 퍼센트, 시간, 요일)을 텍스로 만들어 보자 [엑셀 함수 강좌-플러스] - 002. (엑셀 함수 Plus) Tr

nextmeok.tistory.com

 

 
 
 
* 엑셀 관련 궁금하신 거나 어려운 점이 있으시면 자유롭게 질문을 해주세요.
* 가능한 도움을 드릴 수 있도록 하겠습니다.
* 저도 많이 알지는 못하지만 누구나 그렇듯 시작이란 게 있고 경험이란 게 다를 것 같습니다.
* 편하게 문의하시면 됩니다. 저도 모를 수 있다. 감안해 주시고.

  - ILU, SH -

반응형

댓글