엑셀에서 데이터를 정리하는 일은 일상적인 업무인데요, 특히 특정 조건에 따라 데이터를 정렬해야 할 때가 많죠. 예전에는 이런 작업을 위해 여러 단계를 거쳐야 했지만, 이제 SORTBY 함수를 사용하면 훨씬 간편하게 처리할 수 있어요. 오늘은 업무 효율을 높여줄 SORTBY 함수의 모든 것을 알아볼게요!
📌 [고정핀] Excel SORTBY 함수로 데이터를 더 스마트하게 정렬하세요!
🔍 SORTBY 함수란?
SORTBY 함수는 Excel의 동적 배열 함수 중 하나로, 지정한 열 또는 행의 값에 따라 범위나 배열을 정렬할 수 있는 강력한 기능을 제공해요. 2019년에 도입된 이 함수는 특히 다양한 기준으로 데이터를 정렬해야 하는 비즈니스 환경에서 매우 유용하게 사용됩니다.
📝 SORTBY 함수의 기본 구문
=SORTBY(배열, 정렬_배열1, [정렬_순서1], [정렬_배열2, [정렬_순서2]]...)
🔢 SORTBY 함수의 인수 설명
- 배열: 정렬하려는 데이터 범위나 배열
- 정렬_배열1: 첫 번째 정렬 기준이 되는 배열이나 범위
- 정렬_순서1: 선택사항으로, 1은 오름차순(기본값), -1은 내림차순
- 정렬_배열2, 정렬_순서2...: 추가 정렬 기준과 그 순서(다중 정렬 조건 지정 가능)
🔔 Note: 정렬_배열은 반드시 원본 배열과 크기가 같거나, 원본 배열의 각 행(또는 열)에 대응할 수 있는 배열이어야 해요!
💡 SORTBY 함수와 SORT 함수의 차이점
SORTBY와 SORT 함수는 모두 데이터를 정렬하는 데 사용되지만, 중요한 차이점이 있어요!
- SORT 함수: 배열 자체의 열이나 행을 기준으로 정렬
- SORTBY 함수: 별도로 지정한 배열을 기준으로 정렬 가능
즉, SORT는 정렬하려는 데이터 내의 특정 열/행을 기준으로만 정렬할 수 있지만, SORTBY는 외부 배열을 기준으로도 정렬이 가능해요. 이 차이점 때문에 SORTBY가 좀 더 유연한 정렬 작업에 적합합니다.
📋 SORTBY 함수 사용 예제
🔹 예제 1: 기본 정렬(오름차순)
아래 데이터로 직원들의 매출 실적을 이름 순으로 정렬해 보겠습니다.
이제 이름을 기준으로 전체 데이터를 정렬해 보겠습니다:
=SORTBY(A2:E9, B2:B9, 1)
이 수식은 A2:E9 범위의 데이터를 B열(이름)을 기준으로 오름차순(1) 정렬합니다.
🔹 예제 2: 다중 조건 정렬
'부서' 별로 먼저 정렬하고, 같은 '부서' 내에서는 '매출액' 기준 내림차순 정렬:
=SORTBY(A2:E9, C2:C9, 1, D2:D9, -1)
이 수식은 데이터를 C열(부서)로 먼저 오름차순 정렬한 후, D열(매출액)으로 내림차순 정렬합니다. 이렇게 두번의 정렬기준과 방법을 설정하여 다중 조건으로 정렬할 수 있어요.
🔹 예제 3: 외부 참조 배열로 정렬
특정 기준에 따른 순위 배열을 만들어 그 순위로 정렬하는 예제입니다:
'성과평가' 등급에 따라 데이터를 정렬하려고 하는데, 일반적인 알파벳 정렬(A, B, C, S)이 아닌 사용자가 정의한 우선순위 S > A > B > C 순으로 정렬하고 싶다면:
=LET(
평가순위, {"S","A","B","C"},
순위매칭, XMATCH(E2:E9, 평가순위),
SORTBY(A2:E9, 순위매칭, 1)
)
이 수식은 먼저 평가 등급의 우선순위 배열을 만들고, XMATCH 함수로 각 직원의 등급이 그 배열에서 어디에 위치하는지 찾아 그 위치값으로 정렬합니다. LET 함수는 인수를 이름으로 정의하는 함수입니다. 곧, 배울거에요.
각 단계를 하나씩 살펴볼게요:
1️⃣ 평가순위 배열 생성
=LET( 평가순위, {"S","A","B","C"} )
- 결과적으로
평가순위 = {"S", "A", "B", "C"}
배열이 생성돼요.
🔔 Note: 이렇게 생성된 배열은 우리가 원하는 정렬 순서를 정의한 것이에요. 이 순서에서 앞에 있을수록 높은 등급을 의미합니다.
2️⃣ 각 직원의 등급 위치 찾기
=LET( 순위매칭, XMATCH(E2:E9, 평가순위) )
- XMATCH 함수는 값이 배열에서 어느 위치에 있는지 찾아요.
- E2:E9(각 직원의 성과평가 등급)이
평가순위
배열에서 몇 번째에 위치하는지 반환해요. - 예를 들어, "S"는 평가순위의 첫 번째(1), "A"는 두 번째(2)이므로:
- E2의 값이 "B"이면 XMATCH는 3을 반환
- E6의 값이 "C"이면 XMATCH는 4를 반환
🔔 Note: 이렇게 하면 등급 문자(S, A, B, C) 대신 숫자(1, 2, 3, 4)로 변환되어 정렬에 사용할 수 있어요.
3️⃣ 변환된 숫자 위치로 정렬
SORTBY(A2:E9, 순위매칭, 1)
- SORTBY 함수는 A2:E9 데이터를
순위매칭
으로 얻은 숫자 값을 기준으로 정렬해요. - 정렬 순서는 오름차순(1)이므로 작은 숫자가 먼저 나와요.
- 즉, 위치 값이 작을수록(평가순위 배열에서 앞에 있을수록) 상위에 정렬돼요.
💡 이 방식의 장점
- 사용자 정의 순서로 정렬 가능: 일반적인 알파벳/숫자 순서가 아닌 비즈니스 로직에 맞는 순서로 정렬할 수 있어요.
- 확장성: 정렬 기준을 쉽게 수정할 수 있어요. 예를 들어 "S", "A", "B", "C", "D" 등급이 추가되면 배열만 수정하면 돼요.
- LET 함수의 활용: 중간 계산 결과에 이름을 부여해 수식을 더 읽기 쉽게 만들었어요.
🔄 응용 방법
이 방식은 다른 커스텀 정렬에도 활용할 수 있어요:
- 월 이름 정렬: "1월", "2월"... 같은 월 이름을 달력 순서로 정렬
- 요일 순서: "월", "화", "수"... 같은 요일명을 원하는 순서로 정렬
- 제품 등급: "프리미엄", "스탠다드", "베이직" 같은 제품 등급을 비즈니스 우선순위에 따라 정렬
이처럼 SORTBY 함수는 단순한 알파벳/숫자 순 정렬을 넘어, 비즈니스 요구에 맞는 맞춤형 정렬을 가능하게 해주는 강력한 도구예요! 😊
🔹 예제 4: 계산된 값으로 정렬
매출액과 성과평가를 조합한 보너스 금액을 계산하고, 이 보너스 금액으로 정렬:
=LET(
보너스계수, IF(E2:E9="S", 0.2, IF(E2:E9="A", 0.15, IF(E2:E9="B", 0.1, 0.05))),
보너스금액, D2:D9 * 보너스계수,
SORTBY(A2:E9, 보너스금액, -1)
)
이 수식은 성과평가 등급에 따라 보너스 계수를 결정하고, 매출액과 곱해 보너스 금액을 계산한 후, 그 금액을 기준으로 내림차순 정렬합니다.
⚠️ SORTBY 함수 사용 시 주의사항
- 데이터 크기 일치: 정렬 기준 배열은 원본 배열과 행/열 수가 일치해야 합니다.
- 동적 배열 반환: SORTBY는 동적 배열 함수이므로, 결과가 여러 셀에 자동으로 확장됩니다(스필오버). 결과가 표시될 충분한 빈 셀이 있는지 확인하세요.
- #VALUE! 오류: 정렬 순서 인수에 1 또는 -1 이외의 값을 사용하면 발생합니다.
- #SPILL! 오류: 결과가 표시될 영역에 다른 데이터가 있거나, 배열 크기가 맞지 않을 때 발생합니다.
- #REF! 오류: 잘못된 참조를 사용할 때 발생합니다.
🚀 SORTBY 함수 활용 팁
- 조건부 정렬: IF 함수와 함께 사용하여 특정 조건에 따라 다른 정렬 기준 적용 가능
- 계산된 값으로 정렬: LET 함수와 함께 사용하면 계산된 값을 기준으로 정렬 가능
- 동적 정렬 기준: INDIRECT 함수와 결합하면 셀 참조를 통해 정렬 기준을 동적으로 변경할 수 있음
- 테이블과 함께 사용: 구조화된 참조를 통해 테이블의 특정 열을 기준으로 정렬 가능
💫 마무리
SORTBY 함수는 정렬이 필요한 다양한 업무 상황에서 강력한 도우미가 될 수 있어요. 특히 SORT 함수보다 더 유연하게 외부 기준으로 정렬할 수 있는 점이 큰 장점입니다. 여러 정렬 조건을 한 번에 적용할 수 있어 복잡한 데이터 분석 작업도 간편하게 처리할 수 있죠.
이 글에서 소개한 예제들을 업무에 적용해 보시고, 더 효율적인 데이터 관리를 경험해 보세요! 다른 동적 배열 함수들과 함께 사용하면 더욱 강력한 데이터 처리 솔루션을 만들 수 있답니다. 유용한 정보였다면 주변 동료들에게도 공유해 주세요! 😊
작성자: 마늘빵