Excel SORT 기능 - 수식을 사용하여 데이터 자동 정렬

  • 이 공유
Michael Brown

자습서는 SORT 함수를 사용하여 데이터 배열을 동적으로 정렬하는 방법을 보여줍니다. Excel에서 알파벳순으로 정렬하고, 숫자를 오름차순 또는 내림차순으로 정렬하고, 여러 열로 정렬하는 등의 공식을 배웁니다.

정렬 기능은 오랫동안 사용되어 왔습니다. 그러나 Excel 365에 동적 배열이 도입되면서 수식을 사용하여 놀랍도록 간단한 정렬 방법이 등장했습니다. 이 방법의 장점은 소스 데이터가 변경될 때 결과가 자동으로 업데이트된다는 것입니다.

    Excel SORT 기능

    Excel의 SORT 기능은 배열 또는 오름차순 또는 내림차순으로 열 또는 행별로 범위를 지정합니다.

    SORT는 동적 배열 함수 그룹에 속합니다. 결과는 소스 배열의 모양에 따라 수직 또는 수평으로 인접한 셀에 자동으로 퍼지는 동적 배열입니다.

    SORT 함수의 구문은 다음과 같습니다.

    SORT(array, [sort_index ], [sort_order], [by_col])

    여기서:

    Array (필수) - 정렬할 값의 배열 또는 셀 범위입니다. 텍스트, 숫자, 날짜, 시간 등을 포함한 모든 값이 될 수 있습니다.

    Sort_index (선택 사항) - 정렬 기준이 되는 열 또는 행을 나타내는 정수입니다. 생략하면 기본 인덱스 1이 사용됩니다.

    Sort_order (선택 사항) - 정렬 순서 정의:

    • 1 또는 생략됨(기본값) - 오름차순 , 즉수식(.xlsx 파일) 최소에서 최대로
    • -1 - 내림차순, 즉 최대에서 최소로

    By_col(선택 사항) - 정렬 방향을 나타내는 논리 값:

    • FALSE 또는 생략(기본값) - 행별로 정렬합니다. 대부분의 경우 이 옵션을 사용합니다.
    • TRUE - 열별로 정렬합니다. 이 예와 같이 데이터가 열에 수평으로 구성되어 있는 경우 이 옵션을 사용하십시오.

    Excel SORT 함수 - 팁 및 참고사항

    SORT는 새로운 동적 배열 함수이며 이와 같이 알아야 할 몇 가지 세부 사항:

    • 현재 SORT 함수는 Microsoft 365 및 Excel 2021에서만 사용할 수 있습니다. Excel 2019, Excel 2016은 동적 배열 수식을 지원하지 않으므로 SORT 함수는 이 버전에서는 사용할 수 없습니다.
    • SORT 수식에 의해 반환된 배열이 최종 결과인 경우(즉, 다른 함수에 전달되지 않은 경우) Excel은 적절한 크기의 범위를 동적으로 생성하고 정렬된 값으로 채웁니다. 따라서 수식을 입력하는 셀의 아래쪽 또는/및 오른쪽에 항상 충분한 빈 셀이 있는지 확인하십시오. 그렇지 않으면 #SPILL 오류가 발생합니다.
    • 소스 데이터가 변경되면 결과가 동적으로 업데이트됩니다. 그러나 수식에 제공된 array 는 참조된 array 외부에 추가된 새 항목을 포함하도록 자동으로 확장되지 않습니다. 이러한 항목을 포함하려면 수식에서 배열 참조를 업데이트하거나이 예와 같이 소스 범위를 테이블로 변환하거나 동적 명명 범위를 생성합니다.

    기본 Excel SORT 수식

    이 예는 Excel에서 데이터를 정렬하기 위한 기본 수식을 보여줍니다. 오름차순 및 내림차순입니다.

    데이터가 아래 스크린샷과 같이 알파벳순으로 정렬되어 있다고 가정합니다. 데이터를 나누거나 혼합하지 않고 B열의 숫자를 정렬하려고 합니다.

    오름차순으로 정렬하는 수식

    B열의 값을 가장 작은 값에서 가장 큰 값으로 정렬하기 위해 사용할 수식은 다음과 같습니다.

    =SORT(A2:B8, 2, 1)

    여기서:

    • A2:B8은 소스 배열입니다.
    • 2는 정렬할 열 번호입니다.
    • 1은 오름차순 정렬 순서입니다.

    데이터가 행으로 구성되어 있으므로 마지막 인수를 생략하여 기본값인 FALSE(행별로 정렬)로 지정할 수 있습니다.

    에 수식을 입력하기만 하면 됩니다. 비어 있는 셀(이 경우 D2)에서 Enter 키를 누르면 결과가 자동으로 D2:E8로 확장됩니다.

    내림차순으로 정렬할 수식

    데이터를 내림차순으로 정렬하려면(즉, 큰 것에서 작은 것 순으로) sort_order 인수를 다음과 같이 -1로 설정합니다.

    =SORT(A2:B8, 2, -1)

    의 왼쪽 상단 셀에 수식을 입력합니다. 대상 범위와 다음 결과를 얻습니다.

    유사한 방식으로 텍스트 값을 알파벳순으로 A에서 Z로 또는 Z에서 A로 정렬할 수 있습니다.

    f를 사용하여 Excel에서 데이터를 정렬하는 방법 ormula

    아래 예는 Excel에서 SORT 함수의 몇 가지 일반적인 사용을 보여줍니다.

    Excel SORT by column

    Excel에서 데이터를 정렬할 때 대부분 행의 순서를 변경합니다. 그러나 데이터가 레이블이 포함된 행과 레코드가 포함된 열로 구성된 경우 위에서 아래가 아닌 왼쪽에서 오른쪽으로 정렬해야 할 수 있습니다.

    Excel에서 열을 기준으로 정렬하려면 by_col 인수를 TRUE로 설정합니다. 이 경우 sort_index 는 열이 아닌 행을 나타냅니다.

    예를 들어 아래 데이터를 수량별로 정렬합니다. 내림차순으로 다음 수식을 사용합니다.

    =SORT(B1:H2, 2, 1, TRUE)

    여기서:

    • B1:H2는 정렬할 소스 데이터입니다.
    • 2는 정렬 인덱스, 두 번째 행의 숫자를 정렬하므로
    • -1은 내림차순 정렬 순서를 나타냅니다.
    • TRUE는 행이 아닌 열을 정렬함을 의미합니다

    여러 열을 다른 순서로 정렬(다단계 정렬)

    복잡한 데이터 모델로 작업할 때 종종 다단계 정렬이 필요할 수 있습니다. 수식으로 할 수 있습니까? 그래, 쉽게! sort_index sort_order 인수에 대한 배열 상수를 제공하는 것입니다.

    예를 들어 아래 데이터를 먼저 Region 기준으로 정렬하려면 (컬럼 A) A에서 Z까지, 그리고 수량 . (열 C) 작은 것부터 큰 것까지 다음 인수를 설정합니다.

    • Array 는 A2:C13의 데이터입니다.
    • Sort_index 는 배열 상수 {1,3}입니다. 먼저 Region (첫 번째열), 수량 순입니다. (세 번째 열).
    • Sort_order 는 배열 상수 {1,-1}입니다. 첫 번째 열은 오름차순으로 세 번째 열은 내림차순으로 정렬되기 때문입니다.
    • By_col 은 기본값인 행을 정렬하기 때문에 생략됩니다.

    인수를 종합하면 다음 공식을 얻습니다.

    =SORT(A2:C13, {1,3}, {1,-1})

    그리고 완벽하게 작동합니다! 첫 번째 열의 텍스트 값은 알파벳순으로 정렬되고 세 번째 열의 숫자는 큰 것부터 작은 것까지 정렬됩니다.

    Excel에서 정렬 및 필터링

    경우 몇 가지 기준으로 데이터를 필터링하고 출력을 정렬하려는 경우 SORT 및 FILTER 함수를 함께 사용하십시오.

    SORT(FILTER(array, criteria_range= criteria) , [sort_index], [sort_order], [by_col])

    FILTER 함수는 정의한 기준에 따라 값의 배열을 가져오고 해당 배열을 SORT의 첫 번째 인수에 전달합니다.

    가장 좋은 점은 이 수식에 대한 중요한 점은 Ctrl + Shift + Enter를 누르거나 복사할 셀 수를 추측하지 않고도 결과를 동적 유출 범위로 출력한다는 것입니다. 평소와 같이 맨 위에 있는 셀에 수식을 입력하고 Enter 키를 누릅니다.

    예를 들어 수량이 30(>=30) 이상인 항목을 A2:B9에 소스 데이터를 입력하고 결과를 오름차순으로 정렬합니다.

    이를 위해 먼저 다음과 같이 조건을 설정합니다.아래 이미지와 같이 셀 E2. 그런 다음 다음과 같은 방식으로 Excel SORT 수식을 작성합니다.

    =SORT(FILTER(A2:B9, B2:B9>=E2), 2)

    FILTER 함수에 의해 생성된 array 외에 sort_index<2만 지정합니다> 인수(열 2). 나머지 두 인수는 기본값이 정확히 필요한 대로 작동하기 때문에 생략됩니다(행별로 오름차순 정렬).

    N개의 가장 큰 값 또는 가장 작은 값을 가져와서 결과를 정렬

    대량의 정보를 분석할 때 특정 수의 최상위 값을 추출해야 하는 경우가 많습니다. 추출하는 것뿐만 아니라 원하는 순서로 배열할 수도 있습니다. 이상적으로는 결과에 포함할 열을 선택합니다. 까다로운 것 같나요? 새로운 동적 배열 함수는 아닙니다!

    다음은 일반 공식입니다.

    INDEX(SORT(…), SEQUENCE( n), { column1_to_return, column2_to_return, …})

    여기서 n 는 반환하려는 값의 수입니다.

    아래 데이터 세트에서 C 열의 숫자를 기반으로 하는 상위 3개 목록입니다.

    이 작업을 완료하려면 먼저 배열 A2:C13을 세 번째 열을 기준으로 내림차순으로 정렬합니다.

    SORT(A2:C13, 3, -1)

    그런 다음 위 수식을 INDEX 함수의 첫 번째( array ) 인수에 중첩하여 배열을 가장 높은 것부터 가장 작은 것까지 정렬합니다.

    두 번째( row_num ) 반환할 행 수를 나타내는 인수는 SEQUENCE 함수를 사용하여 필요한 일련 번호를 생성합니다. 처럼3개의 상위 값이 필요하므로 SEQUENCE(3)를 사용합니다. 이는 수식에서 직접 수직 배열 상수 {1;2;3}를 제공하는 것과 동일합니다.

    세 번째( col_num ) 반환할 열 수를 정의하는 인수는 열 번호를 가로 배열 상수 형식으로 제공합니다. 열 B와 C를 반환하려고 하므로 배열 {2,3}을 사용합니다.

    결국 다음 공식을 얻습니다.

    =INDEX(SORT(A2:C13, 3, -1), SEQUENCE(3), {2,3})

    정확히 우리가 원하는 결과:

    3개의 bottom 값을 반환하려면 원래 데이터를 작은 것에서 큰 것으로 정렬하면 됩니다. 이를 위해 sort_order 인수를 -1에서 1로 변경:

    =INDEX(SORT(A2:C13, 3, 1), SEQUENCE(3), {2,3})

    정렬된 값을 특정 위치에 반환

    다른 각도에서 보면 특정 정렬 위치만 반환하고 싶다면? 예를 들어, 정렬된 목록에서 1st만, 2nd만 또는 3rd 레코드만? 이를 수행하려면 위에서 설명한 INDEX SORT 수식의 단순화된 버전을 사용하십시오.

    INDEX(SORT(…), n, { column1_to_return, column2_to_return, …})

    여기서 n 는 관심 위치입니다.

    예를 들어 위에서부터(즉, 내림차순으로 정렬된 데이터에서) 특정 위치를 가져오려면 다음 공식을 사용하세요. :

    =INDEX(SORT(A2:C13, 3, -1), F1, {2,3})

    아래에서 특정 위치를 가져오려면(즉, 오름차순으로 정렬된 데이터에서) 다음을 사용합니다.

    =INDEX(SORT(A2:C13, 3, 1), I1, {2,3})

    여기서 A2: C13은 소스 데이터, F1은 위에서부터의 위치, I1은 위에서부터의 위치입니다.bottom 및 {2,3}은 반환할 열입니다.

    Excel 테이블을 사용하여 정렬 배열을 자동으로 확장합니다.

    이미 알고 있듯이 , 원본 데이터를 변경하면 정렬된 배열이 자동으로 업데이트됩니다. 이것은 SORT를 포함한 모든 동적 배열 함수의 표준 동작입니다. 그러나 참조된 배열 외부에 새 항목을 추가하면 수식에 자동으로 포함되지 않습니다. 수식이 이러한 변경 사항에 대응하도록 하려면 소스 범위를 완전히 작동하는 Excel 표로 변환하고 수식에서 구조화된 참조를 사용하세요.

    실제 작동 방식을 확인하려면 다음을 고려하세요. 예.

    아래 Excel SORT 수식을 사용하여 A2:B8 범위의 값을 알파벳순으로 정렬한다고 가정합니다.

    =SORT(A2:B8, 1, 1)

    그런 다음 행 9… 그리고 새로 추가된 항목이 유출 범위 밖에 있는 것을 보고 실망했습니다.

    이제 소스 범위를 테이블로 변환합니다. 이를 위해 열 머리글(A1:B8)을 포함하여 범위를 선택하고 Ctrl + T를 누릅니다. 수식을 작성할 때 마우스를 사용하여 소스 범위를 선택하면 테이블 이름이 수식에 자동으로 삽입됩니다(구조적 참조라고 함).

    =SORT(Table1, 1, 1)

    a를 입력하면 마지막 행 바로 아래에 새 항목이 있으면 테이블이 자동으로 확장되고 새 데이터가 유출 범위에 포함됩니다.SORT 수식의:

    Excel SORT 함수가 작동하지 않음

    SORT 수식에서 오류가 발생하는 경우 다음과 같은 이유 때문일 가능성이 큽니다.

    #NAME 오류: 이전 Excel 버전

    SORT는 새로운 기능이며 Excel 365 및 Excel 2021에서만 작동합니다. 이 기능이 지원되지 않는 이전 버전에서는 #NAME? 오류가 발생합니다.

    #SPILL 오류: 무언가가 유출 범위를 차단합니다.

    유출 범위에 있는 하나 이상의 셀이 완전히 비어 있거나 병합되지 않은 경우 #SPILL! 오류가 표시됩니다. 문제를 해결하려면 막힌 부분을 제거하면 됩니다. 자세한 내용은 Excel #SPILL!을 참조하십시오. 오류 - 의미 및 해결 방법.

    #VALUE 오류: 잘못된 인수

    #VALUE! 오류, sort_index sort_order 인수를 확인하십시오. Sort_index array sort_order<인 열 수를 초과하지 않아야 합니다. 2>는 1(오름차순) 또는 -1(내림차순)이어야 합니다.

    #REF 오류: 원본 통합 문서가 닫혀 있습니다.

    동적 배열은 통합 문서 간의 참조에 대한 지원이 제한적이기 때문에 SORT 함수는 두 파일이 모두 열려 있어야 합니다. 원본 통합 문서가 닫히면 수식이 #REF! 오류. 이를 수정하려면 참조된 파일을 열면 됩니다.

    수식을 사용하여 Excel에서 데이터를 정렬하는 방법입니다. 읽어 주셔서 감사합니다. 다음 주 블로그에서 뵙기를 바랍니다!

    다운로드용 워크북 연습

    Excel에서 정렬

    Michael Brown은 소프트웨어 도구를 사용하여 복잡한 프로세스를 단순화하려는 열정을 가진 열성적인 기술 애호가입니다. 기술 산업에서 10년 이상의 경험을 쌓은 그는 Microsoft Excel 및 Outlook은 물론 Google 스프레드시트 및 문서 도구에 대한 기술을 연마했습니다. Michael의 블로그는 자신의 지식과 전문 지식을 다른 사람과 공유하는 데 전념하며 따라하기 쉬운 팁과 생산성 및 효율성 향상을 위한 자습서를 제공합니다. 노련한 전문가이든 초보자이든 Michael의 블로그는 이러한 필수 소프트웨어 도구를 최대한 활용하기 위한 귀중한 통찰력과 실용적인 조언을 제공합니다.