1. 의미
정렬할 범위를 지정한 다음, Xlookup 함수와 유사하게 정렬 기준 항목과 정렬 순서를 지정해서 정렬하는 것입니다.
Sort 함수의 경우는 sort_index(정렬 순번, 정렬 기준 항목)라고 숫자로 지정하는데, SortBy함수는 정렬 기준 항목을 열 전체로 지정하고, 정렬 순서를 순서대로 지정하는 것이 다릅니다.
2. 구문
=SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2],…)
첫 번째 인수인 array(정렬할 배열 또는 범위)와
두 번째 인수인 by_array1(정렬 기준 1인 배열 또는 범위)만 필수적인 요소이며,
세 번째 인수인 sort_order1(정렬 순서 1),
네 번째 인수인 by_array2(정렬 기준 2인 배열 또는 범위)와
다섯 번째 인수인 sort_order2(정렬 순서 2)는 선택적인 인수입니다.
그런데, 네 번째 인수와 다섯 번째 인수가 함께 선택적 인수이므로 입력할 때는 두 개를 같이 입력해야 하며, 하나만 입력하면 안 됩니다.
두 번째 인수는 행 방향(위쪽에서 아래쪽) 일 때는 1열,
열 방향(왼쪽에서 오른쪽) 일 때는 1행이어야 합니다.
sort_order은 Sort 함수와 같이 1은 오름차순, -1은 내림차순입니다.
3. 사용 예
가. Sort함수와 SortBy함수의 비교
(1) Sort 함수
첫 번째 인수인 정렬 범위만 필수적인 요소이고, 두 번째 인수인 sort_index(정렬 순번, 정렬 기준 항목)은 옵션으로 기본값이 1이 됩니다.
(2) SortBy 함수
첫 번째 인수인 정렬 범위(array)와 두 번째 인수인 정렬 기준 범위 및 배열(by_array)은 필수적인 요소입니다.
따라서 위와 같은 결과를 얻으려면
=SORTBY(A2:D17,A2:A17)라고, 두 번째 인수까지는 반드시 입력해야 합니다.
또한 Sort함수와 같이 머리글은 A1셀부터 D1셀의 내용을 복사해서 K1셀에 붙여 넣어야 합니다.
나. SortBy함수로 세 개 인수 입력 예
F열부터 N열까지 선택한 후 열 경계선을 더블 클릭해서 열 너비를 자동 조절하고,
i열과 n열만 선택한 후 홈 탭 표시 형식 그룹에서 ,(쉼표)를 클릭해서 천 단위 구분 기호를 삽입니다.
그리고, K2셀에 =SORTBY(A2:D17,A2:A17,-1)라고 입력하면
정렬할 범위는 A2:D17이고,
정렬 기준은 A2셀에서 A17까지인 지역이 되고,
정렬 순서는 내림차순이 됩니다.
다. SortBy함수로 네 개 인수를 입력하면 에러 발생
K2셀에 =SORTBY(A2:D17,A2:A17,-1,d2:d17)라고, 네 번째 인수까지만 입력하면 '이 함수에 대해 너무 적은 인수를 입력했다'는 에러 메시지가 표시됩니다. 따라서, 확인 버튼을 누르고, 네 번째 인수를 입력했을 때는 짝인 다섯 번째 인수까지 입력해야 합니다.
라. SortBy함수로 다섯 개 인수 입력 예
=SORTBY(A2:D17,A2:A17,-1,D2:D17,1)
라고 다섯 개 인수를 모두 입력하면
정렬할 범위는 A2:D17이고,
정렬 기준은 2개인데, 지역이 1차 정렬 기준, 판매량이 2차 정렬 기준이 되며,
지역은 내림차순, 판매량을 오름차순으로 정렬됩니다.
마. 열 방향 정렬
Sort함수의 경우는 두 번째, 세 번째 인수는 생략하고, 네 번째 인수로 TRUE라고,
P2셀에 =sort(a1:d17,,,True)
라고 입력하면 열 방향 정렬이 되는데,
SortBy함수의 경우는 정렬 기준을 열로 지정해야 하므로
P2셀에 =sortby(a1:d17,a1:d1)로 입력해야 합니다.
바. 정렬 기준을 인덱스 번호인 숫자로 입력하면 안 됨
=SORTBY(A1:D17,1)라고 두 번째 인수를 Sort함수와 같이 sort_index로 입력하면 #VALUE! 에러가 발생합니다.
사. by_array1...n은 1열 또는 1행이어야지 2개 이상이면 에러 발생
행 방향을 기준으로 할 때는 1 열이어야 하며,
열 방향을 기준으로 할 때는 1행이어야 합니다.
따라서 =SORTBY(A2:D17,A2:D17)라고 정렬 기준을 4열로 지정하면 #VALUE! 에러가 발생합니다.
당연히 1열씩 여러 번 지정하는 것은 괜찮습니다.
아. sort_order1...n을 생략 가능, 그러면 오름차순이 됨
P2셀에 =SORTBY(A2:D17,A2:A17,,D2:D17,)라고 정렬 순서를 생략할 수 있습니다.
=SORTBY(A2:D17,A2:A17,,D2:D17)라고,
D2:D17 다음에 쉼표가 없으면 '너무 적은 인수를 입력했다'는 에러 메시지가 표시되는데 위에서 설명했습니다.
'Excel' 카테고리의 다른 글
Microsoft 365의 달라진 메모 기능 (0) | 2023.08.19 |
---|---|
동적 배열 수식과 유출된(Spilled) 범위 연산자 # (0) | 2023.08.17 |
Sort 함수(2) - 인수 입력 방법 (0) | 2023.08.15 |
Sort 함수(1) - 정렬 명령과 비교 (0) | 2023.08.14 |
Index와 Aggregate 함수의 결합 (0) | 2023.08.13 |