728x90

데이터를 정렬하고 열람할 수 있는 엑셀의 특성상 다양한 정렬기능을 제공합니다.
그 중 가장 대표적인것은 "정렬" 기능으로 편리하게 사용할 수 있습니다.
당연하지만 VBA에서도 정렬을 지원하고 있고 기능역시 다양합니다.
정렬(SORT) 기능에 대해서 정리하겠습니다. 매개변수가 상당히 다양합니다.
<SORT 명령어와 매개변수>
expression.Sort (Key1, Order1, Key2, Type, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod, DataOption1, DataOption2, DataOption3)
- expression : SORT의 범위나 사용되는 worksheet를 지정합니다.
- Key1 : 엑셀에서는 정렬하는 기준을 여러개 지정할 수 있습니다. 첫번째 규칙이 적용받는 필드입니다.(새로 막대)
- Order1 : Key1에 지정된 값의 정렬순서를 결정합니다. XlSortOrder의 값을 입력합니다.
xlAscending(1) : 값을 오름차순으로 정렬합니다. 기본값으로 아무것도 입력하지 않았을 때도 적용됩니다.
xlDescending(2) : 값을 내림차순으로 정렬합니다.
xlManual(-4135) : 선택행정렬 매뉴입니다. 일반적으로는 사용하지 않습니다. - Key2, Key3 : 두번째 세번째 규칙에 적용될 필드입니다.
- Order2, Order3 : 두번째 세번째 규칙이 정렬되는 순서입니다.
- Header : 첫번째 행이 머리글로 들어갈지를 결정합니다. 인터페이스의 정렬기능에서 " 내 데이터에 머리글 표시"라고 하는 기능입니다.
xlGuess(0) : 엑셀이 머리글이 어디 있는지 없는지를 결정합니다.
xlYes(1) : 맨 윗줄을 머리글로 포함하는 것으로 인터페이스에서 "내 데이터에 머리글 표시"의 체크를 끈 상태입니다.
xlNo(2) : 머리글을 포함하지 않는 것으로 인터페이스에서 "내 데이터에 머리글 표시"의 체크박스를 켠 상태입니다. 이 항목을 입력하지 않으면 디폴트로 설정됩니다. - OrderCustom : 사용자 지정목록을 사용하는 경우에 몇번째 목록을 사용할지 지정합니다. 1부터 입력 가능합니다.
- MatchCase : True는 대소문자를 구분하고, False는 대소문자를 구별하지 않습니다. 피벗테이블의 정렬기능에서는 사용할 수 없다고 합니다. 기본 값은 False입니다.
- Orientation : 정렬기준이 행기준인지 열기준인지를 결정합니다.
xlSortColumns(1) : 열 기준으로 정렬합니다.
xlSortRows(2) : 행 기준으로 정렬하고 이 값이 디폴트입니다. - SortMethod : 정렬방법을 지정합니다.
xlPinYin(1) : 음성학적으로 중국어에 정렬순서를 따릅니다. 기본값입니다.
xlStroke(2) : 각 글자의 획수로 정렬합니다. - DataOption1 : Key1에 지정된 범위(첫 번째 규칙의 범위)의 텍스트를 정렬하는 방법을 지정합니다. 피벗 테이블 정렬에는 적용되지 않습니다.
xlSortNormal(0) : 기본값으로 숫자 변수를 텍스트와 따로 분류해서 각각 정렬합니다.
xlSortTextAsNumbers(1) : 텍스트를 숫자로 변환해서 함께 정렬합니다. - DataOption2, DataOption3 : Key2, Key3에서 지정됨 범위를 정렬합니다.
- 기본적으로 SORT의 모든 매개변수들은 선택형입니다.
320x100
<사용예시>
아래 테이블에서 "분류"를 기준으로 정렬을 하려고합니다.
Header를 xlYes로 머리글자를 지정하고 필드의 이름인 "분류"를 이용해 정렬해 보겠습니다

Sub 예시()
ActiveWorkbook.Worksheets("Sheet1").Range("D46:F79").Sort key1:="분류", _
order1:=xlAscending, _
Header:=xlYes, _
MatchCase:=False, _
Orientation:=xlTopToBottom, _
SortMethod:=xlPinYin
End Sub
소스가 길기 때문에 줄바꿈 연산자 _ 를 사용해서 아래로 내렸습니다.
사람이 알아보기는 이러면 편하지만 컴퓨터는
ActiveWorkbook.Worksheets("Sheet1").Range("D46:F79").Sort key1:="작물명", order1:=xlAscending, Header:=xlYes, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin
이라고 한줄로 써도 얼마든지 인식됩니다.
반응형
'엑셀' 카테고리의 다른 글
엑셀(EXCEL)의 시작할 때 기본 글꼴(글씨체), 크기와 보기 모드, 시트 수 변경하기(새 문서 만들때 처음 보기 옵션) (0) | 2024.02.20 |
---|---|
엑셀(EXCEL), 칸에서 글자가 넘칠 때 셀에 맞춤 하거나 줄 바꾸는 방법들( 줄 바꾸는 여러가지 방법) (0) | 2024.02.19 |
엑셀(EXCEL), INFO 함수로 사용되고 있는 환경을 알아보자(엑셀 실행 경로, 버전 알아내기) (0) | 2024.02.07 |
엑셀(EXCEL)의 배수로 반올림의 기준을 설정하는 MROUND 함수로 각종 자리 맞춤하기(0.5배수로 반올림하기) (0) | 2024.02.06 |
엑셀(EXCEL), 정규분포의 확률로 분포를 알려주는 NORM.INV 함수를 사용해 봅니다.(NORM.DIST의 역함수) (0) | 2024.02.01 |