충북대 · 생성형 AI 업무효율화2일차

충북대학교 교직원 · 생성형 AI 활용 업무효율화 실습 심화교육 · 과정1

2일차 — 엑셀 수식 · VBA 매크로 · 데이터에서 보고서까지

2026. 7. 16.(목) 10:00–17:00 · PC 전산실습실 · 강사 이신우

오늘의 한 문장 오늘은 데이터가 주인공입니다. 지저분한 엑셀 한 장이 결재 가능한 보고서가 되어 나갑니다.

2일차 · 10:00–10:50 · 1교시 · M6

복습과 엑셀–AI 워크플로우 개요

어제 만든 것을 회수하고, 오늘 쓸 파일을 전원이 엽니다.

이 50분 산출물 없음 — 대신 출장비_원본.xlsx를 전원이 열고, 오늘 잡을 함정을 미리 눈으로 훑습니다

시간 앵커(강사용) — 10:00~10:15 환경 점검(AI 로그인 + 교내 플랫폼 크레딧 잔량·엑셀·한글·파일 3종) · 10:15~10:30 어제 회수와 오늘 흐름 · 10:30~10:50 파일 열고 함정 미리보기(CP6). 10:50에 반드시 끝냅니다. 그룹 크레딧이 이미 얕으면 지금 개인 클로드 계정으로 전환시키십시오 — 오후에 막히면 복구가 안 됩니다.

어제 만든 4종, 손에 들고 계십니까복습

어제 여러분은 초안을 만드는 사람에서 초안을 검수하는 사람으로 자리를 옮겼습니다.

  • 보고서 초안 — 역할·맥락·형식·제약 4요소로 받은 첫 산출물
  • 공문 초안 — 수신 / 제목 / 1. 관련 / 2. 본문 / 붙임 / 끝
  • 규정 개정안 3종 — 개정안 조문 · 신·구조문대비표 · 개정이유
  • 최종 .hwpx 보고서 — 검수·교정까지 마친 결재 가능 문서

그리고 어제의 2단계 파이프라인
오늘 마지막 시간에 그대로 다시 씁니다.

AI가 내용(JSON)을 만들고 → hwpx_fill.py가 한글 서식 템플릿에 채워 넣는다. 이 구조는 오늘 M10에서 재등장합니다.

오늘의 흐름 — 파일 하나가 문서가 되기까지개요

시작은 지저분한 원본 .xlsx 한 장입니다. 끝은 결재 가능한 .hwpx 보고서입니다.

M7 · 수식으로 집계 2교시

부서별 합계를 AI가 짜준 수식으로 낸다. 11:00–11:50

M8 · 매크로로 자동화 3교시

부서별 시트 분리 + 서식을 F5 한 번에. 13:00–13:50

M9 · 데이터 정리 4교시

함정 5종을 걷어내면 합계가 달라진다. 14:00–14:50

M10 · 데이터 → .hwpx 5교시

집계 결과를 어제의 템플릿에 채운다. 15:00–15:50

M11 · 내 업무 적용 6교시

자동화 적용 계획표 3행을 채운다. 16:00–16:50

어제 ✕ 오늘

1일차 HWPX와 2일차 엑셀은 M10에서 만납니다.

엑셀–AI 워크플로우 — AI가 맡는 칸은 하나뿐개념

오늘 하루가 이 다섯 칸입니다. 어느 칸을 AI에게 주고 어느 칸을 내가 쥘지, 지금 정해 둡니다.

  • ① 데이터 정리 — 사람이 판단합니다. 무엇이 중복이고 무엇이 정상인지는 업무를 아는 사람만 압니다. (M9)
  • ② 집계엑셀이 계산합니다. AI에게 암산을 시키지 않습니다. (M7 수식 · M10 피벗)
  • ③ 수식·코드 작성여기만 AI입니다. 대신 데이터 구조를 말로 설명해 줘야 합니다. (M7 · M8)
  • ④ 문장화 — AI가 초안을 씁니다. 숫자는 내가 준 것만 쓰게 못 박습니다. (M10)
  • ⑤ 서식·결재 — 한글 템플릿이 맡습니다. 책임은 사람이 집니다. (어제 M4의 2단계 파이프라인)

계산은 엑셀이,
문장은 AI가,
판단은 사람이.

실습 6-1 · 출장비_원본.xlsx 열기실습

  1. 탐색기에서 충북대AI실습 폴더를 엽니다. 어제 쓰던 PC가 아니거나 초기화됐을 수 있습니다. 아래 3개가 보이는지 확인하고, 없으면 지금 다시 받으십시오.
  2. 랜딩페이지 실습자료 영역에서 3개를 내려받습니다 — 출장비_원본.xlsx · 보고서_템플릿.hwpx · hwpx_fill.py(파이썬이 없는 PC는 hwpx_fill.exe). 뒤의 두 개는 오후 M10에서 씁니다.
  3. 출장비_원본.xlsx를 엑셀로 엽니다. 시트명이 원본인지 확인합니다.
  4. A~E열이 부서 / 성명 / 구분 / 집행일 / 금액 순인지 확인합니다.
  5. 머리글 1행 + 데이터 12행. 그리고 3개 파일이 같은 폴더에 있습니다. 여기까지 확인되면 준비 끝.
다운로드 주소 — 필수 3개 + 선택 1개(파이썬 없는 PC만 hwpx_fill.exe)
https://duonedu.net/edu/26/0715-16-chungbuk/files/출장비_원본.xlsx
https://duonedu.net/edu/26/0715-16-chungbuk/files/보고서_템플릿.hwpx
https://duonedu.net/edu/26/0715-16-chungbuk/files/hwpx_fill.py
# 파이썬이 없는 PC만
https://duonedu.net/edu/26/0715-16-chungbuk/files/hwpx_fill.exe
오후 15:00에 멈추지 않으려면 지금 받아야 합니다. M10 캡스톤은 보고서_템플릿.hwpxhwpx_fill.py엑셀 파일과 같은 폴더에 있다고 전제합니다. 어제 받았더라도 이 PC에 있는지 지금 눈으로 확인하십시오.
경고창이 뜨지 않습니다. 이 파일에는 매크로가 없습니다(.xlsx). 매크로 보안 경고가 뜬다면 다른 파일을 연 것입니다.
엑셀 파일을 AI에 첨부해서 구조를 설명하게 할 수도 있습니다. 충북대 AI 플랫폼(aigpt.cbnu.ac.kr)은 엑셀·PDF·워드·한글·이미지 업로드를 지원합니다. 대화창의 파일 첨부출장비_원본.xlsx를 올리고 아래 한 줄만 시켜 보십시오. 오늘 오전 내내 손으로 설명할 구조를 AI가 먼저 읽어 줍니다.
단, 개인정보(주민번호·전화번호·이메일 등)가 든 파일은 업로드가 자동 차단될 수 있습니다. 실습 파일은 가상 데이터라 걸리지 않습니다. 그리고 수식을 만들 때는 파일을 첨부했더라도 열 구조를 글로 다시 적어 주는 편이 정확합니다(M7).
첨부 후 한 줄 — 구조 파악용
첨부한 엑셀의 시트명과 각 열이 무엇인지,
데이터가 몇 행인지 표로 정리해 주십시오.
값을 고치거나 계산하지는 마십시오.

열어 둔 표를 30초만 훑어보십시오데모

  1. A열(부서) — 같은 부서 이름이 두 줄로 갈라져 보이는 곳이 있습니까? 아직 답은 말하지 않습니다.
  2. C열(구분) — ‘국내출장’이라고 쓴 칸과 다르게 생긴 칸이 있습니까?
  3. E열(금액)왼쪽으로 붙어 있는 숫자가 있습니까? 오른쪽 정렬이 아닌 칸이 보입니까?
  4. D열(집행일) — 날짜 쓰는 방식이 전부 같습니까?
  5. 똑같은 사람이 똑같은 날 똑같은 금액으로 두 번 나오는 행이 있습니까?
  6. 지금 눈에 띈 것을 손가락 개수로 표시해 보십시오. 정답은 오후 14시(M9)에 공개합니다.
지금 고치지 마십시오. 오전(M7)에는 원본을 건드리지 않고 수식만으로 버텨 봅니다. 원본을 직접 정리하는 것은 오후 M9의 일입니다. 지금은 보기만 하십시오.

CP6 · 전원 파일이 열렸습니까체크포인트

  • 시트 탭에 원본이 보인다
  • 머리글 1행 + 데이터 12행이 있다
  • E열이 금액이다
  • 출장비_원본.xlsx · 보고서_템플릿.hwpx · hwpx_fill.py(또는 .exe) 3개가 같은 폴더에 있다
  • AI가 열려 있다 — 교내 플랫폼(aigpt.cbnu.ac.kr, 개신누리 계정 SSO) 또는 개인 클로드 계정. 둘 중 하나면 됩니다. 오늘 프롬프트는 어느 쪽에서도 똑같이 동작합니다.
  • 교내 플랫폼을 쓰는 분은 우측 상단 크레딧 잔량을 지금 한 번 확인하십시오. 오늘은 하루 종일 씁니다.
  • 파일이 안 열린다 / 시트명이 다르다 / 3개 중 하나라도 없다 / 로그인이 안 된다 → 손을 드십시오. 지금 해결합니다.

한 가지만 더 묻겠습니다

이 표를 훑어보고 “어, 이거 좀 이상한데” 싶은 곳이 눈에 띈 분 계십니까?

지금 보이는 그 이상함이, 오후 14시(M9)에 우리가 함정 5종이라고 부르게 될 것입니다. 아직 답은 말하지 않겠습니다.

여기까지 됐으면 손 드세요

막히는 지점 — 플랫폼 접속 편트러블슈팅

  • 교내 플랫폼 로그인이 안 된다

    원인 개신누리 계정 SSO 연동 지연입니다.
    해법 비밀번호를 최근에 바꿨다면 5~10분 뒤 다시 시도하십시오. 신분(소속·재직 구분)이 바뀐 직후라면 학내 시스템 반영에 1~2일이 걸립니다. 브라우저는 Chrome / Edge를 쓰십시오. 그래도 안 되면 오늘은 개인 클로드 계정으로 실습하십시오 — 프롬프트는 동일하게 동작합니다.

  • 크레딧이 부족하다 / 응답이 안 나온다

    원인 플랫폼은 사용량 기반 크레딧으로 운영되고, 월 그룹 크레딧은 소속 신분 그룹 전체가 공유합니다. 40명이 동시에 실습하면 줄어드는 속도가 빠릅니다.
    해법 우측 상단에서 잔량을 확인하고, Super Agent는 소모가 크니 오늘 실습에서는 쓰지 마십시오. 일반 모델로 충분합니다. 그룹 크레딧이 막히면 개인 클로드 계정으로 전환해 계속 진행합니다. (매뉴얼 원문: “연구실·강의 실습 등 대량 사용 전에는 사용량을 미리 점검하세요.”)

  • 파일 업로드가 자동으로 차단됐다

    원인 주민등록번호·신용카드·여권·운전면허·생년월일·전화번호·이메일이 든 파일은 업로드가 자동 차단될 수 있습니다.
    해법 해당 열을 지우거나 익명화한 사본을 만들어 올리십시오. 차단에 안 걸린다고 올려도 되는 문서라는 뜻은 아닙니다 — 대외비·인사·미공개 예산 자료는 애초에 올리지 않습니다.

