114회
구글시트, 업무 자동화 특별 스터디 (3강) | 크롤링 100% 자동화 함수 만들기😎
강의노트
댓글(1)
강의 자료
- [라이브강의] 구글시트 Apps Script 기초 5주 특별 스터디 - 3강PPT자료실습파일은 영상 하단 댓글 링크에서도 제공합니다.
라이브 미션
- 사전미션 ① : 학생 점수를 등급(A-F)로 변환하는 함수
/** * 학생의 성적을 A-F 등급으로 계산합니다. * * @param score 성적을 입력합니다. * @customfunction */ function getGrade(score) { var grade =""; /* if (점수조건) { grade = ...; } else if () { grade = ..; } else () { grade = ..; } */ }
보충 자료
📌 Apps Script 자동화 스터디 (3일차) - 예제 파일 및 코드
/** * 범위 내 각 단어를 구분자로 병합합니다. * * @param delimiter 단어를 병합할 구분자입니다. * @param data 병합할 단어가 입력된 범위입니다. * @customfunction */ function myTextJoin(delimiter,data) { var result = ""; /* for 반복문 기본문법 for (var row = 0; row <= 마지막값; row++) { var 값 = 배열[row][col]; } */ /* 단어의 마지막 글자를 자르는 구분 substring(시작위치,마지막위치) 단어.substring(시작위치,끝위치) */ /** Array의 forEach 문을 사용하는 방법도 있습니다! ① Row를 하나씩 돌아가며 Loop data.forEach(function(row) { Logger.log(row[i]) }); ② 각 항목을 하나씩 돌아가며 Loop data.forEach(function(row) { row.forEach(function(col) { Logger.log(col); }); }); ★주의! Apps Script V8 스크립트 이후, For Each 문이 For 문으로 변경되었습니다. for Each 대신, for (var key in obj) 구문으로 사용합니다. 자세한 설명은 아래 링크 참고! https://developers.google.com/apps-script/guides/v8-runtime/migration#avoid_for_eachvariable_in_object */ } /** * 네이버 연관검색어 목록을 반환합니다. * * @param value 연관검색어를 검색할 단어입니다. * @customfunction */ function getNaverSearch(value) { /* 네이버 연관검색어 조회 URL https://ac.search.naver.com/nx/ac?q=검색단어&frm=nv&st=100 */ /* Javascript 웹 크롤링 기본 문법 var response = UrlFetchApp.fetch(url); var webContent = response.getContentText(); var jsonData = JSON.parse(webContent); */ /** 간혹, 언어 인코딩이 EUC-KR일 경우 한글이 깨지는 문제가 있어요! 그럴 땐, 아래와 같이 설정을 추가하면 됩니다. var fetchOption = {"content-type": "text/html;charset=EUC-KR"}; var response = UrlFetchApp.fetch(URL, fetchOption); var webContent = response.getContentText("EUC-KR"); */ /* 배열의 모든 값을 한 문장으로 합치기 Array.join(구분자); 구분자 생략 시, 쉼표(,)로 연결합니다. */ }
✅ Apps Script 자동화 스터디 (3일차) - 강의 완성 코드
/** * 학생의 성적을 A-F 등급으로 계산합니다. * * @param score 성적을 입력합니다. * @customfunction */ function getGrade(score) { var grade =""; if (score == 90) { grade = "A"; } else if (score >= 80) { grade = "B"; } else if (score >= 70) { grade = "C"; } else if (score >= 60) { grade = "D"; } else { grade= "F"; } return grade; /* if (점수조건) { grade = ...; } else if () { grade = ..; } else () { grade = ..; } */ } function arrayTest() { var app = SpreadsheetApp; var activeSheet = app.getActiveSheet(); var rng = activeSheet.getRange("A1:B9"); Logger.log(rng.getValues()); } /** ---- Apps Script --- * 배열[0] -> [학생명, 점수] * 배열[0][0] -> 학생명 * 배열[2][1] -> 76.0 * * [ [학생명, 점수], * [이은지, 82.0], * [김하늘, 76.0], * [박진성, 52.0], * [최수종, 95.0], * [김아라, 77.0], * [정수빈, 62.0], * [황현성, 81.0], * [이현우, 92.0] ] * */ /** ---- VBA ----- * 배열(0,0) * [ 학생명, 점수 ; * 이은지, 82.0 ; * 김하늘, 76.0; * 박진성, 52.0; * 최수종, 95.0; * 김아라, 77.0; * 정수빈, 62.0; * 황현성, 81.0; * 이현우, 92.0 ] * */ function runningTotal() { var result = 0; for (var i = 1; i <=10; i+=2) { result += i; Logger.log(result); } /** * For i = 1 to 10 * i ~~ * Next */ } /** * 범위 내 각 단어를 구분자로 병합합니다. * * @param delimiter 단어를 병합할 구분자입니다. * @param data 병합할 단어가 입력된 범위입니다. * @customfunction */ function myTextJoin(delimiter,data) { var result = ""; /** * <---- data ---> * * [ [제품명,가격] * [햄버거, 5000] * [피자, 8000] * .... * [김치찌개,5500] ] * */ for (var i = 0; i <= data.length -1; i++) { var d = data[i]; /** * i = 0 일 때, * d = [제품명, 가격] * * i = 1 * d = [햄버거, 5000] */ //result = result + d[0] + delimiter; //result += d[0] + delimiter; if (d[0].length > 0) { result += d[0] + delimiter ; // result = 결과1,결과2,결과3,,,,결과10, <- 쉼표 제거 } } //문장.substring(시작위치, 종료위치) -> 문장 반환 result = result.substring(0,result.length-delimiter.length); return result; /* for 반복문 기본문법 for (var row = 0; row <= 마지막값; row++) { var 값 = 배열[row][col]; } */ /* 단어의 마지막 글자를 자르는 구분 substring(시작위치,마지막위치) 단어.substring(시작위치,끝위치) */ /** Array의 forEach 문을 사용하는 방법도 있습니다! ① Row를 하나씩 돌아가며 Loop data.forEach(function(row) { Logger.log(row[i]) }); ② 각 항목을 하나씩 돌아가며 Loop data.forEach(function(row) { row.forEach(function(col) { Logger.log(col); }); }); ★주의! Apps Script V8 스크립트 이후, For Each 문이 For 문으로 변경되었습니다. for Each 대신, for (var key in obj) 구문으로 사용합니다. 자세한 설명은 아래 링크 참고! https://developers.google.com/apps-script/guides/v8-runtime/migration#avoid_for_eachvariable_in_object */ } /** * 네이버 연관검색어 목록을 반환합니다. * * @param value 연관검색어를 검색할 단어입니다. * @customfunction */ function getNaverSearch(value) { /* 네이버 연관검색어 조회 URL https://ac.search.naver.com/nx/ac?q=검색단어&frm=nv&st=100 */ var url = "https://ac.search.naver.com/nx/ac?q="+value+"&frm=nv&st=100" /* Javascript 웹 크롤링 기본 문법 var response = UrlFetchApp.fetch(url); var webContent = response.getContentText(); var jsonData = JSON.parse(webContent); */ var response = UrlFetchApp.fetch(url); var webContent = response.getContentText(); var jsonData = JSON.parse(webContent); //Logger.log(jsonData); var result = jsonData.items; //Logger.log(result); var sResult = result.join(); //Logger.log(sResult); return sResult; /* <!-- jsonData --> { query=[햄버거], items=[[[햄버거], [햄버거 칼로리], [햄버거 만들기], [햄버거 데우기], [햄버거 패티], [햄버거 맛집], [햄버거집], [햄버거빵], [햄버거병], [햄버거연구소]]] } */ /** 간혹, 언어 인코딩이 EUC-KR일 경우 한글이 깨지는 문제가 있어요! 그럴 땐, 아래와 같이 설정을 추가하면 됩니다. var fetchOption = {"content-type": "text/html;charset=EUC-KR"}; var response = UrlFetchApp.fetch(URL, fetchOption); var webContent = response.getContentText("EUC-KR"); */ /* 배열의 모든 값을 한 문장으로 합치기 Array.join(구분자); 구분자 생략 시, 쉼표(,)로 연결합니다. */ }
시간대별 목차
- ----- 1교시 -----
- 사전 미션 풀이00:00
- 지난 강의 배운내용 복습05:06
- Apps Script 이중배열 살펴보기09:33
- 이중배열의 동작원리 실습15:07
- Apps Script - For 반복문 기초21:49
- ----- 2교시 -----
- MyTextJoin 함수 만들기29:23
- 빈 셀을 제외하는 MyTextJoin 함수37:21
- 문장 마지막의 구분기호 제거하기39:45
- Apps Script 웹 크롤링 기초42:35
- Array.Join 으로 배열 데이터 합치기49:37
- 네이버 연관검색어 크롤링 함수 완성51:52
- 사전미션 ① : 학생 점수를 등급(A-F)로 변환하는 함수
로그인
지금 가입하고 댓글에 참여해보세요!
1 댓글
강의노트
강의 자료
- [라이브강의] 구글시트 Apps Script 기초 5주 특별 스터디 - 3강PPT자료실습파일은 영상 하단 댓글 링크에서도 제공합니다.💡 보충 자료 보기 (클릭!)
시간대별 목차
- ----- 1교시 -----
- 사전 미션 풀이00:00
- 지난 강의 배운내용 복습05:06
- Apps Script 이중배열 살펴보기09:33
- 이중배열의 동작원리 실습15:07
- Apps Script - For 반복문 기초21:49
- ----- 2교시 -----
- MyTextJoin 함수 만들기29:23
- 빈 셀을 제외하는 MyTextJoin 함수37:21
- 문장 마지막의 구분기호 제거하기39:45
- Apps Script 웹 크롤링 기초42:35
- Array.Join 으로 배열 데이터 합치기49:37
- 네이버 연관검색어 크롤링 함수 완성51:52