구글 스프레드 시트에서 다른 시트 참조하기
Updated:Categories: Office
Tags: #Google spreadsheet
요구사항
- 공유 및 접근 가능성이 높아야함
- 시트B에는 현재까지 사용된 금액, 용도, 사용내역들이 존재
- 시트A에는 시트B의 데이터들을 사용하여 용도에 따라 정리된 형태로 보려고 함
접근 방법
- 구글 스프레드 시트를 사용
-
요구 사항을 만족하기 위해서는 조건에 맞는 시트B의 데이터들을 시트A에서 사용할 수 있어야 함
예시:
-
시트B에는 고유값(id)과 매칭되는 데이터들이 무질서하게 존재함 (시트B는 일종의 id에 매칭되는 title을 갖고 있는 매핑 테이블 역할을 함)
id title 3 title3 2 title2 4 title4 1 title1 -
시트 A에는 id 값들과 description이 존재
id description 1 desc1 2 desc2 3 desc3 4 desc4 -
시트 A에 시트 B를 참고하여 id에 매핑되는 title 데이터를 넣어야함 (여기서는 id가 조건이 됨)
id description id에 따른 title 1 desc1 title1 2 desc2 title2 3 desc3 title3 4 desc4 title4
-
구현
여기서 구현은 두 가지 종류의 함수를 사용하여봄.
VLOOKUP
먼저 VLOOKUP 함수를 사용해서 다른 시트의 값을 참조.
사용법
일단 잘 사용하였으나, 자유도가 떨어진다고 느낌.
예를 들면, {찾고 싶은 id 셀 위치}
에 존재하는 값만을 {검색범위}
에서 검색하여 {범위 내 반환해야할 열의 순서}
에 존재하는 값을 반환함.
요구사항을 만족시키기 위해서는 여러가지 조건에 따라 필터링이 가능해야함. (ex. 특정 용도에 사용된 금액만을 선택한다던지)
또한, VLOOKUP 함수 사용법을 이해하기 어려웠음.
예시:
VLOOKUP({찾고 싶은 id 셀 위치},{검색범위: 시트B!$B$1:$C$534}, {범위 내 반환해야할 열의 순서})
QUERY
사용법
구글 문서편집기 고객센터 내 QUERY에 대한 정보를 보면 사용법을 알 수 있음. SQL문에 익숙한 사람이라면 query에 대한 API 문서를 참고하여 사용하는 것이 더 편한 것 같음.
예시:
IF(ISNA(QUERY('시트B'!A2:D, "select SUM(D) where A is not null and B = {'조건'} label sum(D) ''")), 0, QUERY('시트B'!A2:D, "select SUM(D) where A is not null and B = {'조건'} label sum(D) ''"))
기타
-
IF함수와 ISNA 사용 이유
QUERY 내부 SQL 문을 실행하였을 때, 조건을 만족 시키는 결과가 아무것도 없을 경우, 위의 예에서는 select SUM(D) 값이 없을 경우 #N/A 가 출력됨. 따라서 #N/A를 0으로 대체할 방법을
google spread sheet #n/a remove
으로 구글링. 여러 방법이 검색되었지만, 가장 직관적인 것은 IF 함수와 사용하여 #N/A를 리턴하면 0을 아니면 같은 QUERY 함수를 사용하여 값을 리턴하게 함.
Comments