1교시 종료 · 10:50

휴식 10분 · 11:00에 2교시를 시작합니다

다음은 M7 · 어려운 수식을 프롬프트로 해결 (11:00–11:50)

  • 출장비_원본.xlsx는 열어 둔 채로 자리를 비우십시오. 다시 열 필요 없습니다.
  • 파일을 못 받은 분 · 시트명이 다른 분은 지금 강사에게 오십시오. 쉬는 시간에 해결합니다.
  • 클로드 로그인이 안 된 분도 지금입니다. 2교시는 프롬프트를 바로 실행합니다.

11:00 2교시 시작 — 늦어도 정시에 시작합니다

2일차 · 11:00–11:50 · 2교시 · M7

어려운 수식을 프롬프트로 해결

수식을 외우는 시간이 아니라, 수식을 시키는 법을 배우는 시간입니다.

산출물 수식 적용 워크시트

시간 앵커(강사용)11:30까지 실습 7-2(흡수 후 I열)가 끝나야 합니다. 못 끝낸 수강생이 3명 이상이면 7-2는 강사 시연으로 전환하고 CP7-2의 I8=975,000을 함께 확인한 뒤 CP7-3(저장)으로 넘어갑니다. 실습 7-3과 ‘텍스트형 숫자’ 개념은 심화(선택)으로 뒤에 배치돼 있습니다.

AI에게 필요한 건 수식 실력이 아니라 구조 설명개념

“부서별 합계 내줘”로는 안 됩니다. AI는 여러분의 엑셀 화면을 보고 있지 않습니다.

  • 시트명이 무엇인지 — 원본
  • 어느 열에 무엇이 있는지 — A:부서 B:성명 C:구분 D:집행일 E:금액
  • 어느 범위인지 — A2:A13
  • 무엇을 구하는지 — 부서별 국내출장 금액 합계

수식 실력이 아니라
설명 실력이 결과를 만듭니다.

구조를 안 알려주면 이런 수식이 옵니다데모

나쁜 프롬프트
엑셀에서 부서별 출장비 합계 내는 수식 좀 알려줘
돌아온 수식
=SUMIF(A:A, "총무과", B:B)
  1. 합계 범위가 B열입니다. B열은 성명입니다 → 붙여넣으면 0이 나옵니다.
  2. ‘국내출장’ 조건이 없습니다. 국외출장까지 다 더해집니다.
  3. 시트가 특정되지 않았습니다. 다른 시트에서 참조하면 #REF!가 뜹니다.
  4. AI가 무능한 게 아닙니다. 물어본 사람이 데이터를 안 알려준 것입니다.

실습 7-1 · 부서별 국내출장 금액 합계실습

  1. 원본 시트 G1부서, H1흡수 전 합계, I1흡수 후 합계라고 입력합니다.
  2. G2:G7에 부서명 6개를 직접 입력합니다 — 총무과 · 교무과 · 학생과 · 연구지원과 · 입학과 · 기획과.
  3. 오른쪽 프롬프트를 복사 버튼으로 가져가 클로드에 붙여넣고 실행합니다.
  4. AI가 준 수식을 H2에 넣고, H2 오른쪽 아래 채우기 핸들(작은 네모)을 잡아 H7까지 끌어 채웁니다.
  5. 수식과 함께 온 한 줄 설명을 읽어 보십시오. 어느 부분이 조건이고 어느 부분이 합계인지 확인합니다.
  6. G8총계라고 입력하고, H8=SUM(H2:H7), I8=SUM(I2:I7)을 넣습니다. (I열은 7-2에서 채웁니다 — 지금 I8은 0입니다.) 오후에 이 I8을 다시 봅니다.
  7. 이 수식에는 공백·표기 흔들림 방어가 없습니다. H열에 0이 여러 개 찍힐 겁니다. 그게 정상입니다.
  8. H2:H7에 값 6개(0 포함)가 나오면 일단 통과. 맞는 숫자인지는 아직 묻지 않습니다.
프롬프트 — 라이브러리 §3-1 (1차 · 순진한 수식)
엑셀 수식을 만들어 주십시오.

[데이터 구조]
- 시트명: 원본
- A열: 부서 (A2:A13)
- B열: 성명
- C열: 구분 (국내출장 / 국외출장)
- D열: 집행일
- E열: 금액

[구하려는 것]
부서별 국내출장 금액 합계
- 부서명은 G2:G7에 있습니다. 결과는 H2:H7에 넣겠습니다.

[집계표 위치]
- 같은 시트 G2:G7에 부서명 6개를 직접 입력해 두었습니다.
  (총무과 / 교무과 / 학생과 / 연구지원과 / 입학과 / 기획과)
- 수식은 H2에 넣고 H7까지 끌어 채울 것입니다.
  같은 행의 G열 부서명을 조건으로 참조하게 해 주십시오.

[요청]
1. 수식을 주십시오.
2. 각 부분이 무슨 일을 하는지 한 줄씩 설명해 주십시오.
3. 이 수식이 틀릴 수 있는 상황도 알려 주십시오.

CP7-1 · 수식이 값을 냅니까체크포인트

  • 셀에 숫자가 나온다
  • #NAME? → 함수 이름 오타이거나, 내 엑셀 버전에 없는 함수다
  • #VALUE! → 계산에 텍스트가 섞여 들어갔다 (오후에 다룹니다)
  • #REF! → 시트명·범위가 실제와 다르다

아직 묻지 않은 질문

“이 숫자가 맞는 숫자입니까?”

지금은 묻지 않겠습니다. 다음 장에서 여러분은 이 합계가 틀렸다는 것을 알게 됩니다.

숫자가 나왔으면 손 드세요

그런데 이 합계, 믿을 수 있습니까개념

여러분이 방금 받은 수식은 정상 작동합니다. 문제는 수식이 아닙니다.

  • 이 데이터에는 함정이 심어져 있습니다. 다섯 종류입니다.
  • 수식은 시키는 대로 정확히 계산했습니다. 잘못된 데이터를 정확히 계산했습니다.
  • 오류 메시지는 뜨지 않습니다. 그래서 아무도 눈치채지 못합니다.

“수식이 돌아간다”“숫자가 맞다”
완전히 다른 문제입니다.

‘총무과’와 ‘총무과 ’ — 공백 한 칸이 부서를 둘로 나눕니다데모

엑셀 화면: 총무과가 두 개의 행으로 갈라져 각각 집계되고 있고, 선택된 셀의 수식 입력줄에 부서명 뒤 공백이 보인다
같은 부서가 두 줄로 갈라져 집계된 화면
  1. 집계 결과에 총무과가 두 번 나옵니다. 부서는 하나인데 말입니다.
  2. 해당 셀을 클릭하고 수식 입력줄을 보십시오. 커서가 글자 끝보다 한 칸 뒤에 섭니다.
  3. 엑셀에게 "총무과""총무과 "완전히 다른 문자열입니다.
  4. 사람 눈에는 보이지 않습니다. 그래서 위험합니다.
  5. 원본을 고치는 방법도 있지만, 오전에는 수식만으로 흡수하겠습니다.
  6. 공백만 문제가 아닙니다. 금액이 텍스트로 들어간 행도 섞여 있습니다 — 다음 실습에서 함께 흡수합니다.

실습 7-2 · TRIM·SUBSTITUTE·VALUE로 흡수하기실습

  1. 새 대화를 열지 마십시오. 실습 7-1의 같은 대화창에 이어서, 오른쪽 문장을 후속 지시로 붙여넣습니다.
  2. AI가 앞의 수식을 고쳐서 새 수식을 줍니다.
  3. 새 수식을 I2에 넣고 I7까지 끌어 채웁니다. (H열은 지우지 마십시오 — 비교 대상입니다)
  4. H열(흡수 전)과 I열(흡수 후)을 나란히 비교합니다. 0이던 칸에 값이 생겼으면 성공입니다.
  5. H와 I가 전부 똑같다면 AI가 TRIM·SUBSTITUTE·VALUE를 안 넣은 것입니다. 수식을 눈으로 확인하십시오.
프롬프트 — 라이브러리 §3-1b (후속 지시 · 같은 대화에 이어서)
[주의할 점]
- 부서명 뒤에 공백이 붙은 데이터가 있습니다. (예: "총무과 ")
- 구분이 "국내출장"과 "국내 출장"으로 섞여 있습니다.
- 금액(E열)에 텍스트로 저장된 숫자가 있습니다. (예: "143,000", "88000")

위 세 가지를 수식 안에서 흡수해 주십시오.
(공백은 TRIM, 표기 흔들림은 SUBSTITUTE,
 텍스트형 숫자는 VALUE로 되살려 합산)

원본 데이터는 고치지 말고, 수식만으로 해결해 주십시오.
새 수식은 I2에 넣고 I7까지 끌어 채울 것입니다.
왜 원본을 안 고칩니까. 오전에는 “원본을 건드리지 않고도 되는가”를 먼저 봅니다. 원본을 직접 고치는 방법은 오후 M9에서 다룹니다.

CP7-2 · 흡수 전(H) vs 흡수 후(I) — 숫자가 달라졌습니까체크포인트

  • 학생과 — H 0 → I 85,000. 값이 생겼다. (‘국내 출장’ 표기를 흡수한 증거)
  • 연구지원과 — H 0 → I 77,000. 값이 생겼다.
  • 총무과 — H 96,000 → I 239,000으로 늘었다. (후행 공백 ‘총무과 ’ 행이 편입 + 텍스트형 "143,000" 복구)
  • 입학과 — H 0 → I 176,000. 금액이 텍스트라 SUMIFS가 조용히 무시했던 것이다.
  • 교무과는 398,000 그대로, 기획과는 0 그대로다 — 이게 정상입니다. (교무과는 원래 표기가 깨끗했고, 기획과는 국외출장뿐입니다)
  • 총계 — H8 = 494,000, I8 = 975,000
