목차
오늘은 새로운 동적 배열 SORTBY 함수의 구문과 일반적인 사용에 대해 자세히 살펴보겠습니다. 수식을 사용하여 Excel에서 사용자 지정 정렬, 목록을 임의로 정렬, 텍스트 길이에 따라 셀 정렬 등의 방법을 배웁니다.
Microsoft Excel은 텍스트 데이터를 사전순으로 정렬하는 여러 가지 방법, 날짜, 날짜를 제공합니다. 연대순으로, 가장 작은 것부터 가장 큰 것까지 또는 가장 높은 것부터 가장 낮은 것까지 번호를 매깁니다. 사용자 지정 목록별로 정렬하는 방법도 있습니다. 기존의 정렬 기능 외에도 Excel 365는 수식을 사용하여 데이터를 정렬하는 완전히 새로운 방법을 도입했습니다. 매우 편리하고 사용이 매우 간단합니다!
Excel SORTBY 기능
Excel의 SORTBY 함수는 다른 범위 또는 배열의 값을 기준으로 하나의 범위 또는 배열을 정렬하도록 설계되었습니다. 정렬은 하나 또는 여러 열로 수행할 수 있습니다.
SORTBY는 Microsoft 365 및 Excel 2021용 Excel에서 사용할 수 있는 6개의 새로운 동적 배열 함수 중 하나입니다. 소스 데이터가 변경됩니다.
SORTBY 함수에는 가변 개수의 인수가 있습니다. 처음 두 개는 필수이고 나머지는 선택 사항입니다.
SORTBY(array, by_array1, [sort_order1], [by_array2, sort_order2] ,…)Array (필수) - 정렬할 셀 범위 또는 값 배열.
By_array1 (필수) - 범위 또는 배열 정렬하다by.
Sort_order1 (옵션) - 정렬 순서:
- 1 또는 생략(기본값) - 오름차순
- -1 - 내림차순
By_array2 / Sort_order2 , … (선택 사항) - 정렬에 사용할 추가 배열/순서 쌍입니다.
중요 참고 사항! 현재 SORTBY 기능은 Microsoft 365 구독 및 Excel 2021에서만 사용할 수 있습니다. Excel 2019, Excel 2016 및 이전 버전에서는 SORTBY 기능을 사용할 수 없습니다.
SORTBY 기능 - 기억해야 할 4가지 사항
Excel SORTBY 수식이 올바르게 작동하려면 다음과 같은 몇 가지 중요한 사항에 유의해야 합니다.
- By_array 인수는 한 행 높이 또는 한 열 너비여야 합니다.
- array 및 모든 by_array 인수는 크기가 호환되어야 합니다. 예를 들어 두 개의 열을 기준으로 정렬할 때 array , by_array1 및 by_array2 는 동일한 수의 행을 가져야 합니다. 그렇지 않으면 #VALUE 오류가 발생합니다.
- SORTBY에서 반환된 배열이 최종 결과(셀에 출력되고 다른 함수로 전달되지 않음)인 경우 Excel은 동적 유출 범위를 만들고 결과로 채웁니다. 따라서 수식을 입력하는 셀의 아래쪽 및/또는 오른쪽에 충분한 빈 셀이 있는지 확인하십시오. 그렇지 않으면 #SPILL 오류가 발생합니다.
- SORTBY 수식의 결과는 소스 데이터가 변경됩니다. 그러나 외부에 추가된 새 항목은수식에서 참조하는 배열은 배열 참조를 업데이트하지 않는 한 결과에 포함되지 않습니다. 참조된 배열이 자동으로 확장되도록 하려면 소스 범위를 Excel 표로 변환하거나 동적 이름이 지정된 범위를 만드십시오.
Excel의 기본 SORTBY 수식
다음은 Excel의 SORTBY 수식:
값 필드가 있는 프로젝트 목록이 있다고 가정합니다. 별도의 시트에서 해당 값을 기준으로 프로젝트를 정렬하려고 합니다. 다른 사용자가 숫자를 볼 필요가 없으므로 결과에 값 열을 포함하지 않는 것이 좋습니다.
이 작업은 SORTBY 기능을 사용하여 쉽게 수행할 수 있습니다. 다음 인수를 제공하십시오.
- Array is A2:A10 - Value 열이 결과에 표시되는 것을 원하지 않으므로 그대로 두십시오. 배열에서 벗어났습니다.
- By_array1 은 B2:B10입니다. - Value 로 정렬합니다.
- Sort_order1 은 -1입니다. 내림차순, 즉 최고에서 최저로.
인수를 종합하면 다음 공식을 얻을 수 있습니다.
=SORTBY(A2:B10, B2:B10, -1)
단순화를 위해 동일한 공식을 사용합니다. 시트 - D2에 입력하고 Enter 키를 누릅니다. 결과는 필요한 만큼의 셀에 자동으로 "유출"됩니다(이 경우 D2:D10). 그러나 기술적으로 수식은 첫 번째 셀에만 있으며 D2에서 삭제하면 모든 결과가 삭제됩니다.
다른 시트에 사용될 때 수식은다음 모양:
=SORTBY(Sheet1!A2:A10, Sheet1!B2:B10, -1)
여기서 Sheet1 은 원본 데이터가 포함된 워크시트입니다.
Excel에서 SORTBY 함수 사용 - 수식 예
아래에서 SORTBY 사용에 대한 몇 가지 추가 예를 찾을 수 있으며 유용하고 통찰력 있는 것으로 입증될 것입니다.
여러 열로 정렬
위에서 설명한 기본 수식은 데이터를 한 열로 정렬합니다. 하지만 정렬 수준을 한 단계 더 추가해야 한다면 어떻게 될까요?
샘플 테이블에 상태 (열 B) 및 값(열 C) 의 두 필드가 있다고 가정합니다. , 먼저 Status 로 정렬한 다음 Value 내림차순으로 정렬하려고 합니다.
두 열로 정렬하려면 by_array / sort_order arguments:
- Array is A2:C10 - 이번에는 결과에 세 열을 모두 포함하려고 합니다.
- By_array1 은 B2:B10입니다. 먼저 Status 를 기준으로 정렬합니다.
- Sort_order1 는 1입니다. A에서 사전순으로 정렬합니다. Z.
- By_array2 는 C2:C10 - 그런 다음 Value 로 정렬합니다.
- Sort_order2 는 -1 - 가장 큰 것부터 작은 것까지 정렬합니다.
결과적으로 다음 공식을 얻습니다.
=SORTBY(A2:B10, B2:B10, 1, C2:C10, -1)
데이터를 지시한 대로 정확하게 재정렬합니다.
수식이 있는 Excel의 사용자 지정 정렬
데이터를 사용자 지정 순서로 정렬하려면 Excel의 사용자 지정 정렬 기능을 사용하거나 다음과 같은 방식으로 SORTBY MATCH 수식을 작성할 수 있습니다.
SORTBY(배열,MATCH( range_to_sort , custom_list , 0))데이터 세트를 자세히 살펴보면 "논리적으로" 상태별로 프로젝트를 정렬하는 것이 더 편리할 것입니다. , 예를 들어 알파벳순이 아닌 중요도 순으로.
이 작업을 수행하려면 먼저 원하는 정렬 순서( 진행 중 , 완료됨 , On hold ) E2:E4 범위의 개별 셀에 각 값을 입력합니다.
그런 다음 위의 일반 공식을 사용하여 array (A2 :C10), range_to_sort (B2:B10)에 대한 Status 열 및 custom_list (E2:E4)<3에 대해 생성한 사용자 정의 목록입니다>
=SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0))
결과적으로 필요에 따라 정확히 상태별로 프로젝트를 정렬했습니다.
사용자 지정 목록을 역순으로 정렬하려면 sort_order1 인수:
=SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0), -1)
프로젝트가 반대 방향으로 정렬됩니다.
각 상태 내에서 레코드를 추가로 정렬하고 싶습니까? 문제 없어요. 간단히 값 (C2:C10)과 같이 수식에 정렬 수준을 하나 더 추가하고 원하는 정렬 순서를 정의합니다(이 경우 오름차순:
=SORTBY(A2:C10, MATCH(B2:B10, E2:E5, 0), 1, C2:C10, 1)
<). 0>Excel의 사용자 지정 정렬 기능에 비해 SORTBY 수식의 큰 장점은 원본 데이터가 변경될 때마다 수식이 자동으로 업데이트되는 반면, 이 기능은 변경될 때마다 정리하고 다시 정렬해야 한다는 것입니다.
방법 이 공식works:
이미 언급한 바와 같이 Excel의 SORTBY 기능은 크기가 원본 배열과 호환되는 "정렬 기준" 배열만 처리할 수 있습니다. 소스 배열(C2:C10)에는 9개의 행이 있고 사용자 지정 목록(E2:E4)에는 3개의 행만 포함되어 있으므로 by_array 인수에 직접 제공할 수 없습니다. 대신 MATCH 함수를 사용하여 9행 배열을 만듭니다.
MATCH(B2:B10, E2:E5, 0)
여기서는 Status 열(B2:B10)을 조회 값으로 사용하고 사용자 지정 목록(E2:E5)을 조회 배열로 사용합니다. 마지막 인수는 정확히 일치하는 항목을 찾기 위해 0으로 설정됩니다. 결과적으로 9개의 숫자 배열을 얻었으며 각 숫자는 사용자 지정 목록에서 주어진 Status 값의 상대적 위치를 나타냅니다.
{1;3;2;1;3;2;2;1;2}
이 배열은 직접 이동합니다. SORTBY 함수의 by_array 인수에 할당하고 배열의 요소에 해당하는 순서로 데이터를 강제로 배치합니다. 즉, 1로 표시된 첫 번째 항목, 2로 표시된 항목 등입니다. 3>
수식을 사용하여 Excel에서 임의 정렬
이 자습서에서 설명한 대로 이전 Excel 버전에서는 RAND 함수를 사용하여 임의 정렬을 수행할 수 있습니다. Excel에서 목록을 임의로 정렬하는 방법.
새 Excel에서는 SORTBY와 함께 더 강력한 RANDARRAY 함수를 사용할 수 있습니다.
SORTBY( array , RANDARRAY(ROWS( array )))여기서 array 는 셔플하려는 소스 데이터입니다.
이 일반 수식은단일 열 및 여러 열 범위에 대해.
예를 들어 A2:A10에서 목록을 임의로 정렬하려면 다음 수식을 사용합니다.
=SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10)))
셔플 행을 함께 유지하는 A2:C10의 데이터는 다음을 사용합니다.
=SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10)))
이 공식 작동 방식:
RANDARRAY 함수는 배열을 생성합니다. 정렬에 사용할 난수를 SORTBY의 by_array 인수에 전달합니다. 생성할 난수 수를 지정하려면 ROWS 함수를 사용하여 소스 범위의 행 수를 계산하고 해당 숫자를 RANDARRAY의 rows 인수에 "공급"합니다. 그게 다야!
참고. 이전 함수와 마찬가지로 RANDARRAY는 휘발성 함수이며 워크시트를 다시 계산할 때마다 새로운 난수 배열을 생성합니다. 결과적으로 시트의 각 변경 사항에 따라 데이터가 재정렬됩니다. 자동 재정의를 방지하려면 선택하여 붙여넣기 > 값 기능을 사용하여 수식을 해당 값으로 바꿀 수 있습니다.
문자열 길이로 셀 정렬
포함된 텍스트 문자열의 길이를 기준으로 셀을 정렬하려면 LEN 함수를 사용하여 각 셀의 문자 수를 계산하고 계산된 길이를 SORTBY의 by_array 인수에 제공합니다. sort_order 인수는 기본 정렬 순서에 따라 1 또는 -1로 설정할 수 있습니다.
텍스트 문자열을 작은 것부터 큰 것까지 정렬하려면:
SORTBY(array, LEN(배열), 1)정렬 기준최대에서 최소로 텍스트 문자열:
SORTBY(array, LEN(array), -1)실제 데이터에 대한 이 접근 방식을 보여주는 공식은 다음과 같습니다.
=SORTBY(A2:A7, LEN(A2:A7), 1)
여기서 A2:A7은 텍스트 길이를 기준으로 오름차순으로 정렬하려는 원래 셀입니다.
SORTBY 대 SORT
새로운 Excel 동적 배열 함수 그룹에는 두 가지가 있습니다. 정렬하도록 설계되었습니다. 아래에는 가장 본질적인 차이점과 유사점 및 각각을 사용하는 것이 가장 좋은 경우가 나열되어 있습니다.
- SORT 기능과 달리 SORTBY는 "정렬 기준" 배열이 소스의 일부가 될 필요가 없습니다. 배열이며 결과에 나타날 필요도 없습니다. 따라서 작업이 다른 독립 배열 또는 사용자 지정 목록을 기반으로 범위를 정렬하는 것이라면 SORTBY가 사용하기에 적합한 기능입니다. 자체 값을 기준으로 범위를 정렬하려는 경우 SORT가 더 적합합니다.
- 두 기능 모두 여러 수준의 정렬을 지원하며 둘 다 다른 동적 배열 및 기존 기능과 함께 연결할 수 있습니다.
- 두 함수 모두 Excel 365 및 Excel 2021 사용자만 사용할 수 있습니다.
Excel SORTBY 함수가 작동하지 않음
SORTBY 수식이 오류를 반환하는 경우 다음과 같은 이유 때문일 가능성이 큽니다. 다음 이유 중 하나입니다.
잘못된 by_array 인수
by_array 인수는 단일 행 또는 단일 열이어야 하며 array 인수. 예를 들어, array 가 10인 경우행, by_array 도 10개의 행을 포함해야 합니다. 그렇지 않으면 #VALUE! 오류가 발생합니다.
잘못된 sort_order 인수
sort_order 인수는 1(오름차순) 또는 -1(내림차순)만 될 수 있습니다. 값을 설정하지 않으면 SORTBY는 기본적으로 오름차순으로 지정됩니다. 다른 값이 설정되어 있으면 #VALUE! 오류가 반환됩니다.
결과를 위한 공간이 충분하지 않습니다.
다른 동적 배열 함수와 마찬가지로 SORTBY는 결과를 자동으로 크기 조정 및 업데이트 가능한 범위로 분할합니다. 모든 값을 표시하기에 빈 셀이 충분하지 않으면 #SPILL! 오류가 발생합니다.
소스 통합 문서가 닫혀 있습니다.
SORTBY 수식이 다른 Excel 파일을 참조하는 경우 두 통합 문서가 모두 열려 있어야 합니다. 원본 통합 문서가 닫히면 #REF! 오류가 발생합니다.
Excel 버전이 동적 배열을 지원하지 않습니다.
Excel의 사전 동적 버전에서 사용하는 경우 SORT 함수는 #NAME? 오류입니다.
Excel에서 SORTBY 함수를 사용하여 사용자 지정 정렬 및 기타 작업을 수행하는 방법입니다. 읽어 주셔서 감사합니다. 다음 주에 저희 블로그에서 뵙기를 바랍니다!
다운로드용 실습 워크북
Excel SORTBY 수식(.xlsx 파일)