앞 두 시간에 걸쳐 조건부 서식에 대해서 알아봤다. 조건부 서식을 자주 활용하는 예제 몇 가지를 소개하려고 한다. 그 중 첫 번째는 데이터 목록 분할이다. 데이터가 많을 때 연속된 같은 그룹별로 색을 구분하면 한결 일하기 좋아진다. 경험상 보통 좋아지는 것이 아니다. 당연히 상황이 이해 되지 않을 것이다. (사실 나도 어떻게 설명해야 할지 모르겠다.) 일단 그림을 보자.

조건부 서식: 목록 분할 기대상황

왼쪽은 우리가 일반적으로 만들 수 있는 표이다. 주문번호를 기준으로 정렬되어 있다고 가정하자. 주문번호 별로 주문한 상품의 수량과 금액이 적혀있다. 상품명이 없어서 실망하지 마시길... 오른쪽은 바꾸려고 하는 표이다. 주문번호 별로 색이 구분되어 있다. 한 눈에 봐도 주문내역이 눈에 쉽게 들어온다. 이런 표를 가지고 일하면 실수도 줄어들고 업무 속도도 올라갈 것이다.

작전

Divide & Conquer 라고 들어보았을지 모르겠다. 해석으로는 보통 분할정복이라고 한다. 문제가 어려울 때 문제를 쪼개서 쉬운 문제로 바꾼 뒤 쉬운 문제들을 해결함으로써 전체 어려운 문제를 해결하는 방법이다. 이번에 우리가 쓸 작전이다.

  1. 열을 하나 추가하여 주문번호 별로 1, 0 을 번갈아 가며 표시 한다.
  2. 조건부 서식을 이용하여 1로 세팅된 행에 색칠한다.

1, 0 으로 표시하기

조건부 서식: 주문번호 별 태그부여

=IF(A4 = A5, B4, 1 – B4)

=IF(이전행주문번호 = 현재행주문번호, 이전태그, 1 – 이전태그)

1, 0을 반복하는 함수이다. 첫번째 셀은 1로 지정하자. 수식을 살펴보자. 이전 행의 주문번호와 현재 행의 주문번호가 같다면 이전태그(= 1)를 가져온다. 그렇지 않다면 반전을 시켜야 한다. 1은 0으로 0은 1로. 그것을 표현한 것이 1 – 이전태그인 것이다. 이렇게 하면 주문번호에 따라서 1, 0이 번갈아 가면서 나타날 것이다.

1번 작전을 해결하였다. 이제 조건부 서식을 이용하여 색칠해보자.

조건부 서식 사용하기

조건부 서식: 조건부 서식 적용

=$B4=1

A4:E15까지 영역을 설정하고 조건부 서식을 걸어보자. 오른쪽 아래 서식버튼을 이용해서 서식 지정하는 것을 꼭 기억하기 바란다. 이제 완성이다.

원리를 살펴보자. $B4가 의미하는 것은 무엇일까? 영역의 첫번째 셀 기준에서의 참조 셀이다. 조건부 서식은 셀 하나하나 조건을 체크하여 서식을 부여한다. A4, B4, ~ , E15까지 순서는 영역의 모든 셀을 각각 검사한다. 수식에서 $B4A4 셀을 검사할 때 적용되는 수식이다. B앞에 절대참조가 걸려있기 때문에 B4, C4, D4, E4 셀은 모두 B4 셀을 참조하게 된다. 즉, =$B4=1 수식이 적용된다. A5 ~ E5 셀은 B5 셀을 참조하게 된다. 왜냐하면 수식의 4는 상대참조이기 때문에 행이 변하면 적용되는 수식도 변하게 된다. 따라서 =$B5=1 수식이 적용된다. 다음 행도 마찬가지 원리이다. 설명 끝.

마무리

절대참조가 이해되지 않으면 절대 할 수 없는 것이 조건부 서식이다. 반드시 절대참조에 대해서 이해하길 바란다.

태그를 사용하지 않고 색칠하는 방법에 대해서 이것저것 많이 생각해봤다. vba를 사용하지 않고서는 찾지 못하였다. (방법이 있다면 공유해주시면 감사하겠습니다.) 현재로써는 이 방법이 가장 좋아 보인다.

영역이 계속 늘어나는 표에 대한 대처는 추후 알아보도록 하겠다. 여러가지 방법이 있다. 간단하게 얘기하면 처음부터 영역을 많이 잡는 방법 (가장 편하다), 맨 아래 dummy 데이터를 넣는 방법, 매번 조건부 서식의 범위를 늘려주는 방법 (-_-;;) 등이 있겠다.

나는 한 번 쓰고 버릴 데이터에도 필요하다면 이런 조건부 서식을 건다. 잠깐이지만 순간적인 생산성과 정확도가 아주 많이 올라간다. 예제에는 같은 묶음이 3 ~ 4 개 밖에 없고 구분도 쉬웠지만 구분하는 ID 가 비슷하게 생긴 10자리 숫자라면 얘기가 달라진다. 어디가 경계인지 눈으로 보기 정말 힘들어진다. 반복해서 연습 하면 실전에 쉽게 적용할 수 있을 것이다.