본문 바로가기

Google Spreadsheet/사례별 Tips

(6)
[Tip] 특정 패턴 텍스트 추출하기 split() 함수 개념 잡기 split() 함수는 (나눌 대상, 구분자, 개별분할옵션, 공백제거옵션)로 구성되어 있습니다. 'I know who you are'이라는 문장을 공백(" ")을 구분자로 나눈 결과입니다. B1:F1까지 나눈 결과값들이 한번에 출력되는 것을 확인하실 수 있습니다. 옵션값들은 True로 입력되어서 조정이 필요 없을 경우 딱히 입력 안해주셔도 됩니다. 하지만 꼭 필요한 경우가 아니라면 대부분 상황에선 개별분할 옵션을 꺼주세요. 기본적으로 True로 되어있습니다. 위 예시처럼 아무 옵션을 추가로 입력하지 않았지만, True가 기본으로 되어있어 공백과 같은 단일 텍스트로 나눠집니다. 여기서 위 문장을 " who " 를 구분자로 해서 "I know"와 "you are"로 나누고 싶을 ..
[Tip] vlookup함수 다중 조건으로 검색하기 vlookup()함수 다중 조건으로 검색하기 vlookup()함수는 단일값으로 테이블에서 값을 찾는데 최적화된 테이블입니다. '=vlookup(찾을값, 테이블범위, 열순서, 옵션값)'으로 이루어져 있죠. 하지만 간혹 조회할 열이 유니크한 값들로 이루어져 있지 않고 다른 열과 조합했을 때 유니크해지는 경우가 있습니다. 이 때는 기존 vlookup함수만으론 검색이 불가능합니다. 추가 보조 열을 생성해서 해결해야 합니다. 위 예시에서 code가 b고 number가 3인 value를 조회하고자 합니다. vlookup() 함수의 찾을값에 b를 넣자니 b에는 각 number마다 다른 value들이 들어가 있어 원하는 값 검색이 불가능합니다. 이럴 때 함수만 써서는 불가능합니다. 유니크한 값들만 남길 수 있는 보조열..
[Tip] 알파벳 ABC를 숫자로 변환하기 ABC 알파벳을 123으로 변환하기 칼럼명이 몇번째인지, 알파벳마다 숫자로 된 코드를 달고 싶을 때 알파벳마다 숫자를 부여하고 싶을 때가 있습니다. 이 때 유용한 함수가 있습니다. 바로 code()함수죠. code()함수는 각 문자에 대해 정해진 유니코드를 계산해줍니다. 유니코드는 모든 문자들에 대해 U+16진수 숫자로 된 값들이 정해진 표준화 된 코드입니다. 여기서 code()함수는 첫번째 문자에 대해 유니코드 16진수 숫자만 10진수 숫자로 변환해서 계산해주죠. 이 때, 대문자 A의 유니코드는 65, B는 66입니다. 이걸 활용해서 각 영문자들의 순서인 숫자값을 계산하는 함수를 만들었습니다. =code(upper('알파벳 셀 주소 또는 값'))-code("A")+1 예로 알파벳 C 유니코드는 67입니..
[Tip] 테이블 랜덤으로 섞기 RAND() 함수를 이용한 테이블 섞기 구글 스프레드시 시트 내 [범위 임의로 섞기] 방법을 설명드리기 전에, 전통적(?)으로 진행해왔던 데이터 섞는 방법을 알려드립니다. 첫번째로, 새로운 열을 테이블 맨 우측에 만듭니다. 이후 첫번째 행에 =RAND() 함수를 작성해줍니다. 그리고 드래그 하여 모든 행에 입력합니다. 두번째로, 첫번째 머리행 클릭 후 필터를 걸으신 후 RAND() 함수가 작성된 열을 내림차순 또는 오름차순으로 정렬합니다. 랜덤으로 입력된 수에 의해 정렬되니까 어떠한 정렬기준을 선택하시던간에 랜덤으로 정렬된다는 결과는 똑같습니다. 완료 후 RAND() 함수가 작성된 열을 제거하여 테이블을 정리합니다. 구글 스프레드시트 자체 기능을 통해 데이터를 랜덤으로 섞어보자 위 설명이 무색할정도로 간..
[Tip] 구글 스프레드시트 속도 향상을 위한 최적화 방법들 느려터진 구글 스프레드 시트 구글 시트에 수많은 데이터를 넣고 복잡한 함수를 넣다보면 어느 순간 굉장히 버벅거리고 무거운 것을 느끼게 될 겁니다. 데이터를 줄이고, 함수를 날려봐도 어느순간 시트에 접속조차 어려워지는 상황에 처하게 되죠. 저같은 경우는 회사에서 데이터가 수천개 쌓여 있고 복잡한 함수가 걸린 시트에 다수 유저가 데이터 입력하는 상황에서 최적화를 고려해야 하다보니 시트 속도와 최적화에 대해 고민이 많았습니다. 요번 포스트에서는 제가 겪으면서 익혔던 구글 시트를 최적화 할 수 있는 몇가지 팁들을 알려드립니다. 쓰지 않는 셀들은 삭제합니다. 행이 늘어날수록 쓰지 않는 열들의 행도 같이 늘어납니다. 전체적으로 시트 크기가 커지게되죠. 구글 시트는 크키가 클수록 계산이 느려집니다. 빈 셀이 많을 수..
[Tip] 대소문자 구분해서 카운트하기 countif()함수의 한계 위 이미지를 살펴보면 A열에 'abc'가 2개, 'ABC'가 1개가 있습니다. 소문자 'abc'만 카운트 하고 싶은데 대문자 'ABC'까지 같이 카운트 되는 상황이죠. 이는countif()함수에서는 대소문자를 구분해서 카운트하는 기능이 없기 때문입니다. 당연히 같은 기능을 하면서 조건만 추가된 countifs()문 역시 제대로 대소문자를 구분해서 계산하지 못합니다. sumproduct(), exact() 함수를 이용한 대소문자 구분하여 카운트하는 함수 =sumproduct(exact("abc", a:a)) 함수 설명 exact() 함수와 sumproduct() 함수를 이용해서 대소문자를 구분한 검색이 가능합니다. sumproduct()도 익숙한 함수는 아닌데 exact()함수..