Home
AI & 노코드

가톨릭중앙의료원 AI 역량 집중 과정 진행 (안)

1. AI로 기획서 보고서 완전 정복하기

일자 : 4/15(수) , 11/11(수)
시간 : 6시간
기획서/보고서 작성의 기본 프레임워크를 학습하고, AI 도구를 활용하여 실무에서 바로 활용 가능한 보고서를 직접 작성하는 실습 중심 과정입니다.

커리큘럼

차시
진행내용
활용 도구
Session1. 기획의 기본기 습득하기
• 비즈니스 문서 작성을 위한 준비 운동: 논리의 출발은 용어부터 정리하라! - 기획, 목적, 목표, 문제, 문제점, 의견, 사실 등 • 보고서 기획의 기본 프로세스 이해: 클라이언트 블록, 컨셉 블록, 플래너 블록 보고서 제목 작성법의 기본 스킬: 기획의 방향은 제목에서 결정된다. 보고서 기획을 위해 알아야 할 기본 구조의 이해 - 보고서의 기본 구조 '클라이언트 블록'의 개념과 예시 학습 - 클라이언트 블록의 필수 항목: 현상 분석, 원인 분석, 배경 분석, 목표 설정, 목적 검증, 기대효과, 기획 과제 - 개인별 클라이언트 블록 작성 실습
실습PPT 또는 워크시트(지류)
Session2. 기획을 구체화하기 w.AI
[실습] 공통 주제로 AI 보고서 초안 작성주제: 병원 관련 실무 기획 •AI 기획 봇 소개 (커스텀 AI 도구 시연) - 기획 봇의 단계별 질문을 통한 체계적 기획 [실습] 기획 봇으로 새로운 기획서 작성봇의 가이드에 따라 단계별 기획 완성
Session3. Gemini로 작업 효율화하기
 AI로 보고서 작성하기 •Gemini Canvas 소개 및 사용법 - 효과적인 프롬프트 작성법 (구체적 지시, 맥락 제공) [실습] 공통 주제로 AI 보고서 초안 작성 - 주제: 병원 만족도 조사 데이터 활용 보고서 작성 - AI에게 단계별 지시하여 보고서 완성보고서 검토 및 수정 (AI 결과물 다듬기)  보고서에서 PPT로:AI 활용 시각화 • 보고서를 PPT로 변환하는 AI 활용법 - NotebookLM을 활용한 슬라이드 구성 [실습] 작성한 보고서를 PPT 형태로 변환, 디자인 요소 적용 및 완성도 높이기
Gemini Canvas, NotebookLM, Google AI Studio
실습 프롬프트 예시
보고서 초안 생성 (Canvas 활용)
지금까지 분석한 내용을 기반으로 '2025 이서중학교 수학여행 만족도 조사 결과 보고서'를 작성해줘. [보고서 독자] 교감·교장 선생님 (내부 보고용) [보고서 구조] 1. 조사 개요 - 조사 목적, 기간, 대상(학생 200/학부모 200), 조사 방법 2. 주요 결과 요약 (Executive Summary) - 핵심 수치 3~4개를 한눈에 볼 수 있게 정리 - 전체적 한 줄 평가 3. 학생 만족도 분석 - 항목별 만족도 결과 (표 포함) - 성별 비교 주요 포인트 - 주관식 분석 결과 (카테고리별 요약) 4. 학부모 만족도 분석 - 항목별 만족도 결과 (표 포함) - 적정 비용 분석 결과 - 희망 지역 분석 결과 - 주관식 분석 결과 (카테고리별 요약) 5. 종합 인사이트 및 개선 제안 - 긍정적 성과 3가지 - 개선 필요 영역 3가지 - 2026 수학여행 제안사항 3가지 6. 부록 - 상세 데이터 표 [작성 조건] - 공문서 톤: 간결하고 객관적, 감정 표현 배제 - 모든 수치에 데이터 출처 명시 (: "학생 설문 기준") - 표와 텍스트를 적절히 배합 - A4 기준 5~7페이지 분량 - 한국어로 작성 이 보고서를 Canvas 기능으로 작성해줘.
JavaScript
복사
 보완 프롬프트
