====== 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]]