=SORT(A2:C7,3,-1)은 표 A2:C7을 세 번째 열인 매출을 기준으로 큰 값부터 정렬해 반환합니다. 원래 표는 그대로 남고, 정렬된 사본이 수식 셀에서 분산되며 숫자가 바뀌면 스스로 다시 정렬합니다. C7을 300으로 바꾸면 Finn이 맨 위로 올라갑니다.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Name | Region | Sales | |
| 2 | Ann | North | 120 | Cara | North | 200 | |
| 3 | Ben | South | 80 | Dan | East | 150 | |
| 4 | Cara | North | 200 | Ann | North | 120 | |
| 5 | Dan | East | 150 | Eve | South | 95 | |
| 6 | Eve | South | 95 | Ben | South | 80 | |
| 7 | Finn | North | 60 | Finn | North | 60 |
SORT 구문
=SORT(array, [sort_index], [sort_order], [by_col])
array는 정렬해서 반환할 범위입니다.sort_index는array안에서 정렬 기준이 되는 열 번호입니다. 기본값은 1입니다.sort_order는 오름차순이면 1(기본값), 내림차순이면 -1입니다.by_col은 행을 정렬하려면 FALSE(기본값), 열을 왼쪽에서 오른쪽으로 정렬하려면 TRUE입니다.
SORT와 SORTBY는 Excel 2021, Excel 2024 또는 Microsoft 365가 필요하며, 이전 버전에서는 #NAME?이 표시됩니다. Google Sheets에도 둘 다 있지만, Google Sheets의 SORT는 열 번호와 TRUE 또는 FALSE를 쌍으로 받습니다.
오름차순은 숫자를 먼저, 그다음 텍스트를 A부터 Z 순으로, 그다음 FALSE와 TRUE를 놓습니다. 텍스트는 대소문자를 구분하지 않고 비교합니다. array의 빈 셀은 결과에서 0으로 돌아옵니다.
엑셀에서 가나다(알파벳)순으로 정렬하기
목록의 순서를 그 자리에서 바꾸려면 목록의 아무 셀이나 클릭하고 데이터 > 오름차순 정렬(또는 내림차순 정렬)을 고르세요. 목록 옆에 붙은 열이 있으면 엑셀은 각 행이 함께 움직이도록 표 전체를 정렬합니다. 열이 둘 이상이거나 사용자 지정 목록이 필요하면 데이터 > 정렬을 쓰세요.
원래 순서를 유지하면서 스스로 갱신되는 정렬 사본을 얻으려면 다른 인수 없이 SORT를 씁니다:
| A | B | C | |
|---|---|---|---|
| 1 | Name | A to Z | |
| 2 | Mia | Ann | |
| 3 | Ben | Ben | |
| 4 | Zoe | Cara | |
| 5 | Ann | Dan | |
| 6 | Leo | Leo | |
| 7 | Cara | Mia | |
| 8 | Dan | Zoe |
A3에 Abe를 입력하면 맨 앞에 나타납니다. =SORT(A2:A8,,-1)은 Z부터 A 순서이며, 쉼표 두 개는 sort_index를 건너뜁니다. 반복 없이 정렬하려면 UNIQUE의 결과를 정렬하세요: =SORT(UNIQUE(A2:A8))(UNIQUE 참고).
SORTBY: 반환하지 않는 열로 정렬하기
SORT는 반환하는 범위의 열로만 정렬할 수 있습니다. SORTBY는 정렬 기준을 별도의 범위로 받으므로 이름만 매출 순서로 반환할 수 있습니다:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Name | Region | Sales | By sales | |
| 2 | Ann | North | 120 | Cara | |
| 3 | Ben | South | 80 | Dan | |
| 4 | Cara | North | 200 | Ann | |
| 5 | Dan | East | 150 | Eve | |
| 6 | Eve | South | 95 | Ben | |
| 7 | Finn | North | 60 | Finn |
결과는 Cara, Dan, Ann, Eve, Ben, Finn입니다. 구문은 =SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2], ...)입니다. 각 by_array의 행 수는 array와 같아야 하며, 그렇지 않으면 SORTBY는 #VALUE!를 반환합니다.
상위 3개를 얻으려면 결과의 처음 행을 가져오세요: =TAKE(SORTBY(A2:A7,C2:C7,-1),3)은 Cara, Dan, Ann을 반환합니다. TAKE는 Microsoft 365나 Excel 2024가 필요하며, Excel 2021에서는 =INDEX(SORTBY(A2:A7,C2:C7,-1),SEQUENCE(3))을 쓰세요.
여러 열을 기준으로 정렬하기
SORTBY에 단계마다 기준과 순서의 쌍을 하나씩 줍니다. 다음은 지역을 오름차순으로, 각 지역 안에서는 매출을 큰 값부터 정렬합니다:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Name | Region | Sales | |
| 2 | Ann | North | 120 | Dan | East | 150 | |
| 3 | Ben | South | 80 | Cara | North | 200 | |
| 4 | Cara | North | 200 | Ann | North | 120 | |
| 5 | Dan | East | 150 | Finn | North | 60 | |
| 6 | Eve | South | 95 | Eve | South | 95 | |
| 7 | Finn | North | 60 | Ben | South | 80 |
East가 먼저 오고, 그다음 North 세 행이 Cara(200), Ann(120), Finn(60) 순서로, 그다음 South가 옵니다. SORT도 열 번호와 순서의 배열로 같은 일을 할 수 있지만 SORTBY가 읽기 쉽습니다:
=SORT(A2:C7,{2,3},{1,-1})
사용자 지정 순서로 정렬하기
원하는 순서가 항상 가나다순인 것은 아닙니다. 지역을 North, East, South 순서로 정렬하려면 MATCH로 각 지역을 그 목록에서의 위치로 바꾸고 위치로 정렬하세요:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Name | Region | Sales | Name | Region | Sales | |
| 2 | Ann | North | 120 | Ann | North | 120 | |
| 3 | Ben | South | 80 | Cara | North | 200 | |
| 4 | Cara | North | 200 | Finn | North | 60 | |
| 5 | Dan | East | 150 | Dan | East | 150 | |
| 6 | Eve | South | 95 | Ben | South | 80 | |
| 7 | Finn | North | 60 | Eve | South | 95 |
MATCH는 North에 1, East에 2, South에 3을 반환하고 SORTBY가 그 숫자로 정렬합니다. 기준이 같은 행은 원래 순서를 유지하므로 North 행은 Ann, Cara, Finn 순서로 남습니다. 같은 방법으로 월이나 요일을 이름으로 정렬할 수 있습니다. MATCH 안에 달력 순서대로 나열하면 됩니다. 목록에 없는 지역은 MATCH에서 #N/A를 받습니다. 그런 행을 마지막에 두려면 기준으로 IFERROR(MATCH(B2:B7,{"North","East","South"},0),99)를 쓰세요.
연습: 매출 순서의 이름
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Name | Region | Sales | By sales | |
| 2 | Ann | North | 120 | ||
| 3 | Ben | South | 80 | ||
| 4 | Cara | North | 200 | ||
| 5 | Dan | East | 150 | ||
| 6 | Eve | South | 95 | ||
| 7 | Finn | North | 60 |
직접 해 보세요: E2에서 이름만 매출이 높은 순서로 반환하세요.
SORT 함수와 정렬 버튼
둘 다 정렬하지만 하는 일이 다릅니다:
| 데이터 > 정렬 | SORT와 SORTBY | |
|---|---|---|
| 원래 표를 바꿈 | 예 | 아니요, 결과는 새 셀에 |
| 데이터가 바뀌면 갱신 | 아니요, 다시 정렬 | 예 |
| Excel 2019 이하에서 동작 | 예 | 아니요 |
| 결과를 셀마다 고칠 수 있음 | 예 | 아니요, 수식 하나 |
| 다른 수식으로 감쌀 수 있음 | 아니요 | 예, 예를 들어 =TAKE(SORT(A2:C7,3,-1),3) |
표를 한 번 정리할 때는 버튼을 쓰세요. 데이터가 바뀌는 동안에도 정렬을 유지해야 하는 보고서나 대시보드에는 함수를 쓰세요. 수식 아래나 오른쪽 셀이 비어 있지 않으면 함수는 정렬된 목록 대신 #SPILL!을 표시합니다. 그 셀을 비우면 목록이 나타납니다(#SPILL! 오류 참고).
자주 묻는 질문
엑셀에서 수식으로 데이터를 정렬하려면 어떻게 하나요?
SORT를 씁니다: =SORT(A2:C7,3,-1)은 A2:C7을 세 번째 열 기준 큰 값부터 정렬해 반환합니다. 마지막 두 인수를 생략한 =SORT(A2:A8)은 첫 번째 열을 기준으로 작은 값부터, 텍스트라면 A부터 Z 순으로 정렬합니다.
SORT와 SORTBY의 차이는 무엇인가요?
SORT는 반환하는 범위의 열 중 번호로 고른 열을 기준으로 정렬합니다. SORTBY는 반환하지 않는 범위라도 지정한 범위를 기준으로 정렬합니다: =SORTBY(A2:A7,C2:C7,-1)은 이름만 매출 순서로 반환합니다. SORTBY는 정렬 기준 여러 개도 바로 받습니다.
엑셀에서 목록을 가나다(알파벳)순으로 정렬하려면 어떻게 하나요?
목록의 셀 하나를 선택하고 데이터 > 오름차순 정렬을 클릭하면 그 자리에서 순서가 바뀝니다. 원본을 유지하고 갱신되는 정렬 사본을 얻으려면 빈 셀에 =SORT(A2:A8)을 입력하세요. 내림차순은 =SORT(A2:A8,,-1)입니다.
수식으로 두 열을 기준으로 정렬하려면 어떻게 하나요?
SORTBY에 기준과 순서의 쌍을 두 개 줍니다: =SORTBY(A2:C7,B2:B7,1,C2:C7,-1)은 지역을 오름차순으로, 각 지역 안에서는 매출을 큰 값부터 정렬합니다.
SORT와 SORTBY는 어느 엑셀 버전에 있나요?
Excel 2021, Excel 2024, Microsoft 365에 있습니다. Excel 2019 이하에서는 #NAME?이 표시되며, 데이터 탭의 정렬 버튼으로 정렬해야 합니다.