본문 바로가기

프로그래밍(Programing)/엑셀매크로_vba(Excel-Macro)

정렬- 오름내림 차순(엑셀함수사용과 아닌것)

엑셀 함수가 없었더라면  vbe에서 지금행 자료와 다음행 자료를 비교하여 행을 바꿀지 검사하는것을 모든 경우의수를 생각하여 반복처리했어야 했다. (명령어가 많아짐 거의7줄이상)

 

하지만 엑셀함수를 알고 나서 한줄로 요약하고 훨씬 빠르게 처리가 가능하다.

아래는 예시다.

왼쪽부터 이름,x좌표, y좌표, 길이 (내림차순된상태)

설계에서 나온 이름과 x,y좌표를 빼내 x 와 y사이의 거리로 길이를 뽑아낸 상태에서 길이를 기준으로 내림차순한 모습이다.

 

만약 매크로없이 바로 실행하려면 아래와 같이 사용자 지정 정렬을 이용하는 방법이 있다. 

매크로 없이 엑셀에서 바로 정렬하는 모습
열D(길이) 기준으로 오름내림함

 

엑셀 함수가 없었다면 

 

비교할 행 개수 X (비교할 행 개수-1) 만큼 실행

 

{비교할 행 개수 X (비교할 행 개수-1) }  반복 비교를 해야 하는데 단점이 있다.

비교할 행 개수가 적으면 상관이 없겠지만 

설계 파일에서 비교할 행의 개수는 2만개가 넘는다. 

 20000 x 19999 반복 실행한다 치면 내림차순 하다  퇴근 할 수 있다.(과장된 표현)

 

하지만 엑셀 함수를 사용하면 1초면 끝난다. 함수로는

 

엑셀 내림차순 함수

Range(왼쪽 위의 셀의 좌표, 오른쪽 아래 셀의 좌표) , sort(기준 될 열) , 0 or 1 (0:오름차순 1: 내림차순)

 

너무 쉽게 설명한건지 잘 모르겠다. 

 

저처럼 사용하던 분들에게 엑셀 함수를 알았으면 한다.

 

728x90