엑셀 화면: G열 부서명, H열 흡수 전(순진한 SUMIFS), I열 흡수 후(TRIM·SUBSTITUTE·VALUE)가 나란히 있다. 총계는 H8 494,000, I8 975,000이다
부서별 국내출장 합계 — H(흡수 전) vs I(흡수 후)

I8이 975,000이면 손 드세요. 이 숫자를 종이에 적어 두십시오 — 오후에 다시 씁니다

CP7-3 · M7 산출물 확보 — 수식 적용 워크시트산출물

  • TRIM·SUBSTITUTE가 들어간 부서별 집계 수식이 워크시트에 있다
  • 수식이 숫자를 낸다 (오류 아님)
  • 흡수 전(H열) / 흡수 후(I열) 두 값을 모두 남겨 두었다
  • H8·I8에 총계가 들어 있다 (=SUM(H2:H7) / =SUM(I2:I7)) — 오후에 이 칸을 다시 봅니다
  • 파일을 저장했다 — 오후에 이 파일을 계속 씁니다

M7 산출물

수식 적용 워크시트

단, 이 워크시트의 합계는 아직 틀린 숫자입니다. 오후 14시(M9)에 그 이유를 증명합니다.

저장까지 됐으면 손 드세요

심화(선택) · 실습 7-3 — “이 수식이 언제 틀립니까”라고 물어보기심화(선택)

  1. 방금 받은 수식이 있는 대화창에서 오른쪽 문장을 붙여넣습니다.
  2. AI가 말하는 한계를 읽습니다. (범위 밖 데이터 / 대소문자 / 빈 셀 / 텍스트형 숫자 …)
  3. 그중 우리 데이터에 실제로 해당되는 것이 몇 개인지 세어 봅니다.
  4. AI가 스스로 말한 한계 중 하나가 오후에 우리가 잡을 함정입니다.
프롬프트 — 라이브러리 §3-1 [요청] 3번
이 수식이 틀린 값을 낼 수 있는 상황을 전부 알려 주십시오.
없으면 없다고만 답하십시오.
이 한 줄이 검수의 시작입니다. AI에게 “정답”을 시키지 말고 “네 한계를 말해라”를 시키십시오. 검수할 지점을 AI가 직접 알려주게 됩니다.

심화(선택) · 텍스트형 숫자 — SUM이 조용히 무시합니다심화(선택)

E열의 "143,000"은 숫자처럼 보이지만 숫자가 아닙니다. 글자입니다.

  • SUM은 텍스트를 만나면 그냥 건너뜁니다.
  • 오류가 나지 않습니다. 경고도 없습니다. 합계가 조용히 작아질 뿐입니다.
  • 구별법: 셀 값이 왼쪽으로 붙어 있으면 텍스트, 오른쪽이면 숫자입니다.

오류는 눈에 띕니다.
조용한 누락은 눈에 띄지 않습니다.
그래서 가장 위험합니다.

막히는 지점 — 수식 편트러블슈팅

  • #VALUE! 가 뜬다

    원인 텍스트형 숫자를 계산에 넣었습니다.
    해법 해당 셀을 VALUE()로 감싸거나, 오후 M9에서 데이터 자체를 정리합니다.

  • 값이 계속 0으로 나온다

    원인 SUMIFS의 조건 범위와 합계 범위의 행 수가 다릅니다.
    해법 두 범위를 같은 행 수로 맞추십시오. (A2:A13 ↔ E2:E13)

  • {중괄호} 수식이 안 먹는다

    원인 엑셀 버전이 낮아 동적 배열 함수를 지원하지 않습니다.
    해법 오른쪽 문장으로 다시 요청하십시오.

  • AI에게 다시 요청하는 문장

    복사해서 그대로
    동적 배열 함수(FILTER, UNIQUE, XLOOKUP 등) 없이
    구버전 엑셀에서도 동작하는 수식으로 다시 주십시오.
    SUMIFS, SUMPRODUCT 범위 안에서 해결해 주십시오.

심화(선택) · 국외출장까지 포함한 부서별 2열 집계

  1. 실습 7-2를 끝낸 분만 하십시오. 아직인 분은 7-2를 계속하십시오.
  2. 지금 쓰던 같은 대화에 오른쪽 한 줄을 이어서 붙여넣습니다. (새 대화를 열지 마십시오 — 표 구조를 다시 설명해야 합니다)
  3. 받은 수식을 국내출장 열국외출장 열 두 칸에 각각 넣습니다.
  4. 두 열의 합이 그 부서의 전체 금액과 같은지 확인하십시오. 다르면 SUBSTITUTE로 흡수하지 못한 표기가 남아 있는 것입니다.
후속 지시 (같은 대화에 이어서)
같은 표에서 구분별로도 나눠 주십시오.
부서별 × 국내출장 / 국외출장 2열 집계 수식을 주십시오.

부서명과 구분의 앞뒤 공백·표기 불일치는
앞서와 같이 TRIM·SUBSTITUTE로 흡수해 주십시오.

‘구분’ 열에도 표기 불일치가 숨어 있습니다(‘국내출장’ / ‘국내 출장’). 부서에 쓴 방어를 구분에도 똑같이 겁니다.

2교시 종료 · 11:50

휴식 10분 → 점심 12:00–13:0013:00에 3교시

다음은 M8 · VBA 매크로 자동 생성 (13:00–13:50)

  • 지금 저장하고 나가십시오. H열·I열 집계표가 든 파일을 오후에 그대로 씁니다.
  • I8 = 975,000 — 이 숫자를 종이에 적어 두셨습니까? 오후 M9에서 이 숫자가 달라집니다.
  • 오후 첫 시간은 붙여넣고 F5입니다. 자리에 13:00까지 앉아 계시면 됩니다.

13:00 3교시 시작 — 점심 후 정시에 시작합니다

2일차 · 13:00–13:50 · 3교시 · M8

VBA 매크로 자동 생성

코딩을 배우는 시간이 아닙니다. 붙여넣고 F5를 누르는 시간입니다.

산출물 동작하는 매크로 (.xlsm)

시간 앵커(강사용)13:30까지 실습 8-2(F5 실행)를 통과하지 못한 수강생이 3명 이상이면 8-1(직접 프롬프트로 생성)은 포기하고 랜딩의 정답_VBA코드.bas를 배포해 붙여넣게 한 뒤 8-3·8-4를 우선 완료합니다. .xlsm 저장(8-4)은 M8의 산출물이므로 절대 생략하지 않습니다.

매크로 = 반복 업무를 한 번에개념

오늘 만들 매크로가 하는 일은 딱 세 가지입니다.

  • 부서별로 시트를 나눈다 — 총무과 시트, 교무과 시트, 입학과 시트 …
  • 각 시트 머리글에 서식을 준다 — 굵게 + 배경색
  • 열 너비를 자동 맞춤한다 — 글자가 잘리지 않게

손으로 하면 부서 수만큼 반복,
매크로면 F5 한 번.

VBA 프롬프트에 반드시 넣는 두 줄개념

이 두 줄은 문체 취향이 아닙니다. 실제로 강의가 멈춘 사고를 막는 장치입니다.

① MsgBox를 쓰지 마십시오. 실행이 멈춥니다.

MsgBox는 모달 대화상자입니다. 사람이 [확인]을 누를 때까지 매크로가 멈춰 섭니다. 결과(새 시트)는 눈에 보이므로 알림이 필요 없습니다.

② 여러 번 실행해도 오류가 나면 안 됩니다.

“기존에 만든 시트가 있으면 먼저 지우고 다시 만드십시오.” 이 방어가 없으면 두 번째 실행에서 ‘이미 있는 시트 이름’ 오류로 죽습니다.

수강생은 매크로를 반드시 두 번, 세 번 돌려 봅니다. 그것이 정상입니다. 코드가 그것을 견뎌야 합니다.

MsgBox가 들어가면 실행이 멈춥니다데모

이렇게 오면 곤란한 코드
For i = 2 To lastRow
    Set dst = Worksheets.Add
    dst.Name = ws.Cells(i, 1).Value
    MsgBox dept & " 시트를 만들었습니다"   ' ← 여기서 멈춘다
Next i
40명이 동시에 이걸 만나면 25개의 대화상자가 뜨고, 강의가 멈춥니다. 게다가 두 번째 F5에서는 ‘이미 있는 시트 이름’ 런타임 오류로 코드가 죽습니다.
  1. F5를 누르면 시트를 하나 만들 때마다 대화상자가 뜹니다. 부서가 6개면 6번 [확인]을 눌러야 합니다.
  2. 대화상자가 뜬 동안 엑셀은 아무것도 하지 않습니다. 매크로의 존재 이유가 사라집니다.
  3. 이제 F5를 한 번 더 누릅니다. → 런타임 오류 1004. ‘총무과’ 시트가 이미 있기 때문입니다.
  4. 이 두 장면이 앞 장의 두 줄이 존재하는 이유입니다.

실습 8-1 · VBA 생성 프롬프트실습

  1. 오른쪽 프롬프트를 복사합니다. [반드시 지켜야 할 조건] 4개를 지우지 마십시오.
  2. 클로드에 붙여넣고 실행합니다.
  3. 받은 코드 전체를 복사합니다. (Sub부터 End Sub까지)
  4. 코드 안에 MsgBox가 없는지 눈으로 확인하십시오. 있으면 “MsgBox를 빼 주십시오”라고 다시 요청합니다.
프롬프트 — 라이브러리 §3-2
엑셀 VBA 매크로를 만들어 주십시오.

[현재 상황]
- 시트 "원본"에 A~E열로 데이터가 있습니다.
  (부서 / 성명 / 구분 / 집행일 / 금액)
- 1행은 머리글입니다.

[하고 싶은 일]
부서별로 시트를 나누고,
각 시트의 머리글을 굵게 + 배경색 적용해 주십시오.

[반드시 지켜야 할 조건]
1. MsgBox를 쓰지 마십시오. 실행이 멈춥니다.
2. 여러 번 실행해도 오류가 나지 않아야 합니다.
   (기존에 만든 시트가 있으면 먼저 지우고 다시 만드십시오)
   기존 시트를 지울 때는 For Each가 아니라
   뒤에서부터 인덱스로 도는 루프를 쓰십시오.
3. 코드에 한글 주석을 달아 주십시오.
4. 부서명은 Trim()으로 앞뒤 공백을 제거한 뒤 시트 이름으로 쓰십시오.
   ("총무과 "와 "총무과"가 같은 시트로 가야 합니다)

