엑셀 차트 만들기 및 데이터 종류별 그래프 선택 시각화 가이드

이미지
얼마 전 저희 팀의 마케팅 담당 주임님이 브랜드별 시장 점유율과 지난 3년간의 매출 추이를 요약한 보고서를 들고 제 자리로 찾아왔어요. 나름대로 신경을 써서 멋진 차트를 가득 넣어왔는데, 어딘가 모르게 표가 복잡하고 메시지가 눈에 들어오지 않더라고요.  자세히 보니 전체 시장에서 각 브랜드가 차지하는 비중(비율)을 보여줘야 하는 곳에 꺾은선그래프를 그려놓았고, 시간에 따른 매출 성장 추이를 보여줘야 하는 곳에는 원형 차트를 배치해 놓은 상태였습니다. 주임님은 "차트를 넣었는데도 왜 팀장님이 데이터가 한눈에 안 들어온다고 하시는지 모르겠다"며 속상한 표정을 지으셨죠. 많은 직장인이 엑셀에서 차트를 만들 때, 단순히 '보기 예쁘거나 익숙하다'는 이유로 그래프 종류를 선택하곤 합니다. 하지만 데이터의 종류와 전달하려는 메시지에 따라 반드시 써야 하는 차트의 공식이 정해져 있어요.  10년 동안 실무를 하면서 잘못된 차트 선택으로 데이터의 가치가 묻히는 경우를 정말 많이 목격했답니다. 이 문제를 완벽하게 해결하고 보고서의 신뢰도를 극대화하는 방법은 데이터의 성격에 맞는 올바른 '차트의 종류'를 매칭해 주는 것입니다. 가장 먼저 기억해야 할 기본 차트 삼형제의 용도를 정리해 드릴게요. 첫째, 시간에 따른 변화나 트렌드를 보여주고 싶을 때는 '꺾은선그래프'를 선택해야 합니다. 월별 매출 추이, 연도별 회원 수 성장률 등은 선의 기울기를 통해 직관적으로 파악할 수 있기 때문이죠. 둘째, 항목 간의 크기를 단순 비교하고 싶을 때는 '막대그래프'가 최고입니다. 가맹점별 매출 비교, 제품별 판매량 등은 막대의 높낮이로 순위를 바로 알 수 있죠. 마지막으로 전체에서 특정 항목이 차지하는 비중이나 점유율을 보여줄 때는 '원형 차트'를 사용해야 합니다. 차트를 만드는 방법 자체는 정말 간단해요. 원하는 데이터 영역을 마우스로 드래그하여 전체 범위를 지정한 뒤, 상단 메뉴의 [삽입] 탭 으로 이동...

엑셀 조건부 서식 설정 방법 및 특정 조건 셀 색상 자동 변경하기

이미지
얼마 전 저희 팀의 영업 담당 주임님이 분기별 가맹점 매출 현황표를 붙잡고 마우스로 셀 하나하나에 노란색, 빨간색 채우기를 하고 계시더라고요. 사유를 물어보니, 팀장님께서 "매출 실적이 목표치인 5,000만 원 미만인 가맹점들은 한눈에 보이게 빨간색 배경으로 강조해서 가져오라"고 지시하셨다는 것이었습니다.  데이터가 수백 줄이 넘어가다 보니 주임님은 눈을 가늘게 뜨고 숫자를 확인해가며 일일이 수작업으로 색을 칠하고 계셨죠. 마감 시간은 다가오는데 실수로 숫자를 잘못 보고 지나치거나, 나중에 원본 데이터의 숫자가 수정되면 색상을 또다시 바꿔야 하니 그야말로 끝이 없는 노가다를 하고 계셨던 셈입니다. 많은 직장인이 이처럼 특정 기준에 맞는 데이터를 강조하고 싶을 때 마우스 우클릭의 '채우기' 통 아이콘을 들고 수동으로 대처하곤 합니다. 하지만 이 방식은 시간도 오래 걸릴뿐더러, 데이터가 업데이트되었을 때 자동으로 연동되지 않아 치명적인 오차가 발생할 수 있어요. 10년 동안 실무를 하면서 이런 사소한 편집 과정에서 진을 빼는 동료들을 정말 많이 봐왔답니다.  이 문제를 완벽하게 해결하고 보고서를 살아 움직이게 만드는 마법이 바로 홈 탭에 숨겨진 '조건부 서식' 기능이에요. 숫자의 변화에 따라 엑셀이 알아서 실시간으로 옷을 입혀주는 스마트한 도구죠. 설정하는 방법은 원리만 알면 놀라울 정도로 간단해요. 우선 조건부 서식을 적용하고 싶은 데이터 영역(예: 매출 금액 열)을 마우스로 쭉 드래그하여 범위를 지정합니다. 그 상태에서 상단 메뉴의 [홈] 탭 -> [조건부 서식] -> [셀 강조 규칙]을 차례대로 클릭해 주는 것이죠. 방금 주임님이 마주한 상황처럼 '5,000만 원 미만'인 셀을 찾고 싶다면, 규칙 메뉴에서 '~보다 작음'을 선택해 줍니다. 팝업창이 뜨면 값 입력 칸에 숫자 50000000 을 입력하고, 오른쪽의 적용할 서식에서 '진한 빨강 텍스트가 있는 연한 빨강 ...

