본문으로 건너뛰기

신입 과정

1. 필수 함수(약 25분)

SUM, AVERAGE, COUNTIF, VLOOKUP, IF 함수의 사용법과 현장 활용 사례를 배웁니다.

엑셀을 못 다루면 하루가 두 시간 깁니다

현장에서 하루에 생기는 종이는 생산일보, 검사성적서, 자재수불부, 설비 점검표예요. 이 숫자들은 결국 누군가 엑셀에 옮겨 적습니다. 그 사람이 계산기로 두드려 합계를 넣으면 하루 두 시간이 사라지고, 그중 몇 개는 반드시 틀립니다.

부울경 제조업은 원청 – 1차 – 2차로 이어지는 협력사 구조라 우리가 만든 표가 그대로 원청에 올라가요. 합계가 한 번 틀리면 그 뒤로는 우리 자료 전체를 다시 검산하게 됩니다. 신뢰를 잃는 데는 오타 하나면 충분해요.

> 엑셀 실력은 함수를 몇 개 아느냐가 아니라 같은 숫자를 두 번 안 세게 만드느냐입니다.

함수보다 표가 먼저입니다 — 1행 1레코드

수식이 안 되는 대부분의 이유는 함수를 몰라서가 아니라 표가 잘못돼 있어서예요.