Alt+F11 → 삽입 → 모듈 → 붙여넣기 → F5데모

  1. Alt + F11 — VBA 편집기가 열립니다. 리본에 ‘개발 도구’ 탭이 없어도 열립니다.
  2. 상단 메뉴 삽입 → 모듈 — 흰 코드 창이 하나 생깁니다. (이 창에 붙여넣습니다)
  3. AI가 준 코드를 그 흰 창에 붙여넣습니다. Ctrl+V
  4. F5 — 실행. 커서가 Sub 안에 있어야 합니다.
  5. Alt + F11을 다시 눌러 엑셀로 돌아옵니다. 시트 탭을 보십시오.
이 다섯 줄이 오늘 배우는 전부입니다. VBA 문법은 한 줄도 외우지 않습니다. 문법은 AI가 씁니다. 여러분은 붙여넣고 F5를 누릅니다.

실습 8-2 · 코드 붙여넣고 실행실습

  1. Alt+F11 — VBA 편집기를 엽니다.
  2. 메뉴 삽입 → 모듈.
  3. AI가 준 코드를 붙여넣습니다. (안 되면 오른쪽 정답 코드를 쓰십시오)
  4. F5 로 실행합니다.
  5. 엑셀로 돌아가 시트 탭을 확인합니다. 부서 수만큼 시트가 생겼습니까?
정답 VBA — 부서별_시트분리_및_서식적용() · ↕ 박스 안에서 스크롤
Sub 부서별_시트분리_및_서식적용()
    ' 원본 시트를 부서별로 분리하고 서식을 일괄 적용한다.
    ' 부서명 앞뒤 공백은 Trim으로 흡수한다 ('총무과 ' → '총무과')
    Dim ws As Worksheet, dst As Worksheet
    Dim lastRow As Long, i As Long, k As Long
    Dim dept As String
    Dim seen As Object
    Set seen = CreateObject("Scripting.Dictionary")

    Set ws = ThisWorkbook.Worksheets("원본")

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    ' [재실행 안전장치] 원본 외의 기존 부서 시트를 먼저 정리한다.
    ' 반드시 뒤에서 앞으로(Step -1) 지운다. For Each로 순회하며 지우면
    ' 컬렉션이 줄어들면서 열거자가 항목을 건너뛸 수 있다.
    For k = ThisWorkbook.Worksheets.Count To 1 Step -1
        If ThisWorkbook.Worksheets(k).Name <> "원본" Then
            ThisWorkbook.Worksheets(k).Delete
        End If
    Next k

    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

    For i = 2 To lastRow
        dept = Trim(ws.Cells(i, 1).Value)
        If dept <> "" Then
            If Not seen.Exists(dept) Then
                Set dst = ThisWorkbook.Worksheets.Add( _
                    After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count))
                dst.Name = dept
                ' 행 전체가 아니라 A~E 범위만 복사한다 (불필요한 서식 전파 방지)
                ws.Range("A1:E1").Copy dst.Range("A1")
                dst.Rows(1).Font.Bold = True
                dst.Rows(1).Interior.Color = RGB(220, 230, 245)
                seen.Add dept, 2
            Else
                Set dst = ThisWorkbook.Worksheets(dept)
            End If
            ws.Range(ws.Cells(i, 1), ws.Cells(i, 5)).Copy dst.Cells(seen(dept), 1)
            seen(dept) = seen(dept) + 1
        End If
    Next i

    For Each dst In ThisWorkbook.Worksheets
        dst.Columns("A:E").AutoFit
        dst.Columns("E").NumberFormat = "#,##0"
    Next dst

    ws.Activate
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub

CP8-1 · 부서별 시트가 생겼습니까체크포인트

  • 시트 탭에 원본 + 부서 시트 6개(총무과·교무과·학생과·연구지원과·입학과·기획과)가 있다
  • 각 시트 1행 머리글이 굵게 + 배경색이다
  • 열 너비가 자동 맞춤되어 글자가 잘리지 않는다
  • ‘총무과 ’(후행공백)가 총무과에 합쳐졌다 — 코드에 Trim()이 들어갔다는 증거
  • ‘총무과’ 시트와 ‘총무과 ’ 시트가 따로 생겼다 → Trim 처리가 없다
매크로 실행 후 부서별 시트 탭이 생성되고 머리글이 굵게 배경색 처리된 엑셀 화면
F5 한 번의 결과 — 부서별 시트 + 서식

시트가 생겼으면 손 드세요

실습 8-3 · F5를 한 번 더 눌러보세요실습

  1. Alt+F11F5. 같은 매크로를 다시 실행합니다.
  2. 오류가 나는지 봅니다. ‘런타임 오류 1004 — 이미 있는 시트 이름’이 뜹니까?
  3. 오류가 났다면 재실행 방어가 없는 코드입니다. 오른쪽 번 문장으로 다시 요청하십시오.
  4. ‘총무과’ 시트와 ‘총무과 ’ 시트가 따로 생겼다면 Trim()이 없는 코드입니다. 오른쪽 번 문장으로 고쳐 받으십시오. CP8-1의 통과 조건입니다.
  5. 오류 없이 다시 만들어졌고 시트가 부서 수만큼만 있으면 정상입니다.
① 프롬프트 — 재실행 안전 요구
여러 번 실행해도 오류가 나지 않도록,
기존에 만든 시트가 있으면 먼저 삭제한 뒤
다시 만들도록 코드를 고쳐 주십시오.

MsgBox는 넣지 마십시오.
② 프롬프트 — 부서명 공백 정리(Trim)
부서명을 Trim()으로 정리한 뒤 시트 이름으로 쓰도록
코드를 고쳐 주십시오.
"총무과 "와 "총무과"가 하나의 시트로 합쳐져야 합니다.
수강생은 매크로를 반드시 두세 번 돌립니다. 이 방어가 없으면 두 번째 실행에서 강의가 멈춥니다.

실습 8-4 · .xlsm으로 저장 — 매크로 보존실습

  1. 파일 → 다른 이름으로 저장.
  2. 파일 형식 드롭다운을 엽니다.
  3. Excel 매크로 사용 통합 문서 (*.xlsm) 를 선택합니다.
  4. 파일명을 출장비_매크로.xlsm으로 저장합니다.
  5. 제목표시줄에 .xlsm이 보이면 완료. 이 파일이 M8의 산출물입니다.
.xlsx로 저장하면 매크로가 조용히 사라집니다.
엑셀은 “매크로 없는 형식으로 저장하시겠습니까?”라고 한 번 묻습니다. 여기서 무심코 [예]를 누르면 방금 만든 코드가 통째로 날아갑니다. 파일은 멀쩡히 열리고, 매크로만 없습니다.
왜 우리가 .xlsm을 배포하지 않았는가. 인터넷에서 받은 .xlsm은 Office가 Mark of the Web으로 매크로를 기본 차단합니다. 그래서 여러분이 직접 만들어 저장하게 한 것입니다. 내가 만든 파일은 차단되지 않습니다.

CP8-2 · M8 산출물 확보 — 동작하는 매크로(.xlsm)산출물

  • 제목표시줄 파일명이 출장비_매크로.xlsm이다
  • 파일을 닫았다 다시 열어도 Alt+F11에 모듈과 코드가 그대로 있다
  • 다시 F5를 눌러도 오류 없이 시트가 재생성된다
  • 매크로가 사라졌다 → .xlsx로 저장한 것입니다. 실습 8-4를 다시 하십시오.

M8 산출물

동작하는 매크로 (.xlsm)

다음 시간(M9)부터는 이 출장비_매크로.xlsm을 계속 씁니다. 저장하지 않으면 4교시에 처음부터 다시 만들어야 합니다. 지금 저장하십시오.

저장까지 됐으면 손 드세요. 13:50 휴식 · 14:00에 4교시.

막히는 지점 — 매크로 편트러블슈팅

  • “매크로가 차단되었습니다” 빨간 띠가 뜬다

    원인 인터넷에서 내려받은 파일입니다. Office가 Mark of the Web으로 매크로를 기본 차단합니다.
    해법 그래서 우리는 .xlsm을 배포하지 않고 여러분이 직접 만들게 했습니다. 남이 보낸 .xlsm을 꼭 열어야 한다면 → 파일 우클릭 → 속성 → 하단 ‘차단 해제’ 체크 → 확인 후 다시 엽니다.

  • ‘이미 있는 시트 이름’ 런타임 오류 (1004)

    원인 재실행 방어가 없는 코드입니다. 두 번째 F5에서 죽습니다.
    해법 실습 8-3의 문구를 그대로 붙여넣어 코드를 고쳐 받으십시오.

  • “VBA 프로젝트에 프로그래밍 방식으로 액세스할 수 없습니다”

    원인 외부 프로그램이 코드를 자동으로 주입하는 것을 막는 보안 설정입니다.
    해법 우리가 하는 Alt+F11 직접 붙여넣기와는 무관합니다. 그대로 진행하면 됩니다. 설정을 바꿀 필요 없습니다.

  • F5를 눌러도 아무 일이 안 일어난다

    원인 커서가 Sub … End Sub 바깥에 있습니다.
    해법 코드 안쪽을 한 번 클릭한 뒤 F5를 누르십시오. 매크로 목록이 뜨면 이름을 골라 [실행].

심화(선택) · 금액 상위 3건을 노란색으로 칠하는 기능 추가

  1. 실습 8-4(.xlsm 저장)까지 끝낸 분만 하십시오.
  2. 매크로를 만들던 같은 대화에 오른쪽 문장을 이어서 붙여넣습니다.
  3. 받은 코드로 모듈 내용을 교체하고 F5. 그리고 한 번 더 F5.
  4. 두 번째 F5에서 오류가 나거나 대화상자가 뜨면 조건이 무너진 것입니다. 조건 3줄을 다시 붙여 요청하십시오.
  5. 각 부서 시트에서 금액 상위 3건의 셀이 노랗게 칠해졌는지 확인합니다.
후속 지시 (같은 대화에 이어서)
이 매크로에 기능을 하나 추가해 주십시오.
각 부서 시트에서 금액(E열)이 큰 상위 3건의 셀을
노란색 배경으로 칠해 주십시오.

기존 조건은 그대로 유지하십시오.
1. MsgBox를 쓰지 마십시오.
2. 여러 번 실행해도 오류가 나지 않아야 합니다.
3. 부서명은 Trim()으로 앞뒤 공백을 제거해 주십시오.

기능을 추가할 때 조건을 다시 적어 주는 것이 요령입니다. 안 적으면 AI가 조용히 MsgBox를 되살립니다.

