====== Google Sheet ====== * [[google:googlesheet:function|Google Sheet Functions]] * [[https://support.google.com/docs/topic/9054603?hl=ko&ref_topic=1382883|Google 스프레드시트 도움말]] * [[https://www.youtube.com/channel/UC8p19gUXJYTsUPEpusHgteQ|Learn Google Spreadsheets : Google Spreadsheets 강좌 모음 유튜브]] * [[https://www.youtube.com/watch?v=wQfApf3eci8&list=PLv9Pf9aNgemt61gjKQaYZHjvZlVp4OANq|Google Sheets - Tutorial for Beginners 강좌 모음]] * [[https://www.youtube.com/watch?v=0yMOMSBENbo&list=PLv9Pf9aNgemtP-BeFvg78PJFxKs6xDgea|Google Sheets - Intermediate Tutorials]] * [[https://www.youtube.com/watch?v=hG5vKMb0Lpo&list=PLv9Pf9aNgemvb55w2dAh-QlZSOKM6vtEx|Google Sheets - Advanced Tutorials]] ===== 텍스트 연결(conat) ===== * ''&''로 연결한다. =A1&B1&"helloworld" ===== Named Ranges : 이름이 지정된 범위 ===== * **데이터 -> 이름이 지정된 범위** * 혹은 범위를 마우스 드래그로 지정하고 우클릭으로 **이름이 지정된 범위 정의**를 할 수 있다. * ''SheetName!A01:H40'' 같은 시트 범위에 이름을 붙이서 Range 가 필요한 모든곳에서 대신 사용할 수 있다. * ''IMPORTRANGE'' 함수에서도 사용 가능하다. * [[https://www.youtube.com/watch?v=lbp4q8fnom0|Google Sheets - Named Ranges, Dynamic Updates, with IMPORTRANGE, Other Sheets, Arrays - Tutorial - YouTube]] ===== DropDown List ===== * **데이터 -> 데이터 확인(Data Validation)** 에서 기준을 **범위에서의 목록** 으로 지정해주면 해당 범위의 값을 Drop Down List 로 나타낼 수 있다. * [[https://support.google.com/docs/answer/3093377|INDIRECT]] 함수와 조합하면, 다중 드랍다운 목록을 만들어낼 수 있다. * [[https://youtu.be/AUM6s-hbX6w|Google Sheets - Drop Down List, 2 Dependent Dropdown Lists]] * 예제 완성 파일 : [[https://docs.google.com/spreadsheets/d/1o7mR7FwwTmOlFIeLr4Sh7w528rv9DwSnrCftfSR0bLY/edit?usp=sharing|연습 - Drop Down List, 2 Dependent Dropdown Lists]] ===== Operator ===== * [[https://infoinspired.com/google-docs/spreadsheet/comparison-operators-in-google-sheets/|Comparison Operators in Google Sheets and Equivalent Functions]] ===== 조건부 서식 ===== * **서식 -> 조건부 서식** 에서 조건에 따라 셀의 서식을 가변 지정할 수 있다. * [[https://youtu.be/GcAPzRGjunk|Google Sheets - Conditional Formatting Row Tutorial]] * [[https://youtu.be/qUwkTRfYpBw|Google Sheets - Conditional Formatting Based on Another Cell Using Formulas Tutorial]] * [[https://docs.google.com/spreadsheets/d/1aW1jdfKVPrNZMFKGCRtPnMiCnRbS-qn7XfgXSe-gEQ0/edit?usp=sharing|연습 - Conditional Formatting Row]] ===== Pivot Tables ===== * [[https://www.benlcollins.com/spreadsheets/pivot-tables-google-sheets/|Pivot Tables in Google Sheets: A Beginner's Guide]] * [[https://zapier.com/blog/google-sheets-pivot-table/|How to Use Pivot Tables in Google Sheets]] * 주의점 * 원본 데이터의 최상단에 Header 행을 두는게 좋다. * 모든 행에 값이 비어있지 않게 해야 한다. ===== 정렬(sort) / 헤더 고정 ===== * 헤더를 제외한 나머지를 컬럼기준으로 정렬하려면 * [[https://support.google.com/docs/answer/3540681?hl=ko|데이터 정렬 및 필터링하기]] 참조. * 헤더 행을 **보기->고정** 을 통해 고정해둔다. * 원하는 컬럼을 선택하고 **데이터->시트정렬** 에서 정렬한다. ===== Macro ===== * [[https://zapier.com/blog/google-sheets-macros/|How to Automate Google Sheets With Macros—No Coding Required]] ===== 다중 Sheet 의 데이터를 하나로 합쳐서 보여주기 ===== * ''={'Sheet1'!A2:G12;'Sheet2'!A2:G12; ... }'' 형태로 여러 시트의 데이터를 하나의 별도 시트에 모아서 보여주는게 가능하다. * 하지만 이 경우 지정된 영역만 가능하고, ''G12'' 그 아래로 추가되는 것은 자동으로 추가가 안되는데, * ''={'Sheet1'!A2:G;'Sheet2'!A2:G; ... }'' 형태로 row 를 빼버리면 될것 같아 보이지만, **공백 row도 함께 추가**된다. * 공백은 빼고 가려면 [[https://support.google.com/docs/answer/3093343?hl=ko|QUERY]] 함수를 사용해야 한다. =QUERY({'Sheet1'!A2:G;'Sheet2'!A2:G; ... }, "select * where Col1 is not null or Col2 is not null ...", 0) * 마지막 숫자 ''0'' 은 헤더를 의미한다. ''0''은 헤더 없음. ''1''은 헤더이므로 조회조건에서는 빼고 그냥 출력. * [[https://youtu.be/q8awNSYNdq4|Google Sheets - Combine Data From Multiple Sheets Tutorial]] * [[https://docs.google.com/spreadsheets/d/1bJQ4UzAK4kkXqKiL83JOUG7fPYJaY_nqn8jqb_oD4f4/edit?usp=sharing|연습 - Combine Data From Multiple Sheets]] * 컬럼을 **Column 을 나타내는 알파벳**으로 한다. =QUERY('Sheet1'!A19:CI147, "select * where U='내이름'" ,1) ===== 날짜와 시간 입력 Date Time ===== * [[https://www.howtogeek.com/448444/how-to-add-the-current-date-and-time-in-google-sheets/|How to Add the Current Date and Time in Google Sheets]] * Sheet 를 열 때마다 그 순간의 현재 날짜와 시간을 원한다면(계속 시간/날이 경과함에 따라 갱신됨) 함수 ''NOW()'',''TODAY()''를 사용하고, * 입력하는 현재의 날짜 시간을 입력하는 것을 원한다면(한번 입력 후 고정) 단축키를 이용한다. * ''Ctrl+;'' : 오늘 날짜 * ''Ctrl+Shift+;'' : 현재 시각 ===== 문자열 split / 마지막 문자열만 취하기 ===== * [[https://www.statology.org/google-sheets-split-get-last/|Google Sheets: Use SPLIT Function and Get Last Item - Statology]] * [[https://docs.google.com/spreadsheets/d/1AJJVKHAbAKrL6JM7Km2cEha1-2jciHdaPuMslbQjM78/edit#gid=0|문자열 자르기, 자른 문자열중 특정값 확인 - 예시]] * [[https://support.google.com/docs/answer/3094136|SPLIT]] 함수로 문자열을 특정 구분자(delimiter) 로 자를 수 있다. * [[https://support.google.com/docs/answer/3093374|COLUMNS]] 함수는 지정된 range 의 총 컬럼 갯수를 반환해준다. 따라 ''COLUMNS(SPLIT("문자열","구분자"))'' 는 나뉘어진 문자열의 총 갯수를 반환한다. * [[https://support.google.com/docs/answer/3098242|INDEX]] 함수는 ''행''과 ''열''의 값을 반환하는데, ''행만'' 인자로 지정할 수도 있다. **1 base** 이다. 행/열 값을 ''0'' 으로 지정하는 것은 **전체**를 의미한다. * 따라서 이를 모두 조합하면 문자열을 구분자로 나누고, 그 중에 마지막 문자열을 출력하는게 가능해진다. =INDEX(SPLIT(A2, " "), COLUMNS(SPLIT(A2, " "))) ===== vlookup ===== * [[https://support.google.com/docs/answer/3093318|vlookup]] 함수는 현재 시트에 있는 key 데이터에 대해 다른 시트 혹은 다른 영역의 데이터를 join 해서 출력해줄 수 있는 역할을 한다. 매우 변번하게 사용된다. * DB 테이블의 join 과 비슷한 역할을 한다. * ''IFNA(VLOOKUP(...), "없을때")'' 형태로 lookup 실패시 출력할 내용을 지정할 수 있다. ==== 인자설명 ==== * ''=VLOOKUP(search_key, range, index, [is_sorted])'' * ''search_key'' : 다른쪽 데이터를 조회할 곳의 Join key 역할의 cell 지정. 보통은 vlookup 은 열검색이므로 ''$A2'' 처럼 열을 고정시키고 행부분은 자동증감되게 한다. 이 search key 는 range 영역의 첫번째 열에 있는 데이터들과 비교하게 된다. * ''range'' : 데이터를 join 할 테이블 영역. 이 영역의 첫번째 열에 있는 데이터들이 join key 역할을 한다. * ''index'' : search_key 와 range 의 첫번째 열에 있는 값이 매칭될 경우 출력할 내용이 있는 컬럼의 상대적 위치. 1 base. * ''is_sorted'' : ''FALSE'' 로 하면 항상 exact matching 일 경우에만 출력. **asc** 정렬된 데이터에 대해서 ''TRUE''로 지정하면 정확히 매치가 안되도 근사값의 데이터를 가져와 보여준다. ===== if ===== * [[https://support.google.com/docs/answer/3093364|IF]] : 조건을 만족하는지 여부에 따라 데이터 리턴 IF(ISNA(A2), "true일때 값", "false일 때 값") ===== is* ===== * ''if''에서 사용할 각종 비교 함수들 * [[https://support.google.com/docs/answer/3093293|ISNA]] : ''#N/A'' 이면 true ===== ifna ===== * [[https://support.google.com/docs/answer/9365944|ifna]] * N/A 여부 검사. IFNA(Value,NA일때값) ===== 프로그래밍과 연동 ===== * [[http://www.baeldung.com/google-sheets-java-client|Interact with Google Sheets from Java | Baeldung]] ===== Sample Data ===== * [[https://www.google.com/search?q=excel%20sample%20data|excel sample data]] 혹은 [[https://www.google.com/search?q=google%20sheet%20sample%20data|google sheet sample data]] 등으로 검색하면 많이 나온다. * [[https://solutions.appsheet.com/sample-data-sets|Download a Sample Data Set to Build an App]] * [[https://www.tillerhq.com/budget-sheet-sample-data-for-google-sheets-and-excel/|Budget Sheet Sample Data for Google Sheets and Excel]] ===== 문제점 ===== * Video Hardware Acceleration 이 켜져 있을 경우 글씨가 안보이는 현상 발생함. see [[linux:vaapi|Linux VAAPI/VDPAU]] ===== 참조 ===== * [[https://andromedarabbit.net/google-sheets-%eb%a5%bc-api%eb%a1%9c-%eb%b0%94%ea%be%b8%ea%b8%b0/|Google Sheets 를 API로 바꾸기]] * https://github.com/aakritsubedi/Sheets2API * https://about.appsheet.com/home/ * [[https://smartagent.blog/|스마트요원의 실용구글 – #스마트워크 #Google Workspace #실용구글 #스프레드시트]] 시츠 강좌 많음.