====== Libre Office Calc ======
* [[http://www.thegeekstuff.com/2011/10/openoffice-calc-tips/|20 OpenOffice Calc Spreadsheet Tips and Tricks]]
- **서식 -> 자동서식** : 표의 서식을 미리 만들어진 것으로 지정할 수 있다.
- **서식 -> 조건부서식** : 조건에 따라 셀의 서식을 지정한다.
- **데이터 -> 유효성 -> 기준 탭 -> 허용** 항목에서 "목록"을 선택하고 선택 가능한 목록을 지정하면 해당 셀에서는 목록에 있는 값만 나올 수 있다. 이 외에도 해당 셀에 들어갈 수 있는 __유효한__ 값의 조건을 **유효성**을 통해 지정할 수 있다.
- **도구 -> 문서보호 -> 시트(혹은 문서)** : 시트나 문서를 비밀번호로 보호하여 수정할 수 없게 한다.
- **삽입 -> 차트**
- **상태가 값 변경** : 여러 셀을 선택했을 때, 상태바에 기본적으로 나오는 "합계" 값 대신 해당 상태바를 우클릭하여 평균, 개수, 최대, 최소 등을 나타내게 할 수 있다.
- **삽입 -> 함수** : 다양한 함수를 사용하라.
- **보기 -> 내비게이터 (F5)**
- **데이터 -> 필터 -> 자동필터** : 자동 필터 생성. 특정 조건의 열만 보여 줄 수 있다.
- **데이터 -> 필터 -> 표준필터** : 네개까지의 조건에 따라 필터 생성
- **데이터 -> 필터 -> 고급필터** : 여덟개까지의 조건에 따라 필터 생성
- **데이터 -> 필터 -> 고급필터 -> 정규표현식 **
===== String concat =====
=A1&B1&"helloworld"
* [[https://help.libreoffice.org/latest/en-US/text/scalc/01/func_concat.html|concat]] 함수. range 를 인자로 받을 수 있음.
* [[https://help.libreoffice.org/latest/en-US/text/scalc/01/04060110.html?DbPAR=CALC#bm_id3149688|Text Functions - concatenate]] 함수. 무작정 연결
* [[https://help.libreoffice.org/latest/en-US/text/scalc/01/func_textjoin.html|TEXTJOIN function]] delimiter 등을 인자로 받음.
===== Cell 에 수식 입력중 가리키는 셀 잘보기 =====
* 셀에 다른 셀을 가리키는 수식을 입력하는 도중 ''F2'' 키를 누르면 가리키는 셀과 셀이름이 색깔이 입혀지면서 더 잘 볼 수 있게 된다.
===== Pivot Table =====
* SQL 에서 Group By 같은 역할을 한다. 일부 컬럼들이 Group by 키 역할을 하고, 일부 컬럼은 데이터 역할을 해서 sum/max/count 등의 함수 적용을 할 수 있다.
* DB 에 직접 붙어서 데이터를 생성할 수도 있다.
* [[https://www.youtube.com/watch?v=YeR8Ka_-nQs|LibreOffice Calc - Pivot Tables - YouTube]] : 설명이 간결하고 좋음.
* [[https://www.youtube.com/watch?v=0uQfxGNWvic|Pivot Table - Libre Office Calc Tutorial - YouTube]]
* **Data -> Pivot Table**로 생성
===== 복사시 위치 고정 =====
* http://forum.openoffice.org/en/forum/viewtopic.php?f=9&t=2443 참조
* Calc에서 수식을 복사하면 현재 셀의 위치에 따라 복사될 셀의 위치가 자동으로 증가한다.
* 옆으로 복사시 ''A1'' 셀이 수식에 있다면 : B1, C1, D1, ....
* 아래로 복사시 ''A1'' 셀이 수식에 있다면 : A2, A3, A4, ...
* 수식에서 특정 행 혹을 열을 자동으로 증가하지 않게 하려면 행,혹은 열에 **$** 기호를 붙인다.
* 옆으로 복사시 ''$A1'' : A1, A1, A1, ....
* 아래로 복사시 ''A$1'' : A1, A1, A1, ...
* 행열 둘 다 고정시 ''$A$1''
===== 조건식에서 문자열 정규표현식 (regex) 사용하기 =====
''COUNTIF'', ''SUMIFS'' 등의 조건식에서 문자열 정규 표현식을 사용하려면 설정에서 활성화해줘야 한다.
**도구 -> 옵션 -> LibreOffice Calc -> 계산**에서 **수식에서 정규식 활성화** 옵션을 활성화한다.
* [[https://help.libreoffice.org/Common/List_of_Regular_Expressions|LibreOffice Regular Expressions]]
===== 조건에 따른 Count =====
* ''=COUNTIF(범위; "조건")'' : 단일조건
* ''=SUMPRODUCT(범위 조건; ....)'' : 다중 조건
# 범위내의 값이 1000보다 크거나 같고, 2000보다 작으면 1씩 센다.
=SUMPRODUCT(B3:B22014 >= 1000, B3:B22014 < 2000)
===== 조건에 따른 SUM =====
* [[https://help.libreoffice.org/Calc/Mathematical_Functions#SUMIF|SUMIF]], [[https://help.libreoffice.org/Calc/SUMIFS_function/ko|SUMIFS]] 함수를 사용한다.
* ''A1:A100'' 범위의 값을 ''SUM''하는데, ''B1:B100''의 문자열 정규식 조건이 만족될 때에만
SUMIFS( Sum_Range ; Criterion_range1 ; Criterion1 [ ; Criterion_range2 ; Criterion2 [;...]])
SUMIFS(A1:A100;B1:B100;"문자열.*";[다시조건범위;조건...])
===== VLOOKUP을 이용한 매칭 데이터 셀 값 복제 =====
* [[https://help.libreoffice.org/Calc/Spreadsheet_Functions#VLOOKUP|LibreOffice VLOOKUP]]
* [[https://www.youtube.com/watch?v=WoHWWwUN9Uo|VLOOKUP HowTo]]
* PK/FK 기반으로 Table join 하는 것 처럼 한 시트의 데이터와 매칭되는 다른 열 혹은 시트의 데이터를 찾아서 거기 있든 다른 값을 복제해오기
===== SQL 에 넣을 문자열 목록을 홑따옴표로 감싸넣기 =====
* [[https://javarevisited.blogspot.com/2017/03/how-to-enclose-list-of-values-into-single-quotes-using-microsoft-excel-for-sql-query.html#ixzz6aY85sveM|How to enclose a list of values into single quotes for SQL query? Microsoft Excel Example]]
* A 컬럼에 문자열들을 순서대로 넣고
* B 컬럼에 ''=CHAR(39) & A1 & CHAR(39) & CHAR(44)'' 넣고,
* drag 로 복사하면 SQL용 문자열 목록이 만들어짐.
===== 정렬 =====
* **데이터(D) -> 정렬** : 여기서 정렬 대상 컬럼 등을 지정한다.
* 정렬시 헤더(header)를 제외하려면 **Sort Options -> 범위에 열 레이블이 포함됨(B)** 를 선택해주면 된다.
===== 참조 =====
* [[https://www.youtube.com/watch?v=HcpaIuOLCqo|LibreOffice Calc Beginner Tutorial]]
* [[https://www.ubuntubuzz.com/2022/09/libreoffice-calc-spreadsheet-basic-tutorials-collection.html|LibreOffice Calc Spreadsheet Basic Tutorials Collection]]