3교시 종료 · 13:50

휴식 10분 · 14:00에 4교시를 시작합니다

다음은 M9 · 데이터 정리·요약 (14:00–14:50)

  • 출장비_매크로.xlsm을 저장했습니까? 4교시는 이 파일로 계속합니다. 새 파일을 열지 마십시오.
  • 4교시에 아침에 낸 합계가 틀렸다는 것을 여러분 손으로 증명합니다.
  • I8 = 975,000을 적어 두셨습니까? 없으면 지금 화면에서 확인해 두십시오.

14:00 4교시 시작 — 함정 5종 전체 공개

2일차 · 14:00–14:50 · 4교시 · M9

데이터 정리 · 요약

지금부터 30분 안에, 여러분이 아침에 낸 합계가 틀렸다는 것을 증명합니다.

산출물 정리·요약 데이터표

작업 파일 — 지금부터는 3교시에 저장한 출장비_매크로.xlsm을 계속 씁니다. 새 파일을 열지 마십시오.

시간 앵커(강사용)14:25까지 실습 9-2(중복 제거)를 끝내지 못하면 9-3 이후는 강사 시연으로 전환하고, CP9-3(저장)만 확인한 뒤 M10을 정시(15:00)에 시작합니다.

함정 5종 — 전체 공개개념

출장비_원본.xlsx에는 처음부터 다섯 개의 함정이 심어져 있었습니다.

#함정실제 데이터합계에 미치는 영향
중복행 2건교무과 김OO 120,000 ×2 · 입학과 장OO 88,000 ×2합계가 부풀려짐
표기 불일치‘국내출장’ vs ‘국내 출장’조건에서 누락
후행 공백‘총무과 ’ (뒤에 공백 한 칸)부서가 둘로 갈라짐
텍스트형 숫자"143,000" · "88000"SUM이 조용히 건너뜀
날짜 형식 혼재2026-03-04 / 2026.3.11 / 6월 1일정렬·기간 필터가 깨짐

아침에 낸 그 합계는
다섯 개를 전부 안고 있었습니다.

실습 9-1 · AI에게 진단시키기실습

  1. 원본 시트에서 A1:E13 전체(머리글 + 데이터 12행)를 선택해 복사합니다.
  2. 오른쪽 프롬프트를 복사해 붙여넣고, [데이터 샘플] 자리에 방금 복사한 표를 붙여넣습니다.
  3. 실행합니다.
  4. AI가 몇 개의 문제를 찾았는지 세어 보십시오. 손가락으로 표시할 준비를 하십시오.
프롬프트 — 라이브러리 §3-3
엑셀 데이터를 정리하려고 합니다. 무엇이 문제인지 먼저 진단해 주십시오.

[데이터 샘플]
(여기에 A1:E13 전체를 복사해 붙여넣기)

[요청]
1. 이 데이터에서 집계를 방해할 문제점을 모두 찾아 주십시오.
   (중복, 표기 불일치, 공백, 텍스트형 숫자, 날짜 형식 혼재 등)
2. 각 문제를 고치는 방법을 알려 주십시오.
   (수식 / 기능 / 매크로 중 가장 간단한 것)
3. 고치기 전과 후에 합계가 어떻게 달라지는지
   확인하는 방법도 알려 주십시오.

CP9-1 · AI는 5개 중 몇 개를 찾았습니까체크포인트

  • 손가락으로 표시하십시오. 1개? 2개? 3개? 4개? 5개?
  • 보통 3~4개를 찾습니다.
  • 가장 자주 놓치는 것: ⑤ 날짜 형식 혼재 — 텍스트 샘플로는 잘 드러나지 않습니다

어제의 메시지가 여기서 반복됩니다

AI 진단도 검수 대상입니다.

AI가 “문제 3개를 찾았습니다”라고 하면, 그것은 “3개가 전부다”라는 뜻이 아닙니다. “내가 3개를 봤다”는 뜻입니다.

나머지 2개를 찾아내는 것은 여전히 사람의 일입니다.

몇 개 나왔는지 손가락으로

중복행 2건 — 눈에 보이게 만든 뒤 지웁니다데모

  1. A1:E13을 선택합니다.
  2. 홈 → 조건부 서식 → 셀 강조 규칙 → 중복 값.
  3. 중복된 값이 색으로 칠해집니다.
  4. 교무과 김OO 120,000이 두 번, 입학과 장OO 88,000이 두 번 나타납니다.
  5. 같은 사람이 같은 날 같은 금액을 두 번 받은 것이 아닙니다. 입력이 두 번 된 것입니다.
부서성명구분집행일금액판정
교무과김OO국내출장2026-03-04120,000원본
교무과김OO국내출장2026-03-04120,000중복 — 삭제
입학과장OO국내출장2026-06-2088000 (텍스트형)원본
입학과장OO국내출장2026-06-2088000 (텍스트형)중복 — 삭제

실습 9-2 · 중복 제거 — 합계가 줄어드는 것을 보십시오실습

  1. 먼저 I8(흡수 후 총계) 셀의 숫자를 그대로 적어 두십시오. 975,000 이어야 합니다. 오전 실습 7-1·7-2에서 만든 칸입니다. 이 숫자가 없으면 오늘의 핵심을 못 봅니다.
  2. A1:E13을 선택합니다.
  3. 데이터 탭 → 중복된 항목 제거.
  4. “선택 영역을 확장하시겠습니까?” 창이 반드시 뜹니다. 오전에 만든 집계표(G~I열)가 옆에 있기 때문입니다. 여기서 [현재 선택 영역으로 계속]을 고르십시오. 확장하면 집계표 행까지 중복 판정 대상이 되어 집계표가 망가집니다.
  5. 기준 열은 부서·성명·구분·집행일·금액 5개 모두 체크. [확인].
  6. “2개의 중복된 값이 검색되어 제거되었습니다” — 이제 I8을 다시 보십시오.
  7. 적어둔 숫자와 지금 I8의 차이를 확인합니다.
이 차이가, 데이터 정리를 왜 하는가에 대한 유일한 설득입니다.
만약 이 파일이 실제 출장비 정산이었다면, 여러분은 방금 있지도 않은 지출 208,000원(교무과 120,000 중복 1건 + 입학과 88,000 중복 1건)을 결재 올릴 뻔했습니다. I8은 975,000 → 767,000이 됩니다. AI가 짜준 수식은 아무 잘못이 없었습니다. 틀린 것은 데이터였습니다.

CP9-2 · 12행 → 10행, 합계가 줄었습니까체크포인트

  • I8이 975,000 → 767,000으로 바뀌었다
  • 208,000원이 줄었다 — 교무과 120,000 중복 1건 + 입학과 88,000 중복 1건
  • 원본 데이터가 12행 → 10행이 되었다
  • “2개의 중복된 값이 제거되었습니다” 안내를 보았다
  • 행이 안 줄었다 → 중복 판정 기준 열을 잘못 골랐습니다. 5개 열을 모두 체크해야 합니다.
  • 너무 많이 줄었다 → Ctrl+Z 로 되돌린 뒤 다시.

같은 파일 · 같은 수식 · 다른 답

수식은 한 글자도 바꾸지 않았습니다. 바뀐 것은 데이터뿐입니다.

그런데 답이 달라졌습니다.

208,000원이 허공에서 사라진 게 아닙니다. 애초에 없던 돈이 두 번 세어져 있었던 겁니다. 중복을 안 지우고 보고서를 썼다면, 결재 문서에 208,000원을 부풀려 올릴 뻔했습니다.

실습 9-3 · 표기 불일치 통일 (‘국내 출장’ → ‘국내출장’)실습

  1. C열(구분) 전체를 선택합니다.
  2. Ctrl+H — 바꾸기 창을 엽니다.
  3. 찾을 내용 국내 출장 (공백 있음) → 바꿀 내용 국내출장 (공백 없음).
  4. 모두 바꾸기.
  5. C열에 남은 값이 ‘국내출장’과 ‘국외출장’ 두 종류뿐인지 확인합니다.
프롬프트 — 어느 쪽이 맞는지 묻기
엑셀 C열에 "국내출장"과 "국내 출장"이 섞여 있습니다.

원본을 고치지 않고 SUBSTITUTE로 수식에서 흡수하는 방법과,
원본을 직접 찾아 바꾸는 방법 중
어느 쪽이 이 상황에 맞는지 알려 주십시오.
각각의 장단점도 함께 알려 주십시오.
정답은 상황에 따라 다릅니다. 원본을 계속 받아 쓰는 자료라면 수식으로 흡수, 이번 한 번 쓰고 끝날 자료라면 원본을 고치는 것이 빠릅니다.

실습 9-4 · 텍스트형 숫자와 날짜 형식을 한 번에 정리실습

  1. E열(금액) — 왼쪽 정렬된 셀을 찾습니다. 그게 텍스트입니다. 초록 삼각형이 보이면 클릭 → ‘숫자로 변환’. 안 보이면 E열 선택 → 데이터 → 텍스트 나누기 → 다음 → 다음 → 마침.
  2. D열(집행일)2026-03-04 / 2026.3.11 / 6월 1일이 섞여 있습니다. D열은 세 가지 표기가 섞여 있고 전부 텍스트로 들어와 있습니다. 그래서 정렬하면 날짜순이 아니라 글자순(2026-…, 2026.…, 6월…)으로 늘어섭니다.
  3. 오른쪽 프롬프트 하나로 두 열을 함께 물어봅니다. 둘 다 VALUE·DATEVALUE 계열 변환이라 한 번에 처리됩니다.
  4. E열이 전부 오른쪽 정렬 → SUM이 그 행들을 포함해 계산합니까? 합계가 커졌습니까?
  5. D열이 전부 YYYY-MM-DD → 다시 정렬하면 시간순으로 맞습니까?
프롬프트 — 숫자·날짜 한 번에
엑셀 한 시트에 형식 문제가 두 가지 있습니다.

1) E열(금액): "143,000"처럼 쉼표가 들어간 텍스트형 숫자와
   "88000" 같은 텍스트가 섞여 있어 SUM이 건너뜁니다.
2) D열(집행일): 2026-03-04, 2026.3.11, 6월 1일
   세 가지 형식이 섞여 정렬이 깨집니다.
   연도가 없는 값은 2026년으로 봅니다.