보고서의 '종합 인사이트 및 개선 제안' 부분을 아래 조건으로 수정해줘: - 개선 제안을 '즉시 실행 가능한 것''중장기 검토 사항'으로 나눠줘 - 각 제안에 예상 소요 비용이나 담당 부서를 추가해줘
JavaScript
복사
NotebookLM으로 인포그래픽 포스터 - 실습 프롬프트 1-1: 학부모 안내용 콘텐츠 재구성
첨부된 보고서를 기반으로 '학부모 안내용 수학여행 결과 안내문'에 들어갈 내용을 재구성해줘. [대상] 학부모님 (가정통신문 또는 학교 홈페이지 게시용) [& 스타일] - 딱딱한 보고서 톤이 아닌, 따뜻하고 친근한 안내 톤 - 전문 용어(표준편차, 중앙값 등) 사용하지 않기 - 학부모 입장에서 궁금한 것 위주로 구성 [포함할 내용 5가지] 1. 수학여행 개요 (언제, 어디서, 몇 명) 2. 학생들의 만족도 하이라이트 (가장 좋아한 것, 아쉬웠던 것) 3. 학부모 설문 결과 요약 (안전 신뢰도 높았다는 점 강조) 4. 학생들의 생생한 한마디 (주관식에서 인상적인 응답 5개 발췌) 5. 2026년 수학여행 개선 방향 (학부모 의견 반영 계획) [출력 형식]5가지 항목별로 제목 + 본문 2~3문장 + 핵심 수치 1~2개로 정리해줘.
JavaScript
복사
실습 프롬프트 2-1: 슬라이드 구조 JSON 생성
아까 재구성한 학부모 안내 콘텐츠를 기반으로, 5장짜리 안내 슬라이드의 구조를 JSON 형태로 만들어줘. [슬라이드 구성] - 슬라이드 1: 표지 (제목 + 학교명 + 날짜) - 슬라이드 2: 수학여행 만족도 한눈에 보기 (핵심 수치 4~5) - 슬라이드 3: 아이들의 생생한 한마디 (주관식 응답 발췌 5) - 슬라이드 4: 학부모님 설문 결과 요약 (안전 신뢰도 강조 + 희망 지역 TOP3) - 슬라이드 5: 2026 수학여행, 이렇게 준비하겠습니다 (개선 방향 3가지) [JSON 형식 규칙] 각 슬라이드를 아래 형태로 구성해줘: { "slides": [ { "slideNumber": 1, "layout": "title", "backgroundColor": "#색상코드", "textElements": [ { "id": "title", "content": "한글 텍스트 내용", "role": "제목", "fontSize": 32, "fontWeight": "bold", "color": "#색상코드", "position": {"x": "center", "y": "40%"} }, { "id": "subtitle", "content": "한글 텍스트 내용", "role": "부제목", "fontSize": 18, "fontWeight": "normal", "color": "#색상코드", "position": {"x": "center", "y": "55%"} } ], "visualElements": [ { "type": "icon/chart/shape/image", "description": "시각 요소 설명", "position": {"x": "값", "y": "값"}, "size": {"width": "값", "height": "값"} } ] } ] } [핵심 규칙] 1. 모든 한글 텍스트는 반드시 textElements의 content 안에만 넣을 것 2. visualElements에는 한글 텍스트를 포함하지 말 (아이콘, 도형, 배경 등만) 3. 데이터 수치는 보고서의 실제 데이터를 정확히 반영할 것 4. 슬라이드당 텍스트 요소는 최대 6개 이내로 제한 (깔끔하게) 5. 각 textElement에 fontSize, fontWeight, color를 반드시 명시할 것
JavaScript
복사
실습 프롬프트 3-1: 디자인 시스템 정의 + 슬라이드 생성 요청
위에서 만든 JSON 구조에 아래 디자인 시스템을 적용해서, 최종 슬라이드를 생성해줘. [디자인 시스템] 1. 컬러 팔레트 - primary: "#2B5797" (남색 - 제목, 강조) - secondary: "#4ECDC4" (민트 - 포인트, 아이콘) - accent: "#FF6B6B" (코랄 - 핵심 수치 강조) - background: "#F8F9FA" (밝은 회색 - 슬라이드 배경) - surface: "#FFFFFF" (흰색 - 카드/박스 배경) - text_primary: "#2D3436" (진한 회색 - 본문) - text_secondary: "#636E72" (중간 회색 - 부제목/설명) 2. 타이포그래피 - 제목 (h1): Pretendard Bold, 32px, color: primary - 부제목 (h2): Pretendard SemiBold, 22px, color: text_primary - 본문 (body): Pretendard Regular, 16px, color: text_primary - 강조 수치 (number): Pretendard ExtraBold, 48px, color: accent - 캡션 (caption): Pretendard Regular, 13px, color: text_secondary ※ Pretendard가 불가능한 경우 Noto Sans KR 사용 3. 레이아웃 규칙 - 슬라이드 비율: 16:9 - 여백: 상하좌우 40px - 카드형 정보 박스: 모서리 둥글기 12px, 그림자 subtle drop shadow - 정보 간 간격: 최소 20px - 아이콘: Material Icons 또는 심플한 라인 아이콘 스타일 4. 슬라이드별 레이아웃 가이드 - 슬라이드 1 (표지): 중앙 정렬, 학교 로고 자리 상단, 제목 중앙, 날짜 하단 - 슬라이드 2 (만족도 한눈에): 4~5개 지표를 카드 형태로 가로 배치, 각 카드에 아이콘+수치+항목명 - 슬라이드 3 (학생 한마디): 말풍선 또는 인용 카드 형태로 5개 배치 - 슬라이드 4 (학부모 결과): 좌측에 만족도 수치, 우측에 희망 지역 TOP3 - 슬라이드 5 (개선 방향): 3개 개선안을 번호+아이콘+설명 카드로 세로 배치 [생성 조건] - 위에서 검수한 JSON의 textElements 한글 텍스트를 정확히 그대로 사용할 것 - 한글 텍스트는 반드시 텍스트 레이어로 렌더링할 (이미지 안에 한글을 그리지 말 것) - 각 슬라이드를 개별 이미지로 생성해줘 - 텍스트가 잘리지 않도록 여유 공간 확보
JavaScript
복사

운영 참고사항

