구글시트 강좌2 CONCATENATE 함수로 원하는 코인 정보만 크롤링 해오기
첫날에 강좌를 1개만 올리면 섭섭할 것 같아서 2번째 강좌를 올리러 온 @youngbinlee 빈누입니다.
향후에는 가능한 하루에 1개씩만 올리려고 합니다. 과거 강좌를 보셔야 이후 내용을 진행하실 수 있습니다.
구글시트 강좌1 importhtml로 한방에 하는 웹페이지 크롤링 (모든 코인 현재가격 불러오기)
구글 시트란?
구글 시트는 구글에서 제공하는 스프레드시트 프로그램입니다. 마이크로 소프트 엑셀과 거의 동일하지만, 클라우드 상에 파일이 존재하여, 여러 기기에서 접근하거나, 여러 사람이 동시에 수정을 하는 등 엑셀보다 편리한 점이 많이 있습니다.
기존의 엑셀 함수는 대부분 사용이 가능하고, 구글 시트에서만 작동하는 유용한 함수들도 많이 있습니다. 구글 시트를 익혀서 여러분의 생산성을 올려보세요! :) 구글 드라이브 바로가기
오늘의 함수 CONCATENATE
이 함수는 엑셀에서도 쓰이는 함수입니다. 문자열(숫자도)을 연결시켜주는 역할을 하는 함수입니다.
함수 사용법
CONCATENATE(문자열1, [문자열2, ...])
- 문자열1 - 첫 번째 문자열입니다.
- 문자열2, ... - [ 선택사항 ] - 다음으로 추가할 추가 문자열입니다.
- 괄호 안에는 개별 텍스트를 넣을 수도 있고, 개별 셀 참조 혹은 셀의 범위를 참조로 넣을 수도 있습니다.
함수 대신 사용할 수 있는 것
함수를 사용하는 대신에 &를 사용할 수도 있습니다. 결과값은 동일하게 나옵니다. 저 개인적으로는 &를 더 많이 씁니다.
=concatenate("https://steemit.com/@",A2)
="https://steemit.com/@"&A2
활용예1
이제 이것을 이용해서 내가 원하는 정보를 가져올 웹페이지 주소를 꾸며봅니다. coinmarketcap.com 에서 각각의 화폐의 상세 페이지 주소를 한번 살펴봅니다.
- Bitcoin : https://coinmarketcap.com/currencies/bitcoin/
- Ethereum : https://coinmarketcap.com/currencies/ethereum/
- Bitcoin Cash : https://coinmarketcap.com/currencies/bitcoin-cash/
https://coinmarketcap.com/currencies/ 이만큼은 주소가 동일하고 뒤에 화폐의 이름이 붙는다는 규칙성을 발견하면 concatenate 함수를 이용해 간단하게 필요한 웹페이지 주소를 만들 수 있습니다.
Bitcoin Cash처럼 빈칸이 있는 아이는 어떻게 해야할까요? 그냥 동일한 함수를 사용하면 링크가 제대로 작동하질 않습니다.
오늘의 보너스 함수 SUBSTITUTE
SUBSTITUTE(검색할텍스트, 검색할문자열, 대체할_문자열)
- 검색할_텍스트 - 검색하여 대체할 텍스트 전체입니다.
- 검색할_문자열 - 검색할 텍스트 내에서 검색할 문자열입니다.
- 대체할_문자열 - 검색할 문자열을 대체할 문자열입니다.
substitute함수를 이용해 빈칸이 있으면 - (dash)로 바꾸는 함수를 넣으면 간단하게 해결됩니다.
=concatenate("https://coinmarketcap.com/currencies/",SUBSTITUTE(A2," ","-"))
오늘의 두번째 보너스 함수 LOWER
간혹 웹페이지 주소에 대소문자가 섞여 있으면 인식되지 못하는 경우가 있습니다. 아니면 단지 보기에 이쁘지 않다고 생각하실 수도 있구요. 그럴때는 모든 글자를 소문자로 변신시켜주는 함수 LOWER를 사용하면 깔끔해집니다.
=concatenate("https://coinmarketcap.com/currencies/",LOWER(SUBSTITUTE(A2," ","-")))
실전 예제
위의 함수를 그대로 B2 셀에 입력하고, A2 셀에서 여러가지 암호화폐의 이름을 입력하면 그 주소의 정보가 importhtml 함수를 통해 불러와지게 됩니다.
B2 셀 =concatenate("https://coinmarketcap.com/currencies/",LOWER(SUBSTITUTE(A2," ","-")))
B3 셀 =importhtml(B2, "table",1)
숙제
steemd.com 의 정보를 이용하여 스팀잇 유저 여러분들의 Steem Power가 얼마나 되는지 알아봅시다.
숙제에 참여하여 댓글을 남겨주시면, 보팅해드립니다. >ㅁ<
숙제 제출합니다! 응용까지 했어요!! :)
완전 뿌듯 ㅋㅋㅋ
훌륭하십니다! +ㅁ+/
스스로 홍보하는 프로젝트에서 나왔습니다.
오늘도 좋은글 잘 읽었습니다.
오늘도 화이팅입니다.!
감사합니다. ^ㅁ^
숙제 제출합니다~
![](https://steemitimages.com/DQmXsS6uGdwwLS3y2uvnsbaG7noTg9EhfViSyn1kDNzuCwi/image.png)
1등! 보팅 드렸어요!
안녕하세요! 숙제가 어려워서 헤매다가 질문 드립니다..!
B1에는
=concatenate("https://steemd.com/@",A1)
을 입력하고
B2에는
=importhtml(B1, "table",1)
을 입력했는데
숙제처럼 3가지만 나오질 않고 이렇게 잔뜩 나와버립니다.
지난번 예제에서도 이렇게 나왔던것같은데 파란부분을 안나오게 하는건 어떻게해야하나요?ㅁ?
예제는 사진이랑 같게 잘 됐는데요;ㅁ;
사실 잔뜩 나오는게 정상입니다! ^ㅁ^ 스크린샷 왼편을 자세히 보시면 줄 번호가 3번에서 57번으로 쩜프한게 보이시죠? 필요한것만 남기려고 줄을 숨기기 한거에요. 숨기기할 줄을 선택한 뒤에 우클릿 메뉴에서 숨기기 하시면 됩니다. 헷갈리게 해드려 죄소왜요! ㅎㅎㅎ
아...!!!!!!! ㅎㅎㅎㅎ 생각도 못했네요! 감사합니다ㅎㅎ 드디어 성공(?)했어요 ㅎㅎㅎㅎ
와 구글시트 엄청 재밌네요 팔로우 합니다. 좋은 강의 많이 올려주세용
재밌는게 더더 많아요. 열심히 올려보겠습니다. ^ㅁ^
신기하고 유용하네요! 앞으로 구글시트를 열심히 활용해봐야 겠어요~ 좋은정보 감사합니다~^^!
저는 여러가지 관리를 구글 시트로 하고 있어서 이제 없으면 못사는 지경에 이르렀습니다;;;; ㅎㅎㅎ
Good post...
Thanks.
^^ 댓글 읽어보고 해답을 찾았습니다.
![](https://steemitimages.com/DQmckNjQnfBstkrkzW6chKheiQamEtyPvzGtUXDxs2UxiFp/image.png)
두 번째 숙제도 제출합니다! :)
숙제2
안녕하세요, 뒤 늦게 발견해서 정주행 중입니다. 감사합니다. ^^
![스크린샷 2018-05-19 오전 1.15.00.png](https://steemitimages.com/640x0/https://steemitimages.com/DQmaz4Wr5tj8VrwJVtebNiC6jmwVh3LDSYVUMYLjQZfTwdw/%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202018-05-19%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%201.15.00.png)