E열은 전부 숫자로, D열은 전부 YYYY-MM-DD 날짜 값으로
통일하는 방법을 알려 주십시오.
매크로는 쓰지 말고, 엑셀 기능이나 수식으로만,
메뉴 클릭 순서로 알려 주십시오.
원본을 덮어쓰지 않는 방법을 우선해 주십시오.
합계가 줄기도 하고 늘기도 합니다. 중복 제거(9-2)는 합계를 줄이고, 텍스트형 숫자 복구(9-4)는 합계를 늘립니다. 두 힘이 반대 방향입니다.

CP9-3 · M9 산출물 확보 — 정리·요약 데이터표산출물

  • 데이터가 10행이다 (중복 2건 제거됨)
  • C열 구분이 2종(국내출장·국외출장)만 존재한다
  • A열 부서에 공백 때문에 갈라진 중복이 없다
  • E열 금액이 전부 오른쪽 정렬이다 (= 전부 숫자다)
  • D열을 정렬하면 시간순으로 맞다
  • 정리가 끝난 뒤 Alt+F11F5를 한 번 더 눌러 부서별 시트를 정리 후 데이터로 재생성했다 (부서 시트에 아직 옛 데이터가 남아 있으면 M10 피벗이 틀린 숫자를 잡습니다)
  • 저장했다 — 이 표를 M10에서 그대로 씁니다

M9 산출물

정리·요약 데이터표

이제야 비로소 합계를 믿을 수 있는 표가 되었습니다. 아침의 그 표가 아닙니다.

다섯 개 다 걷어냈으면 손 드세요

정리 전 합계 vs 정리 후 합계개념

같은 파일. 같은 수식. 다른 답.

  • 정리 전 — 중복 2건이 더해지고, 텍스트형 숫자는 빠지고, 총무과는 둘로 갈라져 있었습니다.
  • 정리 후 — 10행, 표기 통일, 전부 숫자, 부서 하나.
  • 수식은 한 글자도 바꾸지 않았습니다.

데이터를 정리하지 않으면
AI가 아무리 좋은 수식을 줘도 틀린 답이 나옵니다.

AI는 데이터를 대신 의심해주지 않습니다.

막히는 지점 — 데이터 정리 편트러블슈팅

  • ‘선택 영역을 확장하시겠습니까?’ 창이 떴다

    원인 선택한 A1:E13 옆에 오전의 집계표(G~I열)가 붙어 있습니다.
    해법 [현재 선택 영역으로 계속]을 고르십시오. 확장하면 집계표 행까지 중복 판정 대상이 되어 집계표가 깨집니다. 이미 확장으로 눌렀다면 Ctrl+Z 후 다시.

  • 중복 제거가 필요한 행까지 지워버렸다

    해법 즉시 Ctrl+Z. 그리고 원칙: ‘원본’ 시트를 먼저 복사해 두고 사본에서 작업합니다. 시트 탭 우클릭 → 이동/복사 → 복사본 만들기 체크.

  • 텍스트 나누기가 옆 열을 덮어썼다

    원인 변환 결과가 오른쪽 열로 넘칩니다.
    해법 Ctrl+Z 후, 오른쪽에 빈 열이 있는지 확인하고 다시 실행하십시오.

  • 파일이 완전히 망가졌다 — 처음부터 하고 싶다

    해법 랜딩페이지에서 원본을 언제든 다시 받을 수 있습니다. 창피한 일이 아닙니다. 다시 받고 다시 하십시오.

    다시 받기
    https://duonedu.net/edu/26/0715-16-chungbuk/files/출장비_원본.xlsx
  • ‘중복된 항목 제거’ 버튼이 회색이다

    원인 셀 하나만 선택했거나, 표 범위 밖을 선택했습니다.
    해법 데이터 안의 아무 셀이나 클릭한 뒤 다시 누르십시오. 엑셀이 범위를 자동으로 잡습니다.

심화(선택) · 정리 전/후 합계 차이를 한 문장으로 — 보고서 각주감

  1. 실습 9-4까지 끝낸 분만 하십시오. 선택 과제입니다 — 시간이 모자라면 건너뛰고 M10으로 갑니다.
  2. 정리 전 합계정리 후 합계 두 숫자를 적어 둡니다.
  3. 오른쪽 프롬프트에 두 숫자를 넣어 실행합니다.
  4. 받은 한 문장을 메모장에 저장해 두십시오. 오후 M10에서 보고서 Ⅲ. 세부 현황의 각주로 그대로 씁니다.
프롬프트 — 차이 설명 한 문장
출장비 집계를 정리 전후로 비교했더니
합계가 달라졌습니다.

- 정리 전 합계: (숫자를 적으십시오)
- 정리 후 합계: (숫자를 적으십시오)
- 정리 내용: 중복행 2건 제거, 표기 불일치 통일,
  텍스트형 숫자 변환, 날짜 형식 통일

이 차이가 왜 생겼는지, 보고서 각주로 쓸 수 있게
한 문장으로 설명해 주십시오.
숫자는 제가 준 것만 쓰고, 계산을 새로 하지 마십시오.

“왜 숫자가 달라졌는가”를 한 줄로 설명할 수 있어야 결재가 통과합니다. 이 한 문장이 그 답입니다.

4교시 종료 · 14:50

휴식 10분 · 15:00에 5교시를 시작합니다

다음은 M10 · 종합 실습 — 데이터에서 .hwpx까지 (15:00–15:50) · 이틀의 캡스톤

  • 정리된 데이터표(10행)를 저장했습니까? 5교시는 이 표에서 출발합니다.
  • 보고서_템플릿.hwpxhwpx_fill.py엑셀 파일과 같은 폴더에 있는지 지금 확인하십시오. 없으면 쉬는 시간에 받으십시오 — 15:00에 바로 씁니다.
  • 파일 주소: duonedu.net/edu/26/0715-16-chungbuk/ → 실습자료

15:00 5교시 시작 — 767,000이 결재 문서로 들어갑니다

2일차 · 15:00–15:50 · 5교시 · M10 · 이틀의 캡스톤

종합 실습 — 데이터에서 .hwpx 보고서까지

어제 배운 것과 오늘 배운 것이 여기서 만납니다.

산출물 데이터 기반 .hwpx 보고서

시간 앵커(강사용)15:20까지 실습 10-2(JSON 14개 키)가 나와야 합니다. 늦어지면 10-1(피벗)은 강사 시연으로 대체하고 M7의 SUMIFS 집계표를 그대로 쓰게 합니다. 10-3(치환)과 10-4(숫자 대조)는 생략하지 않습니다 — .hwpx 산출물이 이틀의 결과물입니다. 공문 확장은 심화(선택)으로 뒤에 있습니다.

캡스톤 경로 — 다섯 칸개념

어제 M4에서 쓴 2단계 파이프라인을 그대로 재사용합니다. 새로 배울 것은 없습니다.

① 정리된 데이터표

M9의 산출물. 10행, 함정 5종 제거 완료.

② 집계표

피벗 또는 M7의 SUMIFS. 부서별 건수·금액.

③ AI에게 요청

보고서 본문 + JSON 14개 키. 계산은 시키지 않습니다.

④ hwpx_fill.py

보고서_템플릿.hwpx의 빈칸 14개를 채웁니다.

⑤ 결재 가능 문서

제목 정렬·굵기 정상, 표 정상, 겹침 없음.

왜 2단계인가

AI가 .hwpx를 통째로 만들면 열리기는 하나 결재를 못 올립니다. 서식은 템플릿이, 내용은 AI가.

“교내 플랫폼이 한글 파일을 만들어 주지 않습니까?” — 만들어 주지 않습니다. 충북대 AI 플랫폼(aigpt.cbnu.ac.kr)은 매뉴얼상 PPT(.pptx) · 회의록(DOCX/PDF) · 영상(MP4) 다운로드는 제공하지만, 한글(.hwpx) 파일을 생성·다운로드하는 기능은 없습니다. 한글 파일은 업로드(읽기)만 됩니다. 그래서 오늘 최종 산출물도 ① AI가 내용(JSON)을 만들고 → ② hwpx_fill.py가 서식 템플릿의 빈칸을 채우는 2단계로 갑니다. 개인 클로드 계정을 쓰는 분도 똑같이 2단계입니다. 이것이 어제도 오늘도 유일한 경로입니다.

실습 10-1 · 집계표 만들기실습

  1. M9의 정리된 데이터(10행)를 선택합니다. 아침의 원본이 아닙니다.
  2. 삽입 → 피벗 테이블. (또는 M7에서 만든 SUMIFS 수식을 그대로 재사용해도 됩니다)
  3. 행 = 부서, 값 = 건수(개수) + 금액 합계.
  4. 맨 아래 총계 행이 있는지 확인합니다.
  5. 이 집계표를 통째로 복사할 준비를 하십시오. 다음 프롬프트에 넣습니다.
프롬프트 — 피벗이 처음이라면
엑셀 데이터로 부서별 건수와 금액 합계를 내는
피벗 테이블 만드는 순서를 알려 주십시오.

엑셀 메뉴 클릭 순서로, 초보자 기준으로 알려 주십시오.
총계 행이 나오게 하는 방법도 함께 알려 주십시오.

CP10-1 · 집계표가 나왔습니까체크포인트

  • 부서별 행이 있다
  • 건수 열이 있다
  • 금액 합계 열이 있다
  • 맨 아래 총계 행이 있다
  • 이 표를 드래그해서 복사해 두십시오. 바로 다음 실습에서 붙여넣습니다.
부서건수금액 합계
교무과2◯◯◯,◯◯◯
학생과2◯◯◯,◯◯◯
총무과2◯◯◯,◯◯◯
연구지원과2◯◯◯,◯◯◯
입학과1◯◯◯,◯◯◯
기획과1◯◯◯,◯◯◯
총계10◯,◯◯◯,◯◯◯

모양 예시입니다. 실제 숫자는 각자의 정리 결과에 따라 다릅니다.

집계표가 나왔으면 손 드세요

실습 10-2 · 집계표 → 보고서 본문 + JSON (핵심 프롬프트)실습

  1. 집계표를 복사합니다.
  2. 오른쪽 프롬프트를 복사해 붙여넣고, [집계 결과] 자리에 표를 붙여넣습니다.
  3. 실행합니다.
  4. [제약]의 두 줄을 지우지 마십시오. “숫자는 제가 준 것에서만 / 계산을 새로 하지 마십시오” — 이 두 줄이 없으면 AI가 숫자를 다시 계산해서 틀린 값을 넣습니다.
  5. 부서 3개 이상이 정상입니다. 항목 칸은 2개뿐이라 [제약] 마지막 줄이 상위 2개만 항목1·항목2, 나머지는 Ⅲ. 세부 현황에 문장으로 쓰게 합니다.
  6. 응답 끝 JSON의 키가 정확히 14개인지 확인합니다.
