【Google Spread Sheet】RDB와 같이 복수 시트를 묶는 방법
7430 단어 GoogleAppsScript
소개
"일부 데이터를 연결하여 처리하고 싶지만 일부러 RDB를 사용할 정도는 아니다 ..."라고 할 때 어떻게 대처할까요?
RDB를 사용하는 사람도 있다면 Excel에서 함수를 구사하는 사람도 있다고 생각합니다. 로 정리해 보았습니다.
사용할 데이터
구단 마스터
구단 마스터
ID
구단명
1
거인
2
중일
3
야쿠르트
4
히로시마
5
DeNA
6
한신
7
소프트뱅크
8
세이부
9
라쿠텐
10
롯데
11
일본 햄
12
오릭스
마스코트 마스터
ID
구단 ID
이름
1
1
자빗
2
1
자매 자빗
3
1
키즈 자빗
4
1
할아버지 자빗
5
2
도아라
6
3
츠바쿠로
7
3
츠바미
8
4
슬러리
9
5
DB.스타맨
10
6
트래키
11
7
해리 호크
12
7
허니 호크
13
7
허큐리 호크
14
7
홍키 호크
15
7
헬렌 호크
16
7
해킹
17
7
릭
18
7
걸이
19
8
레오
20
8
라이나
21
9
클러치
22
9
클라치나
23
10
마군
24
10
린짱
25
10
주 찬
26
11
플랩
27
11
폴리
28
12
버팔로블
29
12
버팔로벨
버퍼용 시트
작성한 코드
function FindRelationRecords() {
const SHEET_team = "球団"
const SHEET_official_mascot = "マスコット"
// シート関数のQUERYを使って、球団シートから指定した球団名(※B列)に該当する球団ID(※A列)を取り出す。
let query_team = '=QUERY(\'' + SHEET_team + '\'!A1:B13,"SELECT A WHERE B=\'ヤクルト\'")'
// 球団IDをbufferシートに書き込む
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("buffer").getRange(1, 1).setFormula(query_team)
// (1,1)セルは列名が書き込まれているため、1つ下の(2,1)セルから球団IDを取得する。
let team_id = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("buffer").getRange(2, 1).getValue()
// bufferシートをクリアする
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("buffer").clear()
// 球団IDをキーにして、マスコットを取り出す。
let query_mascot = '=QUERY(\'' + SHEET_official_mascot + '\'!A1:C30,"SELECT C WHERE B=' + team_id + '")'
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("buffer").getRange(1, 1).setFormula(query_mascot)
let mascot_names = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("buffer").getDataRange().getValues()
// 配列の先頭の要素(※列名)を削除してメッセージボックスに出力する。
mascot_names.shift()
Browser.msgBox(mascot_names.join(','))
}
실행 결과
과제점
Reference
이 문제에 관하여(【Google Spread Sheet】RDB와 같이 복수 시트를 묶는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nkojima/items/5112972fc96a41341e2b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)