강의 자료
댓글 1
로그인 후 댓글을 작성할 수 있습니다.
강민준🤗
2024.08.12 09:55
좋은 강의 정말 감사합니다🙇♂️
라이브정보
방송일
2022년 11월 05일 (114회)
강의시간
54분 48초
보충자료
📌 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;
/*
{
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(구분자);
구분자 생략 시, 쉼표(,)로 연결합니다.
*/
}
스크립트는 로그인 후 이용할 수 있습니다.
로그인