\\\` [나쁜 표 — 사람 눈에는 예쁘지만 함수는 못 읽는다]

A B C D 1 ┌──────── 8월 3일 생산실적 ────────┐ ← 제목을 병합해서 넣음 2 라인 품번 생산 불량 3 1라인 A-100 520 6 4 A-200 310 2 ← 라인 칸이 병합돼 비어 있음 5 2라인 B-100 480 11 6 합계 1310 19 ← 데이터 사이에 합계 행

[좋은 표 — 1행이 1건, 빈칸 없음]

A B C D E 1 일자 라인 품번 생산 불량 2 2026-08-03 1라인 A-100 520 6 3 2026-08-03 1라인 A-200 310 2 4 2026-08-03 2라인 B-100 480 11 \\\`

원칙은 셋입니다.

  1. 1행 = 1건 — 한 줄에 한 건만. 날짜가 같아도 반복해서 적으세요.
  2. 1열 = 1속성 — "1라인 A-100"처럼 한 칸에 두 정보를 넣지 않습니다.
  3. 표 안에 제목·합계·빈 행 금지 — 합계는 표 밖이나 다른 시트로.

> 병합셀이 현장 엑셀 최대의 적입니다. 병합된 표는 정렬도 필터도 피벗도 안 되고, VLOOKUP은 병합으로 생긴 빈칸을 만나 #N/A를 뱉어요. 보기 좋게 하고 싶으면 병합 대신 [셀 서식 → 맞춤 → 가로: 선택 영역의 가운데로]를 쓰세요. 겉보기는 같은데 셀은 안 합쳐집니다.

합계·평균·개수 — 네 개부터

\\\ =SUM(D2:D3000) 숫자 합계 =AVERAGE(D2:D3000) 평균 (빈칸은 제외, 0은 포함) =COUNT(D2:D3000) 숫자가 들어 있는 칸 개수 =COUNTA(B2:B3000) 비어 있지 않은 칸 개수 (문자 포함) \\\

AVERAGE는 빈칸을 빼고 계산합니다. "불량 0"을 빈칸으로 두면 그 날은 아예 계산에서 빠져 평균 불량이 실제보다 높게 나와요. 없으면 반드시 0을 적으세요.

조건이 붙으면 COUNTIFS · SUMIFS

현장 집계는 거의 전부 "1라인의", "8월 3일의", "치수불량인" 같은 조건이 붙습니다. 조건이 하나라도 COUNTIFS·SUMIFS를 쓰는 게 편해요. 조건을 나중에 늘릴 수 있으니까요.

\\\` 데이터 (시트 이름: 실적) A B C D E 1 일자 라인 품번 생산 불량 2 2026-08-03 1라인 A-100 520 6 ... 약 3,000행

[1라인 기록이 몇 건인가] =COUNTIFS(실적!B:B,"1라인")

[8월 3일 1라인 생산 합계] =SUMIFS(실적!D:D, 실적!B:B,"1라인", 실적!A:A,DATE(2026,8,3))

[불량이 5개를 넘은 건수] =COUNTIFS(실적!E:E,">5")

[조건을 셀에 적고 참조 — 하드코딩 금지] =SUMIFS(실적!D:D, 실적!B:B,$H2, 실적!A:A,$G$1) │ └ 합계낼 열은 항상 맨 앞 └ 조건 열, 조건 값 순서로 계속 추가

[부등호와 셀을 같이 쓸 때는 & 로 붙인다] =COUNTIFS(실적!E:E, ">" & $H$1) \\\`

조건을 큰따옴표 안에 직접 써 넣으면 라인이 하나 늘 때마다 수식을 전부 고쳐야 해요. 조건은 셀에 적고 그 셀을 가리키는 습관을 처음부터 들이세요.

VLOOKUP — 코드로 이름을 가져옵니다

품번만 찍혀 있는 실적표에 품명과 단가를 붙이는 일, 사번만 있는 근태표에 이름을 붙이는 일. 현장에서 가장 자주 쓰는 함수예요.

\\\` 품번마스터 (시트 이름: 마스터) A B C D 1 품번 품명 단가 고객사 2 A-100 브라켓L 1250 OO중공업 3 A-200 브라켓R 1280 OO중공업

[실적 시트에서 품번(C2)으로 품명 찾기] =VLOOKUP($C2, 마스터!$A$2:$D$500, 2, FALSE) │ │ │ └ FALSE = 정확히 일치 (반드시) │ │ └ 가져올 열 번호 (범위 왼쪽부터 2번째) │ └ 찾을 범위 — 절대참조($)로 고정 └ 찾을 값

[단가까지 가져오려면 열 번호만 바꾼다] =VLOOKUP($C2, 마스터!$A$2:$D$500, 3, FALSE) \\\`

VLOOKUP은 찾을 값이 범위의 맨 왼쪽 열에 있어야 합니다. 품명으로 품번을 거꾸로 찾는 건 안 돼요.

증상원인대처
#N/A마스터에 그 값이 없음, 앞뒤 공백, 대소문자 차이TRIM으로 공백 제거, 마스터 최신본 확인
엉뚱한 값이 나옴마지막 인자를 생략했거나 TRUE — 근사일치항상 FALSE 또는 0
아래로 끌었더니 전부 깨짐범위가 상대참조라 같이 밀려 내려감범위에 $ 고정 (F4)
숫자인데 못 찾음한쪽은 텍스트 "1001", 한쪽은 숫자 1001텍스트 나누기로 형식 통일

> 사람 이름을 키로 쓰지 마세요. 동명이인이 있고, 외국인 근로자 표기는 "응웬반남 / 응웬 반 남 / NGUYEN VAN NAM"처럼 사람마다 갈립니다. 키는 반드시 사번이나 품번 같은 코드여야 합니다.

XLOOKUP — 최신 버전이면 이쪽이 편합니다

\\\` =XLOOKUP($C2, 마스터!$A:$A, 마스터!$B:$B, "미등록") │ │ │ └ 못 찾았을 때 표시할 값 │ │ └ 가져올 열 │ └ 찾을 열 └ 찾을 값

  • 열 번호를 세지 않아도 됨
  • 왼쪽 방향으로도 조회 가능
  • 기본이 정확히 일치
  • 못 찾았을 때 값을 바로 지정 (IFERROR 불필요)

\\\`

다만 Excel 2019 이하에는 XLOOKUP이 없습니다. 현장 PC나 거래처 PC가 구버전이면 열자마자 #NAME? 이 뜹니다. 외부로 보내는 파일은 VLOOKUP으로 작성하거나, 계산이 끝난 뒤 [값 붙여넣기]로 숫자만 남겨 보내세요.

IF와 IFERROR

\\\` [불량률 3% 초과 판정] =IF(E2/D2>0.03, "관리이탈", "정상")

[중첩 — 큰 조건부터 순서대로] =IF(E2/D2>=0.05,"C", IF(E2/D2>=0.03,"B","A"))

[IFS — 중첩보다 읽기 쉽다 (2019 이후)] =IFS(E2/D2>=0.05,"C", E2/D2>=0.03,"B", TRUE,"A")

[0으로 나누기, 조회 실패 처리] =IFERROR(E2/D2, 0) =IFERROR(VLOOKUP($C2, 마스터!$A$2:$D$500, 2, FALSE), "미등록") \\\`

> IFERROR를 습관처럼 감싸면 안 됩니다. 오류가 해결되는 게 아니라 안 보이게 되는 거예요. 미등록 품번 30건이 전부 빈칸으로 바뀌어 집계에서 통째로 빠지는 사고가 실제로 납니다. 두 번째 값은 0이나 빈칸보다 "미등록"처럼 눈에 띄는 글자로 두세요.

TEXT — 숫자를 원하는 모양의 글자로

\\\` =TEXT(A2,"yyyy-mm-dd") 2026-08-03 =TEXT(A2,"yyyy-mm") 2026-08 ← 월별 집계용 키 =TEXT(A2,"aaa") 월 ← 요일 =TEXT(E2/D2,"0.00%") 1.15% =TEXT(B2,"0000") 0042 ← 앞자리 0을 살린 사번·로트번호

[제목 문자열 조립] ="8월 3일 1라인 불량률 " & TEXT(E2/D2,"0.00%") \\\`

TEXT의 결과는 숫자가 아니라 글자입니다. TEXT로 만든 값은 SUM이 안 돼요. 보여주기용으로만 쓰고 계산은 원래 숫자로 하세요.

신입이 첫 달에 하는 실수

실수결과
합계 행을 데이터 중간에 넣음SUM 범위에 합계가 또 들어가 두 배
필터 걸어놓고 SUMSUM은 숨겨진 행도 더합니다 — SUBTOTAL을 써야 함
계산기로 두드려 값만 입력원본이 바뀌어도 안 따라감
셀 병합정렬·필터·피벗이 전부 막힘
날짜를 "8/3" 텍스트로 입력정렬하면 8/3이 8/25보다 뒤로 감
원본 파일에 바로 수식을 얹음잘못 건드리면 되돌릴 원본이 없음

오늘 확인할 것

  • 내가 쓰는 표에 병합셀이 있는지 확인했다
  • 합계 행이 데이터 사이에 있지 않다
  • SUMIFS·COUNTIFS 조건을 셀 참조로 썼다
  • VLOOKUP 마지막 인자에 FALSE를 넣었다
  • 조회 범위에 $를 붙여 고정했다
  • 빈칸 대신 0을 입력했다

2. 데이터 정리(약 20분)

필터, 정렬, 조건부 서식, 데이터 유효성 검사를 학습합니다.

쓸 수 있는 데이터로 만드는 게 일의 절반입니다

ERP에서 내려받은 파일, 손으로 친 일보, 거래처가 보내준 엑셀. 세 개의 형식이 전부 달라요. 여기서 함수를 바로 쓰면 #N/A가 쏟아지고, 결국 "엑셀이 이상하다"는 말이 나옵니다. 이상한 건 엑셀이 아니라 데이터예요.

정제 → 집계 → 표시 순서를 지키면 뒤 단계가 훨씬 쉬워집니다.

정렬 — 표 전체를 잡고 하세요

한 열만 선택한 채로 정렬 버튼을 누르면 그 열만 움직여 다른 열과 어긋납니다. 불량 수량이 다른 품번에 붙어버리는 거예요. 이건 눈으로 봐서는 알 수가 없습니다.

  • "선택 영역 확장" 경고가 뜨면 반드시 확장을 고르세요.
  • Ctrl+Z로 되돌릴 수 있지만, 저장하고 닫았으면 끝입니다.
  • 정렬하기 전에 원본 순번 열(1, 2, 3…)을 하나 만들어 두세요. 언제든 원래 순서로 되돌릴 수 있습니다.

필터 — 데이터에 뭐가 들어 있는지 보는 가장 빠른 도구

Ctrl+Shift+L 로 켜고 끕니다. 필터의 진짜 쓸모는 드롭다운 목록 그 자체예요.

라인 열의 목록을 열었는데 "1라인", "1 라인", "1라인 " 세 개가 보인다면 표기가 흔들린 겁니다. 이 상태로 COUNTIFS를 돌리면 건수가 셋으로 쪼개져요. 목록을 먼저 보고 정제 대상을 찾으세요.

\\\` [필터로 보이는 행만 계산할 때] =SUBTOTAL(109, D2:D3000) 보이는 행만 합계 =SUBTOTAL(103, B2:B3000) 보이는 행만 개수(COUNTA)

9 / 109 : SUM (109는 수동으로 숨긴 행도 제외) 1 / 101 : AVERAGE 2 / 102 : COUNT 3 / 103 : COUNTA \\\`

필터를 걸어놓고 SUM을 쓰면 숨겨진 행까지 다 더합니다. 화면에는 1라인만 보이는데 합계는 전체가 나와요. 이걸 모르고 보고했다가 숫자가 안 맞는 일이 흔합니다.

텍스트 나누기 — 한 칸에 두 정보가 들어 있을 때

\\\` [원본 — 한 칸에 세 정보가 다 들어 있음] A2 : 2026-08-03/1라인/A-100

[데이터 → 텍스트 나누기 → 구분 기호로 분리 → 기타: /] A2: 2026-08-03 B2: 1라인 C2: A-100 \\\`

> 나눈 결과가 오른쪽 칸을 덮어씁니다. 실행 전에 오른쪽에 빈 열을 필요한 만큼 삽입해 두세요. 덮어쓴 데이터는 Ctrl+Z 말고는 복구 방법이 없습니다.

진짜 중요한 용도는 "텍스트로 저장된 숫자" 고치기

\\\` 증상 - 숫자인데 셀 안에서 왼쪽으로 붙어 있다 - SUM을 해도 0이 나온다 - 셀 왼쪽 위에 녹색 삼각형이 있다 - VLOOKUP이 #N/A를 낸다

해결 열 전체 선택 → 데이터 → 텍스트 나누기 → [다음] → [다음] → 열 데이터 서식 [일반] → 마침

(아무것도 나누지 않고 마침만 눌러도 서식이 다시 잡힙니다)

날짜라면 마지막 단계에서 [날짜: YMD] 를 고르세요 \\\`

ERP 다운로드 파일과 외부 거래처 엑셀에서 가장 자주 만나는 문제예요. VLOOKUP #N/A의 절반이 여기서 옵니다.

\\\ [공백·표기 정리 함수] =TRIM(A2) 앞뒤 공백과 중복 공백 제거 =SUBSTITUTE(A2," ","") 공백을 전부 제거 (품번·사번용) =UPPER(TRIM(A2)) 대문자로 통일 (외국인 근로자 영문명) \\\

중복 제거 — 반드시 사본에서

\\\` [먼저 몇 건인지 센다 — 지우기 전에] =COUNTIFS($B$2:$B$3000, $B2) 2 이상이면 중복

[위에서부터 몇 번째 등장인지 표시] =IF(COUNTIFS($B$2:$B2, $B2) > 1, "중복", "") └ 시작만 고정, 끝은 고정하지 않는 것이 핵심

[실제 제거] 데이터 → 중복된 항목 제거 → 기준으로 삼을 열만 체크 \\\`

> 중복 제거는 되돌릴 수 없다고 생각하고 쓰세요. 시트를 복사해 사본에서 실행하고 원본은 그대로 둡니다. 기준 열을 잘못 고르면(예: 품번만 체크) 날짜가 다른 정상 데이터까지 한꺼번에 사라집니다.

로트번호나 일련번호가 중복이라면 지우기 전에 왜 두 번 들어왔는지부터 확인하세요. 이중 입력인지, 실제로 재작업해서 두 번 흐른 건인지에 따라 처리가 완전히 다릅니다.

데이터 유효성 검사 — 틀린 값이 애초에 못 들어오게

\\\` 데이터 → 데이터 유효성 검사

[라인명을 목록에서만 고르게] 제한 대상: 목록 원본: 1라인,2라인,3라인,조립 (또는 별도 시트의 범위를 지정)

[불량 수량은 0 이상 정수만] 제한 대상: 정수 제한 방법: 해당 범위 최소값: 0

[생산일자에 미래 날짜 입력 금지] 제한 대상: 날짜 제한 방법: 다음 값보다 작거나 같음 종료 날짜: =TODAY() \\\`

외국인 근로자 비중이 높은 라인에서 특히 효과가 큽니다. 자유 입력이면 같은 라인 이름이 사람마다 갈리는데, 목록에서 고르게 하면 표기가 하나로 고정돼요. [설명 메시지] 탭에 모국어 안내를 함께 적어두면 오입력이 더 줄어듭니다.

한계도 알아두세요. 유효성 검사는 직접 입력만 막습니다. 붙여넣기로 들어오는 값은 그대로 통과해요. 주기적으로 COUNTIFS를 돌려 목록에 없는 값이 섞였는지 점검해야 합니다.

조건부 서식 — 관리한계를 눈에 보이게

\\\` [불량률 3% 초과 행 전체를 빨갛게] 범위 선택 : A2:E3000 홈 → 조건부 서식 → 새 규칙 → 수식을 사용하여 서식 지정 수식 : =$E2/$D2>0.03 └ 열만 고정($E), 행은 고정 안 함 → 행 전체가 칠해짐

[관리상한·하한을 벗어난 측정값] =OR($C2>$H$1, $C2<$H$2) H1 = UCL, H2 = LCL

[규격 안이지만 한계에 근접 — 노란색 규칙을 따로] =OR($C2>$H$1-$I$1, $C2<$H$2+$I$1) I1 = 여유폭 \\\`

수식형 조건부 서식의 규칙은 하나예요. 선택 범위의 첫 행(여기서는 2행)을 기준으로 수식을 쓰고, 고정할 것에만 $를 붙인다. $E2처럼 열만 고정하면 행 전체가 같이 반응합니다.

관리한계 값은 수식에 직접 쓰지 말고 셀에 적어두고 참조하세요. 공정 조건이 바뀌어 한계가 변하면 셀 하나만 고치면 됩니다. 수식에 박아두면 규칙을 전부 다시 만들어야 해요.

데이터 막대와 색조는 편하지만 보고용에는 부적합합니다. 기준이 그 범위 안에서 상대적으로 잡히기 때문에, 같은 3%인데 어제 파일과 색이 다르게 나와요. 관리한계처럼 절대 기준이 있는 것은 반드시 수식 규칙으로 만듭니다.

> 색은 세 가지를 넘기지 마세요. 빨강(즉시 조치) · 노랑(주의) · 무색(정상) 이면 충분합니다. 색이 많아지면 아무도 안 봅니다.

정리 끝난 표인지 확인하는 체크리스트

  • 병합셀 0개
  • 1행 1건, 표 안에 빈 행·합계 행 없음
  • 날짜 열이 오른쪽 정렬인지 확인 (왼쪽이면 텍스트)
  • 숫자 열에 녹색 삼각형이 없는지
  • 키 열(품번·사번)에 공백·중복이 없는지 COUNTIFS로 확인
  • 라인·불량유형 같은 분류 열은 유효성 검사 목록으로 고정
  • 원본 파일은 손대지 않고 사본에서 작업

경력 과정

1. 피봇테이블과 차트(약 25분)

피봇테이블 생성, 슬라이서 활용, 꺾은선/막대/원형 차트 작성을 배웁니다.

3,000행을 5분 만에 읽어야 합니다

경력자에게 요구되는 건 입력이 아니라 판단이에요. 월말 회의에서 "이번 달 불량 뭐가 제일 많았죠?", "2라인만 왜 높습니까?" 라는 질문에 그 자리에서 답할 수 있어야 합니다. 함수를 새로 짜고 있으면 회의는 이미 끝나 있어요.

피벗테이블은 수식 한 줄 없이 집계를 만듭니다. 조건이 바뀌면 필드를 끌어다 놓으면 끝이에요.

피벗을 만들기 전에 충족돼야 할 조건

  • 1행 1레코드
  • 첫 행이 머리글이고, 빈 머리글이 없을 것
  • 병합셀 없음
  • 중간에 빈 행으로 끊기지 않을 것

여기에 하나 더. 원본 범위를 표(Ctrl+T)로 만들어 두세요. 행이 추가되면 표 범위가 자동으로 늘어나서, 매달 피벗 원본 범위를 다시 잡을 필요가 없습니다. 이거 하나로 "새로 넣은 데이터가 피벗에 안 나온다"는 문제의 절반이 사라져요.

불량 집계 피벗 만드는 절차

\\\` 1 원본 표 안의 아무 셀 클릭 → 삽입 → 피벗 테이블 → 새 워크시트

2 필드를 영역에 끌어 놓는다

행(Rows) : 불량유형 열(Columns) : 라인 값(Values) : 불량수량 → 합계 필터(Filters) : 일자, 품번

3 값이 "합계"가 아니라 "개수"로 잡혔다면 값 필드 클릭 → 값 필드 설정 → 계산 유형: 합계

※ 개수로 잡히는 이유는 그 열에 빈칸이나 텍스트가 섞여 있기 때문입니다. 피벗을 고치지 말고 원본 열을 고치세요.

4 구성비가 필요하면 값 필드 설정 → 값 표시 형식 → 총합계 비율 \\\`

생산실적 집계는 축을 시간으로

\\\` 행 : 일자 (날짜 필드는 우클릭 → 그룹 → 월/주 단위로 묶기) 열 : 라인 값 : 생산수량 → 합계 불량수량 → 합계

날짜 그룹화가 안 되면 그 열이 진짜 날짜가 아니라 텍스트입니다. → 텍스트 나누기로 [날짜: YMD] 지정 후 다시 시도 \\\`

비율을 잘못 내는 것이 가장 흔한 사고

\\\` 피벗 테이블 분석 → 필드/항목/집합 → 계산 필드

이름 : 불량률 수식 : =불량수량 / 생산수량

[왜 계산 필드를 써야 하는가]

A라인 : 생산 10개, 불량 1개 → 10.00% B라인 : 생산 1000개, 불량 10개 → 1.00%

각 라인 불량률을 단순 평균하면 (10 + 1) / 2 = 5.50% 실제 전체 불량률은 11 / 1010 = 1.09%

다섯 배 차이입니다. 비율의 평균은 전체 비율이 아닙니다. \\\`

이 실수는 보고서에 그대로 실려 나가기 때문에 특히 위험해요. 비율 항목은 반드시 합계끼리 나눈 값이어야 합니다.

파레토 — 무엇부터 잡을지 결정하는 표

\\\` 피벗 결과를 [홈 → 붙여넣기 → 값]으로 옮긴 뒤 정렬(내림차순)

A B C D 1 불량유형 건수 누적건수 누적비율 2 치수불량 412 412 41.2% 3 외관스크래치 268 680 68.0% 4 버(burr) 150 830 83.0% 5 조립불량 98 928 92.8% 6 기타 72 1000 100.0%

C2 : =B2 C3 : =C2+B3 아래로 채우기 D2 : =C2/$C$6 ← 마지막 누적값을 절대참조로 고정 \\\`

상위 3개가 83%예요. 여기부터 손대는 것이 파레토 원칙입니다. 개선 회의에 이 표 하나만 있으면 "무엇부터 할까"를 두고 벌어지는 논쟁이 짧아집니다.

\\\ [파레토 차트 만들기] 1 A1:B6 을 선택하고 Ctrl 누른 채 D1:D6 을 추가 선택 2 삽입 → 묶은 세로 막대형 3 누적비율 계열 클릭 → 차트 종류 변경 → 표식이 있는 꺾은선형 + [보조 축] 체크 4 보조 축 최대값을 1.0 으로 고정 (자동으로 두면 달마다 눈금이 달라져 비교가 안 됩니다) 5 가로축은 건수 기준 내림차순 정렬 상태 유지 \\\

어떤 차트를 쓸 것인가

묻는 것쓸 차트피할 것
시간에 따른 변화 (일별 불량률, 월별 생산량)꺾은선3D, 영역형
항목 간 크기 비교 (라인별 실적)막대원형
무엇이 큰 문제인가파레토(막대+꺾은선)
구성비원형·도넛 — 항목 5개 이하일 때만항목 많으면 가로 막대
두 값의 관계 (온도 vs 불량)분산형꺾은선
공정이 관리 상태인가관리도(꺾은선 + UCL/LCL 기준선)막대
  • 원형 차트는 조각이 5개를 넘으면 아무도 못 읽습니다. 3D 원형은 앞쪽 조각이 실제보다 커 보여 왜곡돼요. 원청 제출 자료에는 쓰지 마세요.
  • 막대 차트의 세로축은 0에서 시작합니다. 축을 잘라내면 3% 차이가 두 배 차이처럼 보여요. 꺾은선은 잘라도 되지만 축에 기준을 명시하세요.
  • 범례가 두세 개면 범례 대신 선 끝에 직접 이름을 붙이는 것이 읽기 편합니다.

슬라이서와 시간 표시 막대

\\\` 피벗 선택 → 피벗 테이블 분석 → 슬라이서 삽입 : [라인] [반] [불량유형] → 시간 표시 막대 삽입 : [일자]

여러 피벗을 하나의 슬라이서로 묶으려면 슬라이서 우클릭 → 보고서 연결 → 연결할 피벗 체크 단, 대상 피벗들이 같은 원본(같은 피벗 캐시)을 써야 합니다 \\\`

회의 중에 "2라인만 볼까요"라는 말이 나왔을 때 클릭 한 번으로 대응할 수 있습니다. 필터 드롭다운과 달리 지금 무엇이 걸려 있는지 화면에 보인다는 게 큰 장점이에요. 필터가 걸린 줄 모르고 숫자를 읽는 사고를 막아줍니다.

경력자가 잡아야 할 함정

증상원인조치
새로 넣은 데이터가 안 나옴원본 범위 고정, 새로고침 안 함원본을 표(Ctrl+T)로, Alt+F5 새로고침
합계가 아니라 개수로 집계됨값 열에 텍스트·빈칸이 섞임원본 열 정제 후 새로고침
같은 라인이 두 줄로 나옴"1라인"과 "1라인 " (뒤 공백)TRIM으로 정제 후 새로고침
사라진 항목이 목록에 남음피벗 캐시에 옛 항목이 남아 있음피벗 옵션 → 데이터 → 필드당 보존 항목 수: 없음
불량률 평균이 이상함비율의 평균을 냄계산 필드로 합계 나누기
파일이 무거워 열리지 않음피벗 캐시가 원본을 통째로 품음피벗 옵션 → 파일에 원본 데이터 저장 해제

보고서로 내보내기 전 점검

  • 피벗을 새로고침했다 (Alt+F5)
  • 슬라이서·필터가 의도한 상태인지 화면으로 확인했다
  • 비율 항목이 계산 필드로 되어 있다
  • 차트 세로축이 0에서 시작하거나 기준을 명시했다
  • 보조 축 최대값을 고정했다
  • 외부 제출본은 값 붙여넣기로 수식을 제거했다
  • 집계 기준(기간, 제외 조건)을 표 아래에 한 줄로 적었다

2. 매크로 기초(약 20분)

VBA 매크로 녹화, 간단한 자동화 스크립트, 반복 작업 자동화를 학습합니다.

매크로는 "엑셀 잘하는 사람"이 아니라 "같은 일을 반복하는 사람"이 씁니다

매일 아침 세 개 라인의 일보 파일을 열어, 열 순서를 맞추고, 서식을 정리하고, 합쳐서 한 장으로 만드는 데 25분. 이걸 1년 하면 100시간이 넘습니다. 이런 작업이 자동화 대상이에요.

반대로 연말에 한 번 하는 재고 정산을 자동화하겠다고 이틀을 쓰면 그건 손해입니다. 자동화는 취향이 아니라 계산으로 결정합니다.

자동화 대상 선정 — 시간부터 계산하세요

\\\` 연간 절감시간 = (1회 소요분 × 연간 횟수) - 만드는 시간 - 연간 유지시간

[예 1] 일일 생산일보 취합 1회 25분 × 연 250회 = 6,250분 ≈ 104시간 만드는 데 8시간, 연간 유지·수정 4시간 → 절감 92시간. 만든다.

[예 2] 연 1회 재고 정산 1회 3시간 × 1회 = 3시간 만드는 데 6시간 → 손해. 손으로 합니다.

[예 3] 월 1회 원가 집계 1회 90분 × 12회 = 18시간 만드는 데 6시간, 유지 2시간 → 절감 10시간. 애매하면 파워 쿼리부터 검토. \\\`

조건판정
매일·매주 반복 + 절차 고정 + 입력 형식 동일1순위
반복은 잦은데 예외 처리가 많다양식·규칙을 먼저 통일. 자동화는 그다음
사람의 판단이 들어간다 (합부 판정, 특채 여부)자동화 대상 아님
연 1~2회하지 마세요

> 어지러운 일을 자동화하면 어지러움이 빨라질 뿐입니다. 양식 통일 → 코드 체계 표준화 → 자동화. 이 순서를 건너뛴 자동화는 반드시 다시 만들게 됩니다.

매크로 녹화 — 코드를 몰라도 시작할 수 있습니다

\\\` 1 개발 도구 탭 표시 파일 → 옵션 → 리본 사용자 지정 → [개발 도구] 체크

2 개발 도구 → 매크로 기록 이름 : 일보서식정리 (공백 불가, 숫자로 시작 불가) 저장 위치 : 현재 통합 문서

3 실제 작업을 한 번 그대로 수행 (열 삭제, 정렬, 서식 지정, 시트 이름 변경 등)

4 기록 중지

5 Alt+F8 실행 / Alt+F11 코드 확인 \\\`

녹화의 한계를 반드시 알고 쓰세요. 녹화는 "내가 클릭한 셀 주소"를 그대로 기억합니다. 데이터가 100행일 때 녹화하면 다음 달 130행이 돼도 100행까지만 처리해요. 나머지 30행은 조용히 빠집니다. 그래서 녹화한 코드는 손을 봐야 쓸 수 있습니다.

녹화 코드를 고치는 최소 지식 세 가지

\\\` ' 녹화된 코드 — 셀 주소가 박혀 있고 Select 가 많다 Sub 일보서식정리() Sheets("실적").Select Range("A1:E100").Select Selection.Sort Key1:=Range("A2") End Sub

' 고친 코드 — 마지막 행을 매번 찾고, Select 를 쓰지 않는다 Sub 일보서식정리() Dim ws As Worksheet Dim lastRow As Long

Set ws = ThisWorkbook.Sheets("실적") lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

ws.Range("A1:E" & lastRow).Sort _ Key1:=ws.Range("A2"), Order1:=xlAscending, Header:=xlYes End Sub \\\`

  1. Select / Selection 을 지운다 — 개체에 직접 지시하세요. 화면이 튀지 않고 훨씬 빠릅니다.
  2. 마지막 행을 찾는다 — Cells(Rows.Count, "A").End(xlUp).Row
  3. 시트를 이름으로 명시한다 — ThisWorkbook.Sheets("실적"). 활성 시트에 의존하면 엉뚱한 시트를 건드립니다.

반복 처리 예제

\\\` ' 불량률 3% 초과 행에 표시를 남기고 건수를 알려준다 Sub 불량점검() Dim ws As Worksheet Dim i As Long, lastRow As Long, cnt As Long

Set ws = ThisWorkbook.Sheets("실적") lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

For i = 2 To lastRow If ws.Cells(i, 4).Value > 0 Then ' D열 생산수량 If ws.Cells(i, 5).Value / ws.Cells(i, 4).Value > 0.03 Then ws.Cells(i, 6).Value = "관리이탈" cnt = cnt + 1 End If End If Next i

MsgBox "관리이탈 " & cnt & "건" End Sub \\\`

생산수량이 0인지 먼저 확인하는 줄이 없으면 0으로 나누기 오류로 매크로가 그 자리에서 통째로 멈춥니다. 수식은 오류 셀 하나만 #DIV/0! 이 되고 나머지는 계산되지만, VBA는 중단돼요. 이미 처리한 행은 바뀌어 있고 나머지는 안 바뀐 어중간한 상태가 남습니다.

매크로를 쓸 때의 현실적 제약

항목내용
확장자.xlsm 으로 저장해야 매크로가 남습니다. .xlsx로 저장하면 코드가 사라져요
되돌리기매크로 실행 후 Ctrl+Z가 안 됩니다. 실행 전 사본 저장은 선택이 아니라 필수
보안 경고다른 PC에서 열면 [콘텐츠 사용]을 누르기 전까지 동작 안 함. 메일로 받은 .xlsm은 회사 정책상 차단되기도 합니다
인수인계만든 사람이 나가면 아무도 못 고칩니다
클라우드웹용 엑셀·구글 스프레드시트에서는 VBA가 동작하지 않습니다

> 협력사 현장에서 흔한 사고가 "전임자가 만든 매크로 파일이 어느 날 오류를 내는데 아무도 손을 못 대는" 상황입니다. 매크로를 만들었다면 반드시 두 가지를 함께 남기세요. ① 무엇을 하는 코드인지 한 장짜리 설명, ② 매크로 없이 수동으로도 할 수 있는 절차. 이 두 개가 없는 자동화는 자산이 아니라 부채입니다.

코드 맨 위에 이 정도는 적어두세요.

\\\ ' ============================================ ' 목적 : 3개 라인 일보를 취합해 월보 시트 생성 ' 대상 : 실적 시트 (A:F), 마스터 시트 (품번) ' 작성 : 2026-08-04 생산관리 홍OO ' 수정 : 2026-08-20 4라인 추가 (김OO) ' 주의 : 실행 전 파일 사본 저장. 되돌리기 불가. ' ============================================ \\\

매크로보다 먼저 검토할 것

  • 파워 쿼리 (데이터 → 데이터 가져오기 및 변환) — 여러 파일 합치기, 열 분리, 형식 정제, 중복 제거는 코드 없이 됩니다. 한 번 만들어 두면 [새로 고침] 한 번으로 반복돼요. 취합 작업은 매크로보다 파워 쿼리가 유지보수하기 쉽습니다.
  • ERP/MES 표준 리포트 — 이미 시스템에 있는 기능을 엑셀로 다시 만드는 경우가 의외로 많습니다. 전산 담당자에게 먼저 물어보세요.

엑셀의 한계 — DB로 넘어갈 시점

엑셀은 훌륭한 계산기이고 나쁜 데이터베이스입니다. 아래 신호가 두 개 이상이면 옮길 때예요.

신호무엇이 문제인가
행이 수만 단위로 늘고 파일이 무거워짐열고 저장하는 데 분 단위. 시트 최대 1,048,576행이라는 물리 한계도 있음
"최종_최종_v3_수정본.xlsx" 가 돌아다님어느 게 진짜인지 아무도 모름
두 사람이 동시에 못 고침한 명이 열면 나머지는 읽기 전용
같은 정보를 여러 파일에 중복 입력한쪽만 고쳐져 숫자가 안 맞음
누가 언제 무엇을 바꿨는지 모름이력 추적 불가 — 원청 감사에서 소명이 안 됨
파일끼리 수식으로 참조가 얽힘파일 하나 이름만 바꿔도 전부 #REF!
권한 구분이 필요 (단가는 일부만 봐야 함)시트 보호로는 못 막음

전환은 한 번에 하지 말고 단계로 갑니다.

\\\` 1단계 엑셀 정리 1행 1레코드, 병합 제거, 품번·설비·불량유형 코드 체계 정립 2단계 파워 쿼리 여러 파일을 자동 취합, 원본 파일은 그대로 유지 3단계 공유 입력 사내 웹 폼 / 공유 시트로 입력 창구를 하나로 4단계 ERP/MES 연동 생산실적·품질 데이터를 시스템에 직접 입력

1단계를 건너뛰면 어느 단계에서도 실패합니다. 데이터 정리 없이 시스템만 도입한 회사는 결국 엑셀로 돌아옵니다. \\\`

스마트공장 지원사업으로 MES를 도입할 때도 같아요. 품번·설비번호·불량유형 코드 체계를 먼저 정리해 둔 회사와 아닌 회사는 구축 기간과 재작업량이 크게 갈립니다. 지원금 신청보다 코드 정리가 먼저입니다.

점검 목록

  • 자동화 후보의 연간 절감시간을 계산해봤다
  • 양식·코드 체계가 통일된 뒤에 자동화한다
  • 사람의 판단이 들어가는 공정을 자동화 대상에서 뺐다
  • .xlsm 으로 저장하고, 실행 전 사본을 남긴다
  • 코드 상단에 목적·작성자·수정이력·주의사항을 적었다
  • 매크로 없이 수동으로 하는 절차를 문서로 남겼다
  • 취합 작업은 파워 쿼리로 대체 가능한지 먼저 검토했다
  • DB 전환 신호가 몇 개인지 점검했다

TEAM AI ASSESSMENT

채용 전 검증, 입사 후 교육 — 팀 AI 역량, 숫자로 관리하세요

4영역 실측 팀 진단, 4주 실무 교육, 재진단 델타 리포트까지. 1인 3만원부터.

AQ 팀 진단·교육 알아보기