프롬프트 — 라이브러리 §3-4
아래 엑셀 집계 결과를 보고서 본문으로 바꿔 주십시오.

[집계 결과]
(엑셀에서 복사한 표를 붙여넣기)

[요청]
Ⅰ. 추진 배경 / Ⅱ. 주요 내용 / Ⅲ. 세부 현황 / Ⅳ. 향후 계획
순서로 작성하고,
마지막에 아래 빈칸에 들어갈 값을 JSON으로 출력하십시오.

[빈칸] 보고서제목, 작성일, 작성부서, 배경, 주요내용,
       항목1, 건수1, 금액1, 항목2, 건수2, 금액2,
       건수합계, 금액합계, 향후계획

[제약]
- 숫자는 제가 준 집계 결과에서만 가져오십시오.
  계산을 새로 하지 마십시오.
- 금액은 천 단위 쉼표를 넣어 주십시오.
- 부서가 3개 이상이면 금액 상위 2개 부서를 항목1·항목2에 넣고,
  나머지는 합산해 본문 Ⅲ. 세부 현황에 문장으로 서술하십시오.
  JSON 키는 정확히 14개만 출력하십시오.

CP10-2 · JSON 14개 키가 다 있습니까체크포인트

  • JSON에 키가 14개 있다
  • 키 이름이 보고서_템플릿의 빈칸 이름과 정확히 같다
  • 이름이 하나라도 다르면 → 치환이 그 칸을 건너뜁니다. 빈칸이 그대로 남습니다.
  • 확인 명령: python hwpx_fill.py 보고서_템플릿.hwpx --list

빈칸 14개

보고서제목 · 작성일 · 작성부서 · 배경 · 주요내용 · 항목1 · 건수1 · 금액1 · 항목2 · 건수2 · 금액2 · 건수합계 · 금액합계 · 향후계획

부서가 3개 이상인 것이 정상입니다

프롬프트 [제약]의 규칙을 재확인하십시오. 금액 상위 2개 부서 → 항목1·항목2, 나머지는 Ⅲ. 세부 현황에 문장으로. 키는 14개 그대로입니다. 키를 늘렸거나 총계가 안 맞으면 그 줄을 넣어 다시 요청하십시오.

14개 다 있으면 손 드세요

실습 10-3 · hwpx_fill.py로 보고서 완성실습

  1. JSON만 복사합니다. 앞뒤 설명 문장은 넣지 마십시오. {로 시작해 }로 끝나야 합니다.
  2. 메모장을 열고 붙여넣습니다.
  3. 다른 이름으로 저장 → 인코딩 UTF-8 → 파일명 보고서값.json.
  4. 명령 프롬프트에서 --list로 빈칸 이름을 먼저 확인합니다.
  5. 치환 명령을 실행합니다.
  6. 최종보고서.hwpx를 한글로 엽니다.
① 빈칸 확인
python hwpx_fill.py 보고서_템플릿.hwpx --list
② 치환 실행
python hwpx_fill.py 보고서_템플릿.hwpx 최종보고서.hwpx --json 보고서값.json
이 도구는 치환 후 줄 배치 캐시를 반드시 제거합니다. 그러지 않으면 긴 문장이 한 줄에 겹쳐 찍힙니다.

CP10-3 · 데이터 기반 .hwpx 보고서가 열립니까체크포인트

  • 한글에서 정상적으로 열린다
  • 제목이 가운데 정렬 + 굵게
  • Ⅲ. 세부 현황로 들어가 있다
  • 금액에 천 단위 쉼표가 있다
  • 숫자가 국내출장 7건 / 767,000원, 국외출장 3건 / 5,330,000원, 합계 10건 / 6,097,000원이다
  • 글자 겹침이 없다 — 레이아웃 캐시가 제거된 증거
  • 글자가 겹쳐 찍혀 있다 → 캐시 제거가 안 된 스크립트로 치환한 것입니다
한글에서 열린 최종 보고서: 제목 가운데정렬 굵게, 세부 현황이 표로, 금액에 천 단위 쉼표
템플릿 치환본 — 결재 가능한 품질

보고서가 열렸으면 손 드세요

실습 10-4 · 숫자를 원본과 대조하십시오실습

  1. 보고서의 금액합계를 봅니다.
  2. 엑셀 집계표의 총계를 봅니다.
  3. 두 숫자가 같은지 눈으로 대조합니다. 건수합계도 같이.
  4. 기준값 — 국내출장 7건 / 767,000원, 국외출장 3건 / 5,330,000원, 합계 10건 / 6,097,000원.
  5. 다르다면 → AI가 계산을 새로 한 것입니다. 프롬프트의 [제약] 두 줄을 넣고 다시 요청하십시오.
  6. 같다면 통과. 이 대조 없이는 결재를 올리지 마십시오.
검수 프롬프트 — 어제 M5에서 쓴 것 그대로
아래 문서를 검수해 주십시오.
고쳐 쓰지 말고, 문제점만 목록으로 지적하십시오.

[검수 항목]
1. 사실관계: 근거 없이 단정한 문장
2. 숫자: 합계가 맞지 않거나 단위가 빠진 곳
3. 법령·규정 인용: 실제로 존재하는지 확인이 필요한 부분
4. 문체: 공문 투에 맞지 않는 구어체·미사여구
5. 형식: 빠진 항목 (붙임, 끝 표시 등)

[문서]
(여기에 붙여넣기)
이 767,000은 오전 I8에서 중복을 지운 바로 그 숫자입니다.
975,000에서 중복 208,000을 걷어낸 값이 그대로 결재 보고서에 들어갔습니다.
AI에게 숫자를 계산시키지 않는 이유가 여기 있습니다. 계산은 엑셀이, 문장만 AI가.

어제의 실패본과 오늘의 완성본데모

AI가 .hwpx를 직접 생성한 결과를 한글에서 연 화면: 제목이 본문과 같은 평문이고 서식이 없다
어제 — AI가 .hwpx를 통째로 생성 (열리지만 결재 불가)
템플릿 치환으로 만든 최종 보고서: 제목 정렬·굵기 정상, 표 정상
오늘 — 템플릿 치환본 (결재 가능)
  1. 같은 AI. 같은 내용. 다른 문서.
  2. 왼쪽은 제목 정렬·굵기가 없고 표가 뭉개졌습니다. 열리기는 합니다. 결재는 못 올립니다.
  3. 차이를 만든 것은 AI의 성능이 아닙니다.
  4. 차이를 만든 것은 ‘2단계로 나눈 설계’입니다. 서식은 템플릿이, 내용은 AI가.

CP10-4 · 이틀의 최종 산출물산출물

  • 데이터 기반 .hwpx 보고서가 손에 있다
  • 숫자를 엑셀 원본과 대조했다
  • 글자 겹침·빈칸 없이 결재 올릴 수 있는 상태
  • 이 경로를 각자 부서 데이터로 그대로 반복할 수 있습니다

여러분이 지나온 경로

원본 엑셀 → 정리집계AI 문장템플릿 → 결재 가능 문서

이 여섯 칸 중 AI가 맡은 것은 한 칸뿐입니다. 나머지 다섯 칸은 여러분이 했습니다.

보고서 완성했으면 손 드세요

심화(선택) · 같은 집계표로 「출장비 집행 현황 알림」 공문까지심화(선택)

  1. 실습 10-4를 끝낸 분만 하십시오. 아직인 분은 10-4(숫자 대조)를 계속하십시오.
  2. 10-2와 같은 대화에 오른쪽 프롬프트를 이어서 붙여넣습니다. 집계표를 다시 붙일 필요가 없습니다.
  3. 받은 JSON을 공문값.json으로 저장합니다. (메모장 → UTF-8)
  4. 오른쪽 명령으로 공문_템플릿.hwpx의 빈칸 8개를 채웁니다.
  5. 보고서(14빈칸)와 공문(8빈칸)이 같은 데이터로 동시에 나왔습니까 — 이것이 실무에서 가장 많이 쓰는 형태입니다.
후속 지시 (같은 대화에 이어서)
같은 집계 결과로 이번에는 공문을 작성해 주십시오.
제목은 「출장비 집행 현황 알림」입니다.

마지막에 아래 빈칸에 들어갈 값을 JSON으로 출력하십시오.

[빈칸] 수신, 제목, 관련근거, 본문, 교육명, 일시, 장소, 붙임

[제약]
- 숫자는 제가 준 집계 결과에서만 가져오십시오.
  계산을 새로 하지 마십시오.
- 빈칸 이름은 템플릿에 고정되어 있습니다. 바꾸지 마십시오.
- 이 공문과 맞지 않는 칸(교육명·일시·장소)은
  "해당 없음"으로 채우십시오.
- JSON 키는 정확히 8개만 출력하십시오.
치환 명령
python hwpx_fill.py 공문_템플릿.hwpx 집행알림.hwpx --json 공문값.json

빈칸 이름이 문서 종류와 맞지 않으면, 실무에서는 그 문서용 템플릿을 따로 하나 만들어 씁니다. 템플릿은 한 번 만들면 계속 재사용됩니다.

막히는 지점 — 종합 실습 편트러블슈팅

  • JSON 파싱 오류가 난다

    원인 앞뒤 설명 문장이 파일에 섞여 들어갔습니다.
    해법 {로 시작해 }로 끝나게 잘라내십시오. AI에게는 “JSON으로만 출력하십시오. 설명은 붙이지 마십시오”를 다시 지시합니다.

  • 한글이 깨져서 들어간다 (□□□)

    원인 메모장이 ANSI로 저장했습니다.
    해법 다른 이름으로 저장 → 인코딩 드롭다운에서 UTF-8 선택.

  • 빈칸이 그대로 남아 있다

    원인 키 이름 불일치입니다. 치환은 이름이 정확히 같은 칸만 채웁니다.
    해법 --list로 템플릿의 빈칸 이름을 뽑아 JSON 키를 그대로 맞추십시오.

  • 보고서 숫자가 엑셀과 다르다

    원인 AI가 계산을 새로 했습니다. 가장 위험한 오류입니다 — 문서는 멀쩡해 보입니다.
    해법 프롬프트에 “숫자는 제가 준 집계 결과에서만 가져오십시오. 계산을 새로 하지 마십시오.”를 넣고 다시 요청하십시오.

5교시 종료 · 15:50

휴식 10분 · 16:00에 6교시(마지막)를 시작합니다

