Excel

SortBy 함수 - by_array(정렬 기준 배열에 의한) 정렬

별동산 2023. 8. 16. 08:51
반응형

sortby함수.xlsx
0.01MB

 

 

 

 

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함수로 다섯 개 인수 입력 예

=SORTBY(A2:D17,A2:A17,-1,D2:D17,1)

라고 다섯 개 인수를 모두 입력하면

 

정렬할 범위는 A2:D17이고,

정렬 기준은 2개인데, 지역이 1차 정렬 기준, 판매량이 2차 정렬 기준이 되며,

지역은 내림차순, 판매량을 오름차순으로 정렬됩니다.

 

마. 열 방향 정렬

Sort함수의 경우는 두 번째, 세 번째 인수는 생략하고, 네 번째 인수로 TRUE라고,

P2셀에 =sort(a1:d17,,,True)

라고 입력하면 열 방향 정렬이 되는데,

Sort함수의 열 방향 정렬

 

SortBy함수의 경우는 정렬 기준을 열로 지정해야 하므로

P2셀에 =sortby(a1:d17,a1:d1)로 입력해야 합니다.

SortBy함수의 열 방향 정렬
열 방향 정렬

 

바. 정렬 기준을 인덱스 번호인 숫자로 입력하면 안 됨

=SORTBY(A1:D17,1)라고 두 번째 인수를 Sort함수와 같이 sort_index로 입력하면 #VALUE! 에러가 발생합니다.

by_array1이 범위 또는 배열이 아니어서 에러 발생

 

사. by_array1...n은 1열 또는 1행이어야지 2개 이상이면 에러 발생

행 방향을 기준으로 할 때는 1 열이어야 하며,

열 방향을 기준으로 할 때는 1행이어야 합니다.

 

따라서 =SORTBY(A2:D17,A2:D17)라고 정렬 기준을 4열로 지정하면 #VALUE! 에러가 발생합니다.

당연히 1열씩 여러 번 지정하는 것은 괜찮습니다.

SortBy함수의 by_array1 인수가 1열이 아님
by_array1이 1열이 아니라 4열이라서 에러 발생

 

아. sort_order1...n을 생략 가능, 그러면 오름차순이 됨

P2셀에 =SORTBY(A2:D17,A2:A17,,D2:D17,)라고 정렬 순서를 생략할 수 있습니다.

 

 

=SORTBY(A2:D17,A2:A17,,D2:D17)라고,

D2:D17 다음에 쉼표가 없으면 '너무 적은 인수를 입력했다'는 에러 메시지가 표시되는데 위에서 설명했습니다.

sortby 함수 - 너무 적은 인수 입력

 

sortby함수(완성).xlsx
0.01MB

 

반응형