실습 주제는 공통 주제를 제공하여 전원 동일한 기획서를 작성 (자유 주제 시 참가자별 편차가 크고 지원 어려움)
기획 봇은 강사가 사전 제작한 커스텀 AI 도구로, 질문-응답 방식으로 기획을 유도
PPT 변환은 가볍게 다루며, 깊은 디자인 작업보다는 AI 자동화에 초점

2. AI활용 데이터 관리 실습

일자 : 5/6(수), 10/28(수)
시간 : 6시간
실무 데이터를 AI로 분석하고 관리하는 역량을 기르는 과정입니다. 만족도 조사 등 병원 실무 데이터를 활용하여 데이터 전처리, 분석, 시각화까지 AI 도구를 통해 실습합니다.
사전 준비사항
참가자 사전 설문조사 필수 실시 (엑셀 역량 수준 파악)
확인 항목: VLOOKUP 사용 가능 여부, 피벗테이블 경험 여부, 일상적 엑셀 업무 내용
설문 결과에 따라 실습 난이도 및 진행 속도 조절

커리큘럼

차시
진행내용
활용 도구
Session1. 데이터 분석 기초 이해
• 데이터 분석을 접근하는 방식 (데이터 전처리, Raw data 인사이트, 패턴찾기) • 최근 데이터분석 트렌드 (에이전트, 클로드 코드 등)
Session2. AI로 데이터 분석 활용하기
•[실습] 병원 만족도 조사 로데이터 (더미데이터) 와 Gemini 활용하여 데이터 분석하기 Gemini에 엑셀 데이터 첨부 + 가이드 프롬프트 입력하여 데이터 분석 요청하기” - 환자 데이터 분석: 연령·성별·진료과별 종합 만족도, 대기 시간과 만족도의 상관관계, 재방문 및 지인 추천 의향 분석  - 의사 데이터 분석: 진료 친절도 및 설명의 충분성 점수, 진료과별 평점 비교, 환자 건의사항 내 주요 불만족 키워드 추출 분석 결과에서 인사이트 및 개선점 도출하기 Gemini Canvas 기능으로 Google Docs 레포트 자동 생성하기  - 보고서 구조(요약→상세분석→개선제안) 프롬프트로 지시하여 문서화
Gemini Canvas Google Docs
Session3. 데이터 시각화와 대시보드 활용과 바이브코딩
•효과적인 데이터 시각화 원칙과 AI를 활용한 차트/그래프 생성 방법 [실습] 분석 결과 시각화 자동화 방법 - 주요 지표 차트 생성 / 간단한 대시보드 형태 구성 / 보고용 시각 자료 완성 •VBA/자동화 (반복 업무 자동화 및 챗봇 웹서비스 만들기 시연 및 실습)
Excel Google Sheet Gemini Google ai studio
실습 프롬프트 예시
첨부한 엑셀 파일은 이서중학교 2025수학여행(12) 만족도 조사 데이터야. 다음을 정리해줘: 1. 시트별 구성 (시트명, 응답 수, 컬럼 목록) 2. 정량 데이터 항목과 척도 3. 주관식 데이터 항목 4. 데이터에서 눈에 띄는 특이사항 (결측치, 이상치 등) 표 형태로 깔끔하게 정리해줘.
JavaScript
복사
학생 데이터 정량 분석
너는 교육행정 데이터 분석 전문가야. 방금 파악한 이서중학교 수학여행 만족도 데이터의 [학생] 시트를 분석해줘. [분석 요청] 1. 항목별 기초 통계 - 6개 만족도 항목(전반적, 체험활동, 일정/이동, 숙소, 식사, 안전관리)의 평균, 중앙값, 최빈값, 표준편차를 표로 정리 - 평균 기준으로 높은 순서대로 정렬 2. 성별 비교 분석 - 남학생/여학생별 6개 항목 평균을 비교 표로 정리 - 성별 간 차이가 0.3점 이상인 항목은 별도 표시 3. 만족도 분포 분석 - 전반적 만족도의 점수별(1~5) 응답 수와 비율을 표로 정리 - 3점 이하 응답 비율(불만족 비율)을 산출 4. 핵심 발견사항 - 가장 만족도가 높은 항목과 그 의미 - 가장 만족도가 낮은 항목과 개선 필요성 - 성별 차이가 두드러진 항목과 시사점 [출력 형식] - 각 분석 항목별로 표 + 해석 코멘트 구성 - 숫자는 소수점 둘째자리까지 표시 - 해석은 '교감·교장 보고용'에 맞게 간결하고 객관적으로 작성
JavaScript
복사
실습 파일 취합과 분배 
각 부서에서 받은 파일을 쉽게 취합하기
원래 프롬프트
너는 vba코드 개발자로 실무에서 엑셀로 개발하고 있어 <location> C:\Users\alsrb\Desktop\AI 데이터실습\drive-download-20250824T214001Z-1-001\MAPO_LIB_AIR_2022(2022.01.03~2023.01.01) </location> # 목표 다음 엑셀 파일을 종합하는 VBA 코드를 작성해주세요. - 위 폴더에 있는 엑셀 데이터를 취합하여 코드를 실행한 Sheet1에 정리할 것 - 열 이름을 기준으로 파일을 종합할 것 - 데이터를 종합한 후 "마포구 공기질현황_{오늘 날짜}" 이름을 가진 엑셀 파일로 저장할 것 - 종합이 완료된 후 완료 메시지를 출력할 것 프롬프트는 한글로 제공
JavaScript
복사
수정 프롬프트
<role> 당신은 20년 경력의 Excel VBA 전문가입니다. 실무에서 대용량 데이터 처리와 자동화 솔루션을 개발해온 경험이 풍부합니다. 사용자의 요구사항을 정확히 파악하고, 안정적이고 효율적인 VBA 코드를 작성하는 것이 당신의 전문 분야입니다. </role> <task> 여러 개의 데이터 파일을 하나의 Excel 시트로 통합하는 VBA 코드를 작성해주세요. </task> <requirements> <primary_goal> 지정된 폴더 내의 모든 CSV와 Excel 파일의 데이터를 하나의 워크시트에 통합하여 새로운 파일로 저장 </primary_goal> <specific_conditions> - 폴더 경로: C:\Users\alsrb\Desktop\AI 데이터실습\drive-download-20250824T214001Z-1-001\MAPO_LIB_AIR_2022(2022.01.03~2023.01.01)\ - 첫 번째 파일의 헤더행만 유지, 이후 파일들은 데이터만 추가 - 파일 형식: CSV (EUC-KR 인코딩), Excel (xls, xlsx) - 저장 파일명: "마포구 공기질현황_YYYY-MM-DD.xlsx" 형식 - 에러 발생 시에도 다른 파일들은 계속 처리 </specific_conditions> <technical_requirements> - 메모리 효율적인 셀 단위 복사 방식 사용 - 원본 파일들은 ReadOnly 모드로 열기 - 새 워크북으로 저장하여 원본 보호 - 포괄적인 에러 처리 및 리소스 정리 - 사용자 친화적인 진행 상황 표시 및 완료 메시지 </technical_requirements> </requirements> <sample_data> <file_structure> 폴더 내 파일 예시: - MAPO_LIB_AIR_2022.01.0301.09.csv (3,356) - MAPO_LIB_AIR_2022.01.0310.16.csv (2,847) - MAPO_LIB_AIR_2022.01.1723.24.csv (4,123) </file_structure> <csv_header_example> 기관명,모델명,시리얼,데이터관측일시,온도(),습도(%),미세먼지(/),소음(),이산화탄소(ppm),휘발성유기화합물(ppb),초미세먼지(/),학습능률지수(%),등록일자 </csv_header_example> <data_row_example> "마포구","AirGuard-K","V01G1613544","202201030855","1158","41","112","74","981","185","81","49","2022-01-03 08:59:29","","" </data_row_example> </sample_data> <edge_cases> <potential_issues> - CSV 파일의 EUC-KR 인코딩으로 인한 한글 깨짐 - 빈 파일이나 헤더만 있는 파일 - 파일 접근 권한 문제 - 메모리 부족 상황 - 중복되거나 손상된 파일 </potential_issues> </edge_cases> <instructions> 단계별로 생각하세요: 1. 먼저 전체 작업 흐름을 분석하고 2. 필요한 변수와 객체들을 정의하며 3. 파일 형식별 처리 방법을 구분하고 4. 데이터 복사 로직을 설계한 후 5. 에러 처리와 리소스 정리 방안을 수립하세요 </instructions> <response_format> 다음 형식으로 응답을 시작해주세요: ```vba Sub 마포구_공기질_데이터_통합() ' ============================================ ' 마포구 공기질 데이터 통합 프로그램 ' 작성일: [날짜] ' 기능: 폴더 내 모든 CSV/Excel 파일을 하나의 시트로 통합 ' ============================================ ' 1단계: 변수 선언 Dim folderPath As String Dim fileName As String ' [추가 변수들...] ' 2단계: 초기화 및 환경 설정 On Error GoTo ErrorHandler ' [초기화 코드...] </response_format>
JavaScript
복사
VBA코드 한 시트에 모든 데이터
Sub 마포구_공기질_데이터_종합_수정() ' 변수 선언 Dim folderPath As String Dim fileName As String Dim wb As Workbook Dim ws As Worksheet Dim sourceWb As Workbook Dim sourceWs As Worksheet Dim lastRow As Long Dim sourceLastRow As Long Dim sourceLastCol As Long Dim isFirstFile As Boolean Dim newFileName As String Dim todayDate As String Dim processedFiles As Long Dim targetRow As Long Dim i As Long, j As Long Dim dateCol As Variant ' 등록일자 열 위치(숫자 또는 오류) ' 에러 처리 시작 On Error GoTo ErrorHandler ' 초기화 folderPath = "C:\Users\alsrb\Desktop\AI 데이터실습\drive-download-20250824T214001Z-1-001\MAPO_LIB_AIR_2022(2022.01.03~2023.01.01)\" Set wb = ThisWorkbook Set ws = wb.Sheets("Sheet1") isFirstFile = True processedFiles = 0 todayDate = Format(Date, "yyyy-mm-dd") newFileName = "마포구 공기질현황_" & todayDate & ".xlsx" ' Sheet1 초기화 ws.Cells.Clear ' 화면 업데이트 및 경고 비활성화 Application.ScreenUpdating = False Application.DisplayAlerts = False Application.Calculation = xlCalculationManual ' CSV 파일 처리 fileName = Dir(folderPath & "*.csv") Do While fileName <> "" Application.StatusBar = "처리 중: " & fileName ' CSV 파일 열기 시도 On Error Resume Next Set sourceWb = Nothing ' CSV 파일 열기 Set sourceWb = Workbooks.Open(folderPath & fileName, _ Format:=6, _ Delimiter:=",", _ Origin:=xlWindows, _ UpdateLinks:=False) If Err.Number = 0 And Not sourceWb Is Nothing Then Set sourceWs = sourceWb.Sheets(1) ' 데이터 범위 확인 sourceLastRow = sourceWs.Cells(sourceWs.Rows.Count, 1).End(xlUp).Row sourceLastCol = sourceWs.Cells(1, sourceWs.Columns.Count).End(xlToLeft).Column If sourceLastRow > 0 And sourceLastCol > 0 Then If isFirstFile Then ' 첫 번째 파일: 헤더 포함 전체 복사 (값만) For i = 1 To sourceLastRow For j = 1 To sourceLastCol ws.Cells(i, j).Value = sourceWs.Cells(i, j).Value Next j Next i targetRow = sourceLastRow + 1 isFirstFile = False processedFiles = processedFiles + 1 ' 헤더에서 "등록일자" 열 위치 파악 dateCol = Application.Match("등록일자", ws.Rows(1), 0) Else ' 두 번째 파일부터: 헤더 제외하고 복사 If sourceLastRow > 1 Then For i = 2 To sourceLastRow For j = 1 To sourceLastCol ws.Cells(targetRow, j).Value = sourceWs.Cells(i, j).Value Next j targetRow = targetRow + 1 Next i processedFiles = processedFiles + 1 End If End If End If ' 파일 닫기 (저장하지 않음) sourceWb.Close SaveChanges:=False Set sourceWb = Nothing End If Err.Clear On Error GoTo ErrorHandler fileName = Dir Loop ' Excel 파일 처리 fileName = Dir(folderPath & "*.xl*") Do While fileName <> "" If fileName <> wb.Name Then ' 현재 파일 제외 Application.StatusBar = "처리 중: " & fileName On Error Resume Next Set sourceWb = Nothing Set sourceWb = Workbooks.Open(folderPath & fileName, _ ReadOnly:=True, _ UpdateLinks:=False) If Err.Number = 0 And Not sourceWb Is Nothing Then Set sourceWs = sourceWb.Sheets(1) sourceLastRow = sourceWs.Cells(sourceWs.Rows.Count, 1).End(xlUp).Row sourceLastCol = sourceWs.Cells(1, sourceWs.Columns.Count).End(xlToLeft).Column If sourceLastRow > 0 And sourceLastCol > 0 Then If isFirstFile Then ' 첫 번째 파일: 헤더 포함 전체 복사 For i = 1 To sourceLastRow For j = 1 To sourceLastCol ws.Cells(i, j).Value = sourceWs.Cells(i, j).Value Next j Next i targetRow = sourceLastRow + 1 isFirstFile = False processedFiles = processedFiles + 1 ' 헤더에서 "등록일자" 열 위치 파악 dateCol = Application.Match("등록일자", ws.Rows(1), 0) Else ' 두 번째 파일부터: 헤더 제외하고 복사 If sourceLastRow > 1 Then For i = 2 To sourceLastRow For j = 1 To sourceLastCol ws.Cells(targetRow, j).Value = sourceWs.Cells(i, j).Value Next j targetRow = targetRow + 1 Next i processedFiles = processedFiles + 1 End If End If End If sourceWb.Close SaveChanges:=False Set sourceWb = Nothing End If Err.Clear On Error GoTo ErrorHandler End If fileName = Dir Loop ' === 등록일자 열 서식 적용 (원본처럼 보여주기) === lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row If Not IsError(dateCol) And lastRow >= 2 Then With ws.Range(ws.Cells(2, CLng(dateCol)), ws.Cells(lastRow, CLng(dateCol))) .NumberFormat = "yyyy-mm-dd hh:mm" End With End If ' 결과 확인 및 저장 If lastRow > 1 Then ' 간단한 서식 적용 ws.Range("A1").CurrentRegion.Columns.AutoFit ' 새 워크북으로 저장 (현재 워크북과 분리) Dim newWb As Workbook Set newWb = Workbooks.Add ' 데이터 복사 (값 붙여넣기) ws.Range("A1").CurrentRegion.Copy With newWb.Sheets(1).Range("A1") .PasteSpecial xlPasteValues Application.CutCopyMode = False End With ' 새 통합 파일에서도 등록일자 열 서식 재적용 Dim newDateCol As Variant, newLastRow As Long newLastRow = newWb.Sheets(1).Cells(newWb.Sheets(1).Rows.Count, 1).End(xlUp).Row newDateCol = Application.Match("등록일자", newWb.Sheets(1).Rows(1), 0) If Not IsError(newDateCol) And newLastRow >= 2 Then With newWb.Sheets(1).Range(newWb.Sheets(1).Cells(2, CLng(newDateCol)), _ newWb.Sheets(1).Cells(newLastRow, CLng(newDateCol))) .NumberFormat = "yyyy-mm-dd hh:mm" End With End If ' 저장 newWb.SaveAs folderPath & newFileName, FileFormat:=xlOpenXMLWorkbook newWb.Close SaveChanges:=False MsgBox "작업 완료!" & vbCrLf & _ "처리된 파일: " & processedFiles & "개" & vbCrLf & _ "총 행수: " & (lastRow - 1) & "행" & vbCrLf & _ "저장된 파일: " & newFileName, vbInformation Else MsgBox "처리할 데이터가 없습니다." & vbCrLf & _ "폴더 경로를 확인해주세요: " & vbCrLf & folderPath, vbExclamation End If GoTo CleanUp ErrorHandler: MsgBox "오류 발생: " & Err.Description & vbCrLf & _ "오류 번호: " & Err.Number & vbCrLf & _ "현재 처리 중인 파일: " & fileName, vbCritical CleanUp: ' 정리 If Not sourceWb Is Nothing Then sourceWb.Close SaveChanges:=False Set sourceWb = Nothing End If Application.ScreenUpdating = True Application.DisplayAlerts = True Application.Calculation = xlCalculationAutomatic Application.StatusBar = False End Sub
JavaScript
복사
통합된 파일을 다시 월별로 나누기
Sub 월별_시트_분리_등록일자기준() Const SOURCE_SHEET_NAME As String = "Sheet1" ' 통합 데이터가 있는 시트명 Dim wb As Workbook, wsSrc As Worksheet Dim lastRow As Long, lastCol As Long Dim dateCol As Variant Dim i As Long, m As Long Dim val As Variant Dim wsMonth(1 To 12) As Worksheet Dim nextRow(1 To 12) As Long Dim hdr As Range Dim altHeaders As Variant, h As Variant On Error GoTo ErrH Set wb = ThisWorkbook ' 소스 시트 참조 (없으면 ActiveSheet 사용) If SheetExists(SOURCE_SHEET_NAME, wb) Then Set wsSrc = wb.Worksheets(SOURCE_SHEET_NAME) Else Set wsSrc = ActiveSheet End If ' 데이터 범위 lastRow = wsSrc.Cells(wsSrc.Rows.Count, 1).End(xlUp).Row lastCol = wsSrc.Cells(1, wsSrc.Columns.Count).End(xlToLeft).Column If lastRow < 2 Then MsgBox "데이터가 없습니다(헤더만 존재).", vbExclamation Exit Sub End If Application.ScreenUpdating = False Application.DisplayAlerts = False Application.Calculation = xlCalculationManual ' 등록일자 열 찾기 (여러 후보 허용) dateCol = Application.Match("등록일자", wsSrc.Rows(1), 0) If IsError(dateCol) Then altHeaders = Array("등록 일자", "측정일시", "일시", "Date", "날짜", "작성일자") For Each h In altHeaders dateCol = Application.Match(h, wsSrc.Rows(1), 0) If Not IsError(dateCol) Then Exit For Next h End If If IsError(dateCol) Then MsgBox "헤더 행에서 '등록일자' 열을 찾을 수 없습니다." & vbCrLf & _ "헤더명을 확인하거나 코드의 대체 헤더 목록을 수정하세요.", vbCritical GoTo Clean End If ' 기존 월 시트 정리(있으면 삭제) For m = 1 To 12 If SheetExists(CStr(m) & "월", wb) Then wb.Worksheets(CStr(m) & "월").Delete End If Next m ' 월 시트 생성 + 헤더 복사 Set hdr = wsSrc.Range(wsSrc.Cells(1, 1), wsSrc.Cells(1, lastCol)) For m = 1 To 12 Set wsMonth(m) = wb.Worksheets.Add(After:=wsSrc) wsMonth(m).Name = CStr(m) & "월" hdr.Copy Destination:=wsMonth(m).Range("A1") nextRow(m) = 2 Next m ' 본문 행을 월별로 분배 For i = 2 To lastRow val = wsSrc.Cells(i, CLng(dateCol)).Value ' 날짜 판별 및 월 추출 If IsDate(val) Then m = Month(CDate(val)) Else ' 표시문자(Text)로 들어온 경우에도 시도 val = wsSrc.Cells(i, CLng(dateCol)).Text If IsDate(val) Then m = Month(CDate(val)) Else ' 날짜 인식 안 되면 건너뜀(필요 시 로그 처리) GoTo ContinueLoop End If End If ' 행 전체를 해당 월 시트에 복사(값 기준) wsMonth(m).Cells(nextRow(m), 1).Resize(1, lastCol).Value = _ wsSrc.Cells(i, 1).Resize(1, lastCol).Value nextRow(m) = nextRow(m) + 1 ContinueLoop: Next i ' 서식 및 정리 For m = 1 To 12 With wsMonth(m) ' 등록일자 열 표시형식 On Error Resume Next .Columns(CLng(dateCol)).NumberFormat = "yyyy-mm-dd hh:mm" On Error GoTo 0 .Columns.AutoFit End With Next m MsgBox "완료: 등록일자 기준으로 월별 시트를 생성했습니다." & vbCrLf & _ "원본 시트: " & wsSrc.Name, vbInformation Clean: Application.ScreenUpdating = True Application.DisplayAlerts = True Application.Calculation = xlCalculationAutomatic Exit Sub ErrH: MsgBox "오류: " & Err.Description, vbCritical Resume Clean End Sub Private Function SheetExists(shtName As String, wb As Workbook) As Boolean Dim sht As Worksheet On Error Resume Next Set sht = wb.Worksheets(shtName) SheetExists = Not sht Is Nothing On Error GoTo 0 End Function
JavaScript
복사
1개의 파일을 시트별 나눠서 분배하기
Sub 월별_파일_분리_등록일자기준() Const SOURCE_SHEET_NAME As String = "Sheet1" ' 통합 데이터 시트 Const DATE_HEADER As String = "등록일자" ' 기준 열 이름(헤더) Const OUTPUT_PREFIX As String = "마포구 공기질현황_" ' 저장 파일 접두사 Const SPLIT_BY_YEAR As Boolean = False ' True:/월로 따로 저장, False: 월만 기준 Const CREATE_EMPTY_FILES As Boolean = False ' True: 해당 월 데이터 없어도 헤더만 파일 생성 Dim wb As Workbook, ws As Worksheet Dim lastRow As Long, lastCol As Long Dim dateCol As Variant, altHeaders As Variant, h As Variant Dim i As Long, m As Long, yr As Long Dim val As Variant Dim basePath As String, outDir As String, saveName As String, key As String Dim fso As Object Dim dict As Object ' key: "m" 또는 "yyyy-m" → 새 워크북 Dim newWb As Workbook, newWs As Worksheet Dim nextRow As Object ' key: 위와 동일 → 다음 행 번호(Long) On Error GoTo ErrH Set wb = ThisWorkbook If SheetExists(SOURCE_SHEET_NAME, wb) Then Set ws = wb.Worksheets(SOURCE_SHEET_NAME) Else Set ws = ActiveSheet End If lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column If lastRow < 2 Then MsgBox "데이터가 없습니다(헤더만 존재).", vbExclamation Exit Sub End If Application.ScreenUpdating = False Application.DisplayAlerts = False Application.Calculation = xlCalculationManual ' 등록일자 열 찾기 dateCol = Application.Match(DATE_HEADER, ws.Rows(1), 0) If IsError(dateCol) Then altHeaders = Array("등록 일자", "측정일시", "일시", "Date", "날짜", "작성일자") For Each h In altHeaders dateCol = Application.Match(h, ws.Rows(1), 0) If Not IsError(dateCol) Then Exit For Next h End If If IsError(dateCol) Then MsgBox "헤더에서 '" & DATE_HEADER & "' 열을 찾지 못했습니다.", vbCritical GoTo Clean End If ' 출력 폴더 준비 basePath = wb.Path If Len(basePath) = 0 Then basePath = CreateObject("WScript.Shell").SpecialFolders("Desktop") outDir = basePath & "\월별_분리_" & Format(Date, "yyyymmdd") Set fso = CreateObject("Scripting.FileSystemObject") If Not fso.FolderExists(outDir) Then fso.CreateFolder outDir ' 월별 워크북/다음행 관리용 딕셔너리 Set dict = CreateObject("Scripting.Dictionary") Set nextRow = CreateObject("Scripting.Dictionary") ' 헤더 범위() Dim headerArr As Variant headerArr = ws.Range(ws.Cells(1, 1), ws.Cells(1, lastCol)).Value ' 본문을 한 번만 순회하면서 해당 (월 또는 연-) 워크북에 누적 For i = 2 To lastRow val = ws.Cells(i, CLng(dateCol)).Value If Not IsDate(val) Then val = ws.Cells(i, CLng(dateCol)).Text ' 텍스트일 수도 있어 재시도 End If If IsDate(val) Then m = Month(CDate(val)) yr = Year(CDate(val)) If SPLIT_BY_YEAR Then key = CStr(yr) & "-" & CStr(m) ' 예: "2022-1" Else key = CStr(m) ' 예: "1" End If ' 키용 워크북이 없으면 생성하여 헤더 세팅 If Not dict.Exists(key) Then Set newWb = Workbooks.Add Set newWs = newWb.Sheets(1) newWs.Name = "데이터" newWs.Range("A1").Resize(1, lastCol).Value = headerArr ' 등록일자 열 서식 On Error Resume Next newWs.Columns(CLng(dateCol)).NumberFormat = "yyyy-mm-dd hh:mm" On Error GoTo 0 dict.Add key, newWb nextRow.Add key, 2 End If ' 행 복사(값만) Set newWb = dict(key) Set newWs = newWb.Sheets(1) newWs.Cells(nextRow(key), 1).Resize(1, lastCol).Value = _ ws.Cells(i, 1).Resize(1, lastCol).Value nextRow(key) = nextRow(key) + 1 End If Next i ' 저장: 생성된 각 키에 대해 파일 만들기 Dim k As Variant, rowCnt As Long, mon As Long, yearPart As String For Each k In dict.Keys Set newWb = dict(k) Set newWs = newWb.Sheets(1) rowCnt = newWs.Cells(newWs.Rows.Count, 1).End(xlUp).Row - 1 ' 데이터 행 (헤더 제외) If rowCnt = 0 And Not CREATE_EMPTY_FILES Then newWb.Close SaveChanges:=False Else ' 파일명 결정 If SPLIT_BY_YEAR Then yearPart = Split(CStr(k), "-")(0) mon = CLng(Split(CStr(k), "-")(1)) saveName = OUTPUT_PREFIX & yearPart & "_" & mon & "월.xlsx" Else mon = CLng(k) saveName = OUTPUT_PREFIX & mon & "월.xlsx" End If ' 너비자동/날짜서식 보정 On Error Resume Next newWs.Columns(CLng(dateCol)).NumberFormat = "yyyy-mm-dd hh:mm" On Error GoTo 0 newWs.Columns.AutoFit newWb.SaveAs Filename:=(outDir & "\" & saveName), _ FileFormat:=xlOpenXMLWorkbook newWb.Close SaveChanges:=False End If Next k MsgBox "완료: '" & outDir & "' 폴더에 월별 파일 저장이 끝났습니다.", vbInformation Clean: Application.ScreenUpdating = True Application.DisplayAlerts = True Application.Calculation = xlCalculationAutomatic Exit Sub ErrH: MsgBox "오류: " & Err.Description, vbCritical Resume Clean End Sub Private Function SheetExists(shtName As String, wb As Workbook) As Boolean Dim sht As Worksheet On Error Resume Next Set sht = wb.Worksheets(shtName) SheetExists = Not sht Is Nothing On Error GoTo 0 End Function
JavaScript
복사
대시보드 프롬프트 예시
🧭 목적 가맹점 현황을 시각적으로 파악할 수 있는 대시보드를 생성하는 것이 목표입니다. ✅ 요청사항 두 개의 데이터를 기반으로, 먼저 각 데이터의 구조를 분석하고, 아래의 # 데이터 구조를 참고하여 데이터를 읽은 후, 해당 데이터를 가장 잘 설명할 수 있는 피벗 테이블과 차트 구성안을 총 8세트 제안해주세요. 각 제안은 다음 항목을 포함해야 합니다: 제안 이유: 이 분석이 왜 중요한지 피벗 테이블 구성: (Row), (Column), (Value), 필터(Filter) 등 정의 추천 차트 유형: 막대형, 선형, 원형, 누적형 등 활용 예시 또는 해석 포인트 📌 추가사항 실제 Excel 또는 Google Sheets 기반으로 구현 가능한 수준으로 제안 중복 없이 다양한 관점의 시각화 구성 비교, 추이, 비율, 분포, 랭킹 등 다양한 인사이트 도출이 가능하도록 제안 ⬇️ 참고 데이터 # 데이터 구조는 아래에 첨부되어 있다고 가정합니다.
JavaScript
복사
챗봇 제작 사례

운영 참고사항

참가자 엑셀 수준 편차가 클 수 있으므로, 사전 설문 기반 난이도 조절 필수
VLOOKUP/피벗테이블 미숙련자가 많을 경우, AI 자동 생성 중심으로 진행
실습 데이터는 만족도 조사 데이터를 기본으로 제공 (익명화된 샘플)
보조 강사가 실습 중 개별 지원 (특히 엑셀 기본 조작에서 막히는 참가자 지원)
VBA/자동화는 깊이 있게 다루지 않고, 가능성을 보여주는 수준으로 소개

3. AI로 만드는 병원 실무형 콘텐츠 제작 실습

일자 : 6/24(수), 12/1(화)
시간 : 6시간
AI 이미지 생성, 영상 변환, 인포그래픽 제작 등을 통해 병원 홍보물, 포스터, 카드뉴스 등 실무 콘텐츠를 직접 만드는 실습 과정입니다.

커리큘럼

차시
진행내용
활용 도구
Session1. AI 이미지 생성 기초
•이미지 생성 AI 원리 소개 •효과적인 이미지 프롬프트 작성법 (스타일/분위기/구도 지정 방법) [실습] 기본 이미지 생성 체험 - 다양한 스타일의 이미지 생성 - 프롬프트 반복 수정을 통한 품질 향상
Google AI Studio (Gemini 이미지 생성)
Session2. 병원 실무 콘텐츠 이미지 제작
•병원 콘텐츠 유형별 이미지 생성 - 커스텀 이미지 생성 봇 활용 (강사 제작 도구) [실습] 실무용 이미지 제작 - 병원 홍보 포스터용 이미지 생성 - 카드뉴스 소재 이미지 제작 - 건강정보 콘텐츠용 일러스트 생성
Google AI Studio 커스텀 이미지생성 봇
Session3. AI 영상 콘텐츠 맛보기
•이미지에서 영상으로: AI 영상 생성 소개 - Kling AI / Google Veo 활용법 [실습] 생성한 이미지를 짧은 영상으로 변환 - 이미지 → 영상 변환 체험간단한 모션 효과 적용
Kling AI Google Veo
Session4. AI로 게시글 및 프레젠테이션 완성하기
•효과적인 인포그래픽의 구성 요소 - NotebookLM을 활용한 시각 자료 생성 [실습] 병원 데이터/정보 기반 인포그래픽 제작 - 건강정보 인포그래픽 / 병원 서비스 안내 시각 자료 NotebookLM의 프레젠테이션 기능 활용 - 텍스트 → 슬라이드 자동 생성 [실습] 종합 프레젠테이션 제작 - 오전에 만든 이미지/인포그래픽 활용병원 홍보/교육용 프레젠테이션 완성 - 디자인 다듬기 및 최종 점검 결과물 공유 및 상호 피드백
NotebookLM Google AI Studio