엑셀 TEXTJOIN 함수 및 CONCATENATE 이용한 여러 셀 텍스트 합치기

이미지
얼마 전 저희 팀의 총무 담당 주임님이 모니터 화면을 보며 깊은 한숨을 쉬고 계시더라고요. 사유를 여쭤보니, 행사에 참석하는 수십 명의 회원 명단을 보고서 한 칸에 '김민수, 이서연, 박준형...'처럼 쉼표로 구분해서 쭉 나열해야 하는 업무를 맡았다는 것이었습니다. 주임님은 =A2&", "&A3&", "&A4... 기호를 일일이 키보드로 쳐가며 셀을 하나씩 연결하고 계셨어요.  게다가 중간에 이름이 비어 있는 빈 셀이라도 있으면 쉼표가 두 번 연속(,,)으로 찍히는 바람에, 수식이 완성된 후에도 일일이 눈으로 검수하며 지우느라 진땀을 흘리고 있었죠. 마감 시간은 다가오는데 작업 속도가 나지 않아 무척 당황해 보였습니다. 과거부터 엑셀에서 문자를 합칠 때 전통적으로 쓰이던 방식이 바로 & 연산자나 CONCATENATE 함수였습니다. 하지만 이 방식들은 합쳐야 할 셀이 10개만 넘어가도 수식이 엄청나게 길어지고, 글자 사이에 들어갈 구분 기호(쉼표나 공백 등)를 셀마다 일일이 넣어줘야 해서 무척 번거롭다는 치명적인 단점이 있죠.  10년 동안 실무를 하면서 이런 비효율적인 방식으로 아까운 시간을 허비하는 동료들을 정말 많이 봐왔습니다. 이 문제를 완벽하게 해결하고 엑셀의 신세계로 이끌어주는 주인공이 바로 엑셀 2019 버전부터 도입된 TEXTJOIN 함수 랍니다. TEXTJOIN 함수는 이름 그대로 '텍스트들을 하나로 연결해 주는' 아주 영리한 함수예요. 기존 함수들과 가장 큰 차이점은 딱 한 번만 구분 기호를 지정해 주면 지정한 범위의 모든 셀 사이에 그 기호를 자동으로 넣어준다는 것, 그리고 중간에 있는 빈 셀을 알아서 무시하고 건너뛸 수 있다는 점입니다. 함수의 구조도 원리만 알면 아주 직관적이고 다정해요. =TEXTJOIN(구분기호, 빈셀무시여부, 합칠범위) 형태로 작성해 주면 됩니다. 첫 번째 자리에 글자 사이에 넣고 싶은 쉼표나 공백( "...

엑셀 ROUND ROUNDUP ROUNDDOWN 함수 올림 버림 반올림 적용 방법

이미지
얼마 전 저희 팀의 자금 담당 주임님이 모니터를 보며 잔뜩 울상이 되어 계시더라고요. 해외 파트너사들과 환율을 적용해 정산서를 작성 중이었는데, 환율 계산기 특성상 소수점 아래 대여섯 자리까지 숫자가 길게 늘어져 있었던 것이죠. 주임님은 보기 좋게 정리하겠다며 엑셀 메뉴에 있는 '소수점 줄임' 버튼을 눌러 눈에 보이는 자릿수만 맞춰 놓으셨어요. 그런데 문제는 눈에는 반올림된 금액으로 보이지만, 엑셀은 셀 내부에 원래의 긴 소수점 데이터를 그대로 가지고 계산을 이어갔다는 점이었습니다.  결국 최종 합계 금액을 냈을 때 실제 청구서와 단 몇 원의 오차가 발생했고, 그 원인을 찾느라 수백 개의 행을 일일이 더블클릭하고 계셨답니다. 이처럼 눈에 보이는 서식만 바꾼 채 계산을 진행하면, 엑셀 내부의 실제 값과 화면에 표시된 값이 달라져 나중에 거대한 금액 오차라는 부메랑으로 돌아오게 됩니다. 10년 동안 정산 업무를 하면서 이런 사소한 자릿수 오류 때문에 재작업을 하는 경우를 정말 많이 목격했죠.  이 문제를 완벽하게 해결하려면 엑셀 함수를 이용해 데이터의 알맹이 자체를 원하는 자릿수에서 딱 끊어주어야 합니다. 이때 상황에 따라 사사오입(반올림)을 할 때는 ROUND , 무조건 숫자를 올려줄 때는 ROUNDUP , 미련 없이 끝자리를 잘라버릴 때는 ROUNDDOWN 함수를 선택해 사용하면 됩니다. 이 세 가지 함수의 사용법은 쌍둥이처럼 똑같아서 하나만 제대로 이해하면 모두 마스터할 수 있어요. =ROUND(내 숫자가 있는 셀, 지정할 자릿수) 의 형태로 적어주면 되죠. 여기서 많은 분이 가장 헷갈려하시는 부분이 바로 두 번째에 들어가는 '지정할 자릿수(숫자)'랍니다. 기준점은 바로 '소수점(0)'이에요. 소수점 첫째 자리까지 남기고 싶다면 1 , 소수점 둘째 자리까지 남기고 싶다면 2 를 적어주면 됩니다. 그렇다면 반대로 실무에서 가장 많이 쓰는 '원 단위'나 '십 원 단위' 절사는 어떻게 할까요...

엑셀 DATEDIF 함수 활용한 입사일 기준 근속연수 및 연차 계산법

이미지
얼마 전 저희 회사 총무팀의 한 주임님이 모니터에 가득 찬 직원 명단을 보며 머리를 싸매고 계시더라고요. 다가오는 사내 창립기념일을 맞아 장기 근속자 포상을 해야 하는데, 직원 백여 명의 입사일을 기준으로 '정확히 몇 년 몇 개월'을 근무했는지 오늘 날짜 기준으로 일일이 계산하고 있었던 것이죠.  단순히 올해 연도에서 입사 연도를 빼는 방식으로 계산하다 보니, 아직 생일이나 입사일이 지나지 않은 직원들의 만(滿) 근무 기간이 잘못 계산되어 포상 대상자가 뒤바뀔 뻔한 아찔한 상황이었습니다. 데이터가 수백 줄이 넘어가니 주임님의 눈은 이미 충혈되어 있었고, 마감 압박에 잔뜩 긴장한 모습이 참 안쓰러웠답니다. 실무에서 날짜와 날짜 사이의 정확한 간격을 구하는 것은 생각보다 까다롭습니다. 월마다 28일, 30일, 31일로 일수가 다르고 윤년까지 겹치기 때문이죠. 이럴 때 수작업이나 복잡한 사칙연산 대신 엑셀이 숨겨놓은 'DATEDIF' 함수를 사용하면 모든 문제가 아주 깔끔하게 해결됩니다.  재미있는 점은 이 함수가 엑셀의 함수 안내창에 나타나지 않는 '숨겨진 함수'라는 거예요. 하지만 수식을 직접 입력하면 아주 완벽하게 작동한답니다. 10년 동안 인사 데이터를 다루면서 이 함수 덕분에 살려낸 제 퇴근 시간만 해도 수십 시간은 될 정도로 실무자에게는 가뭄의 단비 같은 존재죠. DATEDIF 함수의 기본 구조는 아주 직관적이고 다정해요. =DATEDIF(시작일, 종료일, "비교단위") 의 형태로 작성해 주면 됩니다. 여기서 시작일은 '입사일'이 되고, 종료일은 '오늘 날짜(TODAY 함수 활용)'가 되겠죠. 가장 중요한 것은 마지막에 들어가는 비교 단위 옵션 이랍니다. 연도 수를 구하고 싶다면 "Y" , 총 개월 수를 구하고 싶다면 "M" , 총 일수를 구하고 싶다면 "D" 를 적어주면 됩니다. 만약 "우리 주임님처럼 ...

엑셀 SUMIFS 함수 다중 조건 합계 구하기 및 실무 예제 정리

이미지
얼마 전 저희 팀의 마케팅 담당 대리님이 수많은 행으로 이루어진 가맹점별 판매 매출 데이터를 붙잡고 멍하니 모니터를 바라보고 계시더라고요. 팀장님께서 "올해 1분기 동안 서울 강남점에서 판매된 'A 모델'의 총매출 합계를 당장 가져오라"고 지시하셨기 때문이었죠.  조건이 '1분기(기간)', '강남점(매장)', 'A 모델(상품)' 무려 세 가지나 되다 보니, 대리님은 필터 기능을 켜서 강남점을 고르고, 다시 날짜를 체크하고, 상품을 하나하나 클릭해가며 수동으로 합계를 계산하고 계셨습니다. 이 방식은 조건이 바뀔 때마다 필터를 다시 걸어야 하고, 실수로 행 하나라도 놓치면 데이터 전체가 틀어지는 위험천만한 상황이었죠. 이처럼 실무에서는 하나의 조건이 아니라 여러 개의 조건이 동시에 만족하는 합계를 구해야 하는 일이 대부분입니다. 이 문제를 해결하기 위해 제가 대리님께 알려준 함수가 바로 SUMIFS였습니다. 이름 뒤에 'S'가 붙은 것에서 알 수 있듯이, 여러 개(Plural)의 조건을 동시에 만족하는 범위를 찾아 합계를 내주는 아주 기특한 녀석이죠.  기존의 SUMIF 함수는 조건을 하나밖에 지정하지 못하지만, SUMIFS는 최대 127개의 조건까지 한 번에 처리할 수 있어서 복잡한 데이터 분석도 막힘없이 처리할 수 있답니다. 함수의 기본 구조만 이해하면 사용하는 방법은 생각보다 정말 간단해요. 엑셀 창에 =SUMIFS( 를 입력한 뒤, 가장 먼저 기억해야 할 것은 '내가 진짜로 더하고 싶은 숫자가 있는 범위'를 먼저 지정해 주는 것입니다. 그 뒤로는 [조건범위1, 조건1], [조건범위2, 조건2]... 의 형태로 짝을 지어 나열해 주기만 하면 끝이랍니다. 방금 대리님이 겪었던 실무 상황을 예제로 삼아 수식을 짜볼까요? 매출 금액이 D열, 매장 위치가 B열, 상품명이 C열에 있다고 가정해 볼게요. 강남점의 A 모델 매출 합계를 구하는 수식은 =SUMIFS(D:...

엑셀 INDEX MATCH 함수 조합 사용법 및 VLOOKUP 한계 극복하기

이미지
얼마 전 기획팀의 한 대리님이 대용량 자재 관리 테이블을 보며 깊은 한숨을 쉬고 계시더라고요. 사유를 보니, 제품명을 기준으로 왼쪽에 있는 '부품 번호'를 찾아와야 하는데 VLOOKUP 함수가 자꾸 에러를 뿜어낸다는 것이었습니다. 아시다시피 VLOOKUP은 기준이 되는 값이 무조건 찾으려는 범위의 '첫 번째 열(가장 왼쪽)'에 있어야만 작동하잖아요?  기준값보다 왼쪽에 있는 데이터는 죽었다 깨어나도 읽어오지 못하는 치명적인 약점이 있죠. 대리님은 결국 이 값을 찾으려고 수천 줄짜리 원본 데이터의 열 위치를 강제로 바꾸려다, 다른 셀에 걸려있던 수식들까지 줄줄이 깨져서 멘붕이 온 상태였습니다. 게다가 VLOOKUP은 데이터를 찾을 열의 위치를 '3', '4' 같은 고정된 숫자로 지정하다 보니, 중간에 새로운 열을 하나라도 삽입하면 순식간에 참조가 밀려 엉뚱한 값을 가져오는 대참사가 일어나기도 합니다.  10년 동안 이런 상황 때문에 수많은 동료가 밤새워 데이터를 복구하는 모습을 봐왔기에, 저는 대리님의 마우스를 잠시 멈추게 하고 VLOOKUP의 모든 한계를 단번에 날려버릴 INDEX MATCH 조합 을 처방해 주었습니다. 이 조합은 열의 위치에 구애받지 않고, 데이터가 왼쪽에 있든 오른쪽에 있든, 심지어 행과 열이 복잡하게 얽혀있든 상관없이 원하는 값을 정확하게 끄집어내는 만능 열쇠거든요. 처음에는 두 개의 함수가 합쳐져서 수식이 복잡해 보이지만, 원리만 이해하면 아주 직관적이에요. 역할을 분담하는 것이죠. MATCH 함수 는 "내가 찾고 싶은 값이 이 눈금판에서 몇 번째 자리에 있어?" 하고 위치(번지수)를 알려주는 역할을 합니다. 그리고 INDEX 함수 는 "그럼 내가 지정한 범위에서 방금 찾은 그 번지수에 있는 실제 값 을 쏙 꺼내올게!" 하고 최종 결과물을 배달해 주죠. 쉽게 말해 MATCH가 주소를 찾고, INDEX가 그 주소에 있는 택배를 가져오는 찰떡궁합 구...