개발자의 SpreadSheet 학습기 🍋

9rganizedChaos·2022년 9월 16일
0

SpreadSheet...?^^*

금주에는 회사에서 어쩌다보니, (정말 어쩌다보니...) SpreadSheet를 통한 알림톡 발송 시트 만들기 업무를 맡게 되었습니다. 이전에 교육엔지니어로 잠깐 근무하면서 SpreadSheet에서 제공해주는 AppScript를 활용하여 간단한 자동화 툴을 만든 적이 있는데... 그 경험이 있었으므로, 저가 해당 업무를 맡게 되어버렸네요^^* 사실 회사에 입사하고, 한동안은 내가 희망하는 업무 위주로 태스크를 맡고자 했는데, 그러다보니 때때로 리소스가 남을 때가 생겼는데, 그럴 때 오히려 자신감도 떨어지고... 기분이 별로이게 되는 것을 느껴 당분간은 선호/비선호 업무를 떠나 우선 가능한 많은 업무를 맡아서 해보기로 했습니다...! (여기서 얻는 인사이트가 또 있겠조...?)

아마 이 업무가 많은 팀들을 거치고 거쳐 엔지니어링 팀으로 넘어오게 된 것은 "프로그래밍 언어를 다루는 개발자에게라면 마땅히 엑셀쯤은 껌이겠지?"라는 생각 때문이 아니었을까 추측하는데... 사실 저는 엑셀에 엑..자도 모름니다... 솔직히 말하면 업무 중간중간 "아닛... 이거 나도 이렇게 그냥 맨바닥에 헤딩하면서 서치하고 난리치며, 업무하는데, 이걸 굳이 개발자가 맡아야 할 이유가 있을까?" 이런 생각도 들긴 했습니다. 근데 그 지점이야 말로 개발자가 이 업무를 맡아야 할 이유가 아닌가 싶기도 합니다. 스택오버플로 뒤지고 또 뒤지고... 봤던 문서 또 보고, 새로운 검색어 입력했는데, 하이퍼링크 온통 보라돌이로 바뀌어있고... 근데 봤었나 싶어서 또 보고... 이런 삽질, 개발자가 아니면 또 누가 하겠나요...^^*

모쪼록 맨바닥에서 부터 SpreadSheet를 익히면서 얻게 된 몇 가지 팁을 써봅니다!ㅎㅎ

SpreadSheet의 핵심...! 그것은 포-뮬라!

솔직히 셀에 함수를 적용하지 않고, SpreadSheet를 사용하면 솔직히 엑셀이란게 격자무늬 메모장과 다를 바가 없겠지요...? 그리고 30년 가까이 엑셀을 격자무늬 메모장으로 써온 닝겐... 와타시야~ 그냥 지난 이틀, 사흘 정도 찍먹해본게 다이지만, SpreadSheet의 핵심은 결국 함수를 잘 써줘야 하는게 아닌가 하는 생각이 듭니다. 그래서 제가 찾아본 함수들을 정리해봄니다...

  • INDIRECT: 저는 INDIRECT를 다른 셀을 참조하는 함수로 이해했습니다.
    예를 들어, INDIRECT("A2")라는 함수를 B2 셀에 적용하면 B2 셀은 A2 셀에 적혀있는 값을 가져오게 되지요!
    이렇게만 보면, INDIRECT가 대체 뭔가 싶지만...! Named Range와 함께 버무리면 시너지가 배가 됩니다!! Named Range란 시트의 일정 범위를 그룹화해서 이름을 지어두는 건데요!
    특정 범위를 Named Range로 지정해두고 Indirect("범위 이름") 이렇게 지정해주면 복잡하게 Importrange 같은 함수를 쓰지 않아도, 다른 시트 혹은 해당 시트의 특정 범위를 원하는 셀에 불러올 수가 있게 됩니다!!
    https://support.google.com/docs/answer/3093377?hl=en

  • IF: if함수는 간단합니다...! if(조건문, 조건문이 참일 때 셀에 적용될 값, 조건문이 거짓일 때 셀에 적용될 값) 요로코롬 쓰시면 됩니다! 신기했던 게 프로그래밍에서도 조건문 안에 또 다른 조건문을 넣어 분기를 해주는 것 처럼, SpreadSheet의 if 함수 역시 두번째, 세번째 인자에 또 다른 if 문을 넣어주어도 된다는점!

  • IFERROR: 얘는 찾아보면서 자바스크립트의 try...catch 생각이 조금 났는데요...! 이 아이 같은 경우에는 에러를 대응하는 함수라고 이해하면 됩니다. IFERROR(확인할 값, 첫번째 인자로 넘긴 값이 에러일 경우 반환할 값) 이렇게 쓰시면 됩니다. 또 하나 알고 넘어가면 좋은 것은 첫번재로 넘긴 값에서 에러를 반환하지 않으면, 해당 값이 셀에 잘 입력됩니다...!
    https://support.google.com/docs/answer/3093304?hl=en

  • INDEX: 인덱스 함수는 전체 시트 중에서 일부 범위를 정하고 그 범위 내에서 가로 세로 n번째 있는 값을 찾아내는 함수라고 이해하면 됩니다! INDEX(내가 지정한 범위, 몇 번째 열인지, 몇 번째 행인지) 이렇게 쓸 수 있습니다!
    인덱스 함수랑 잘 엮어서 쓸만한 함수는 바로 match 함수! match 함수의 핵심은 얘는 바로 내가 원하는 값이 몇 번째 열에 있는지, 혹은 몇 번째 행에 있는지를 반환하는 함수라는 점입니다!
    어떻게 쓰냐하면! match(내가 찾고 싶은 값, 범위, 서치 타입) 이렇게 쓰는 건디요! 내가 찾고 싶은 값은 그냥 정말 내가 찾고 싶은 값을 입력하시면 되고, 범위는 내가 찾을 범위를 입력하면 됩니다! 여기서 중요한 건 이 범위는 무조건 하나의 열이나 하나의 행이어야 합니다! 그래야 몇 번째 행에 있는지, 혹은 몇 번째 열에 있는지를 반환할 수 있겠죠! 서치 타입은 공식문서를 참고 합시다~ (어렵지 않게 이해가능!)
    https://support.google.com/docs/answer/3093378?hl=en&ref_topic=3105472

(이른) 정리...! 🧹

우선 위와 같이 SpreadSheet이 제공하는 함수를 활용하여 업무의 1단계를 마무리하였습니다. 다음주 월요일에 AppsScript에 간단한 함수 몇가지를 적어 정해진 조건에 따라 유저들에게 알림톡을 보낼 수 있도록 할 것입니다! 너무 줄글로 줄줄 적어서 별로 가독성이 좋지는 않을 것이라 생각하는데요... 그냥 이렇게 공식문서를 읽으면 되는 구나, 정도의 인사이트를 여러분과 공유하고 싶었네요ㅎㅎ 물론 제 업무 정리하는데에 가장 큰 의의가 있는 포스팅이지만요...! 그럼 이만!

profile
부정확한 정보나 잘못된 정보는 댓글로 알려주시면 빠르게 수정토록 하겠습니다, 감사합니다!

1개의 댓글

comment-user-thumbnail
2022년 12월 10일

으악 개발자에게 주어지는 스프레드시트라니!!!

답글 달기