본문 바로가기
VBA

[VBA_Sum vs Consolidate] 병합과 합계구하기

by 일등미노왕국 2021. 8. 8.

Sum과 Consolidate를 이용한 합계 구하기 비교

몇일전 같은 연번 내에서 부분합을 구하는 코드를 작성하면서 Consolidate의 발견은 나에게 만큼은 콜롬버스의 신대륙 같은 것이었다. 해서 몇일전 비슷하게 작성했던 코드를 심기일전하여 이 게임체인저 같은 녀석을 적용시키기 위해서 코드를 비교해보기로 했다.

  공동코드는 기준점인 rngM을 기준으로 병합된 셀의 크기를 M_cnt 변수에 담아서 같은 연번을 resize의 크기로 영역을 한정하였다. 처음 코드는 한정된 영역을 엑셀 함수인 Sum함수로 그 영역의 합계를 구하였다면, 두번째 코드는 Consolidate로 합계를 구하였다. 육안으로 보기에도 처음 코드가 더 깔끔해 보일것이다. 

Sum 함수이용
Consolidate 이용

  VBA를 처음 입문할 때 엑사남님께서 이런 말을 하신적이 있다.

VBA 잘하고 싶다고요 그럼 엑셀을 공부하세요

그렇다. VBA를 잘하려면 엑셀을 공부를 게을리 해서는 안되며, 문제를 바라보는 기본적인 시선이 엑셀적으로 다가가야 한다. 멋드러진 코드 나열로 마치 미사어구처럼 말을 장황하게 이야기하지만 결국 약을 파는 약장사처럼 결국 우리가 당하지 않으려면 내가 맞닿은 상황에 가장 쉽고 빠르게 접근해서 문제를 해결하는게 우리 엑사남들의 숙명(?)이다.

 

  이번 문제는 연번내의 이름들이 랜덤하게 섞여있는게 아니라 순차적으로 연번을 기준으로 나뉘어져 있다. 그러기에 연번끼리 합계만 구하면 되는 것이다. Consolidate는 저번 문제처럼 문제가 뒤섞여 있는 영역에서 값을 구하는 문제였다면 역시 내가 기대했던 그만큼의 재역할을 멋드러지게 처리했을 것이다. 이 녀석은 셀의 계산된 값을 다른 영역에 출력한 후 최종적으로 뿌려져야 할 곳에 값을 뿌린 후 임시로 뿌려진 영역의 data를 처리해야 하는 후처리가 필요하다.

병합과합계구하기(21.07.30).xlsm
0.03MB

 

  집앞에 눈을 치우는데  염화칼슘을 뿌리는 기계를 들이대다니....

 

 

댓글