다음은 M11 · 업무 적용 계획 (16:00–16:50) · Q&A 16:50–17:00

  • 최종보고서.hwpx를 손에 넣으셨습니까? 이틀의 최종 산출물입니다.
  • 마지막 시간에는 파일을 만들지 않습니다. 대신 다음 주에 실제로 움직일 계획을 씁니다.
  • 쉬는 시간에 자동화_적용계획표.xlsx를 미리 내려받아 두십시오.

16:00 6교시 시작 — 오늘 만든 것을 내 업무로 옮깁니다

2일차 · 16:00–16:50 · 6교시 · M11 (Q&A · 정리 16:50–17:00)

업무 적용 계획 & 마무리 Q&A

교육은 오늘 끝나지만, 이 표가 없으면 다음 주에 아무 일도 일어나지 않습니다.

산출물 자동화 적용 계획표

내 업무 자동화 계획표 — 7개 열개념

자리에 돌아가서 쓸 표입니다. 라이브러리 §5 「내 업무에 적용하기」의 표입니다. 배포된 자동화_적용계획표.xlsx와 열 구성이 같습니다.

랜딩페이지 → 프롬프트 라이브러리 → 5. 내 업무에 적용하기(주소 끝에 prompts.html#s5)에서 같은 표를 바로 열 수 있습니다.

내가 반복하는 업무 걸리는 시간(회당) 월 빈도 어느 프롬프트를 쓸까 AI가 할 수 있는 부분 내가 꼭 해야 하는 부분 예상 절감 시간(월)
       
       
       

‘내가 꼭 해야 하는 부분’ 열이 이 표의 전부입니다. 나머지 열은 그 열을 찾기 위한 과정입니다.

작성 예시 — 딱 한 줄만 같이 채워 봅니다데모

내가 반복하는 업무걸리는 시간(회당)월 빈도어느 프롬프트를 쓸까AI가 할 수 있는 부분내가 꼭 해야 하는 부분예상 절감 시간(월)
월간 출장비 집행 현황 보고 180분 1회 3-3 → 3-4 중복·표기 정리 진단
집계표→보고서 본문 초안
HWPX용 JSON 생성
숫자 원본 대조
결재선·수신처 확인
최종 문구 책임
약 120분
  1. 업무는 구체적으로. “보고서 작성”이 아니라 “월간 출장비 집계 보고”.
  2. 시간은 솔직하게. 3시간이면 3시간이라고 씁니다. 이 숫자가 나중에 설득 자료가 됩니다.
  3. 프롬프트는 번호로. 라이브러리에서 바로 찾을 수 있게.
  4. ‘내가 꼭 해야 하는 부분’ 열이 가장 어렵습니다. 그리고 가장 중요합니다.

실습 11-1 · 3행 채우기실습

  1. 랜딩페이지에서 자동화_적용계획표.xlsx를 내려받습니다.
  2. 내가 실제로 반복하는 업무 3가지를 적습니다. (상상이 아니라 이번 달에 실제로 한 일)
  3. 일곱 개 열을 전부 채웁니다.
  4. ‘내가 꼭 해야 하는 부분’ 열을 비워 두지 마십시오. 강사가 돌면서 비어 있는 행을 찾아 물어봅니다.
  5. 3행 × 7열 = 21칸이 다 찼습니까?
다운로드 주소
https://duonedu.net/edu/26/0715-16-chungbuk/files/자동화_적용계획표.xlsx
막히면 — AI에게 물어보기
제 업무는 [업무 이름]입니다. 매달 약 [시간]이 걸립니다.

이 업무에서
1) AI가 초안을 만들 수 있는 부분과
2) 사람이 반드시 검수해야 하는 부분을
나눠서 알려 주십시오.

2)는 반드시 하나 이상 있어야 합니다. 없다고 답하지 마십시오.

‘내가 꼭 해야 하는 부분’이 비면, 그 업무는 아직 넘기면 안 됩니다개념

‘내가 꼭 해야 하는 부분’이 비어 있다는 것은 일이 없다는 뜻이 아닙니다.

  • 검수 지점을 아직 못 찾았다는 뜻입니다.
  • 숫자는 어디서 대조합니까 / 법령은 누가 확인합니까 / 개인정보는 어디서 걸러냅니까
  • 이 질문에 답할 수 없다면, 그 업무는 아직 AI에게 넘길 준비가 안 된 것입니다.

검수 지점을 모르는 자동화는
자동화가 아니라 방치입니다.

실습 11-2 · 내 프롬프트 1개를 라이브러리에 추가실습

  1. 이틀간 만든 프롬프트 중 앞으로 계속 쓸 것 1개를 고릅니다.
  2. 이번 실습 데이터에만 맞는 부분을 [대괄호]로 바꿉니다. (예: [부서명], [집계 결과])
  3. 제목을 붙입니다. 나중에 검색할 수 있게. (예: “부서별 집계 수식 요청”)
  4. 계획표의 「내 프롬프트」 시트(두 번째 탭)를 열어 제목·프롬프트 본문 두 열에 붙여넣고 저장합니다.
  5. 이 프롬프트를 옆자리 동료가 그대로 복사해 써도 작동합니까? 그러면 완성입니다.
제안서의 기대효과가 여기서 시작됩니다.
“프롬프트 자산 축적 → 기관 내부 확산”. 부서에서 한 사람이 다듬은 프롬프트 하나가, 다음 사람의 3시간을 아낍니다.
좋은 프롬프트의 기준은 하나입니다. 내가 없어도 남이 쓸 수 있는가. 대괄호만 바꾸면 되는가.

CP11 · 자동화 적용 계획표 완성산출물

  • 3행 × 7열이 다 채워졌다
  • ‘내가 꼭 해야 하는 부분’ 열에 빈칸이 없다
  • 「내 프롬프트」 시트에 내 프롬프트 1개가 저장돼 있다
  • ‘내가 꼭 해야 하는 부분’ 열이 비어 있다 → 그 행은 아직 자동화하면 안 되는 업무입니다
  • 파일을 내 메일로 보내 두십시오. 실습실 PC는 초기화됩니다.

이틀의 마지막 산출물

자동화 적용 계획표

보고서도 매크로도 다시 만들 수 있습니다. 하지만 “내 업무 중 무엇을 넘기고 무엇을 지킬 것인가”에 대한 여러분의 답은, 오늘 이 자리에서만 나옵니다.

21칸 다 채웠으면 손 드세요

심화(선택) · 스튜디오로 ‘우리 부서 업무 전용 챗봇’ 만들기심화(선택)

  1. 시간이 없으면 건너뛰십시오. 계획표(CP11)가 먼저입니다. 이 장은 돌아가서 혼자 해볼 것입니다.
  2. 충북대 AI 플랫폼(aigpt.cbnu.ac.kr)의 스튜디오에서는 나만의 챗봇을 만들 수 있습니다. 넣는 것은 두 가지뿐입니다 — 시스템 프롬프트(챗봇의 역할·말투·금지사항)와 지식 파일(PDF·DOCX·HWP·URL 업로드 → 그 자료를 근거로 답합니다).
  3. 공개 범위는 개인 전용 또는 학내 공개(스토어)입니다. 학내 공개로 두면 다른 부서 직원도 스토어에서 찾아 쓸 수 있습니다.
  4. 시스템 프롬프트 자리에는 오늘 만든 프롬프트를 그대로 넣으십시오. 실습 11-2에서 대괄호로 다듬은 그 프롬프트입니다.
  5. 지식 파일에 개인정보·대외비를 넣지 마십시오. 학내 공개로 두면 그 자료를 근거로 다른 사람에게 답합니다. 공개된 규정·지침·서식·FAQ만 넣으십시오.
  6. 계획표에 한 줄 더 적으십시오 — “내 부서 챗봇을 만든다면, 어떤 자료를 넣겠는가?” 그 답이 곧 부서의 반복 질문 목록입니다.
시스템 프롬프트 뼈대 — 그대로 넣고 대괄호만 바꾸십시오
당신은 [○○과]의 업무 안내 도우미입니다.

[답변 규칙]
- 업로드된 지식 파일(규정·지침·서식·FAQ)에 근거해서만 답하십시오.
- 자료에 없는 내용은 "자료에 없습니다"라고 답하고,
  추측해서 지어내지 마십시오.
- 답변 끝에 근거가 된 문서명과 조항을 적으십시오.
- 개인정보(주민번호·연락처 등)는 묻지도, 답에 쓰지도 마십시오.
- 최종 판단과 결재 책임은 담당자에게 있음을 함께 안내하십시오.
이 챗봇도 초안까지입니다. 근거를 붙여 답하게 만드는 이유는 사람이 검수할 지점을 남기기 위해서입니다. 근거가 없는 답은 쓰지 않습니다.

교육이 끝난 뒤 남는 것마무리

외울 것은 없습니다. 남는 것은 주소 하나입니다.

이 주소는 교육 후에도 유지됩니다
https://duonedu.net/edu/26/0715-16-chungbuk/
  • 프롬프트 라이브러리 — 1일차 5종 · 2일차 4종 + VBA 정답 코드 2종 — 전부 원클릭 복사 버튼 포함
  • 한글 템플릿 2종 — 공문_템플릿.hwpx · 보고서_템플릿.hwpx
  • hwpx_fill.py — 레이아웃 캐시 제거가 내장된 치환 도구
  • 실습 데이터 — 출장비_원본.xlsx · 자동화_적용계획표.xlsx
  • 트러블슈팅 FAQ — 오늘 막혔던 그 지점들

다음 주에 막히면, 옆자리에 묻기 전에 이 주소를 먼저 여십시오.

2026. 7. 15.(수) ~ 7. 16.(목) · 충북대학교 교직원 생성형 AI 활용 업무효율화 실습 심화교육 · 과정1

마무리 & Q&A

  • 이틀의 산출물 — 1일차 4종 + 2일차 4종
  • 1일차 ① 보고서 초안 ② 공문 초안 ③ 규정 개정안(신·구조문대비표 포함) ④ 최종 검수본 .hwpx 보고서
  • 2일차 ⑤ 수식 적용 워크시트 ⑥ 동작하는 매크로(.xlsm) ⑦ 정리·요약 데이터표 ⑧ 데이터 기반 .hwpx 보고서
  • 그리고 방금 채운 자동화 적용 계획표 — 파일이 아니라, 다음 주에 실제로 움직이게 하는 계획입니다.

마지막 문장 AI는 초안까지입니다. 판단과 책임은, 어제도 오늘도, 여러분에게 있습니다.

강사 이신우 · 교육 자료 duonedu.net/edu/26/0715-16-chungbuk
궁금한 점은 지금, 또는 위 주소의 FAQ에서.