구글스프레드시트

Google 스프레드시트로 주가를 불러오는 3가지 방법

포오옥 2021. 4. 7. 14:42
728x90

1. 주가 불러오기(1)

구글 스프레드시트는 엑셀과는 다른 다양한 기능이 있다.

그 중에서 GOOGLEFINANCE라는 주식투자와 관련된 함수에 대해 알아보자.

이 함수는 주식의 가격을 비롯한 다양한 수치를 불러 올 수 있는 함수다.

1) 함수 구성은 아래와 같다.

GOOGLEFINANCE([심볼], [속성], [시작일], [종료일|일수], [간격])

보통

=GOOGLEFINANCE([심볼])

이렇게 쓰면 현재 가격이 나온다. 

 

2) GOOGLEFINANCE는 모든 심볼을 지원하진 않는다.

예를들어 상해증권거래소에 상장되어 있는 601888은 검색되지 않는다.

금시세도 마찬가지다.

 

3) 참고

(1) googlefinance함수는 갱신시간이 25분이다.

(2) googlefinance 함수로 주가를 불러오는 방법은 두가지가 있다.

 첫째, =GOOGLEFINANCE(A3)

 둘째, =GOOGLEFINANCE("MSFT")

첫째는 다른 셀을 참조하는 경우이고 둘째는직접 함수안에 심볼을 넣는 경우이다. 이때, 심볼에는 쌍따옴표를 꼭 입력해야 한다.

 

2. 주가 불러오기(2)

IMPORTHTML, INDEX 두 가지 함수를 이용하여 외부에서 주가를 불러오는 방법이다.

1) INDEX함수는 아래와 같이 쓴다.

INDEX 함수는 행렬의 특정 행과 열을 보여주는 함수다.

위의 그림에서 INDEX(행렬범위,3,2)는 행렬의 3행 2열을 보여준다.

2) ImportHtml 함수는 웹사이트에서 자신이 원하는 표나 목록을 불러오는 함수다.

함수 구성은 아래와 같다.

ImportHtml(URL, 쿼리, 색인)

URL은 웹페이지 주소를 적는 메뉴다.

쿼리는 TABLE과 LIST 가 있는데 각각 웹페이지에서 표로 구성된 항목, 목록의 구성된 항목을 고르는 메뉴다.

색인은 웹페이지에서 몇 번째로 등장하는 표(목록)인지 선택하는 메뉴다.

주가의 과거데이터를 보여주는 웹사이트를 찾는다. Investing.com을 이용했다.

이 웹사이트의 과거데이터 메뉴는 두 개의 표가 있다. 첫 번째 표가 필요하므로 아래와 같이 입력한다. 웹페이지의 어느 부분이 표인지 모르겠다면, 색인에 1부터 숫자를 하나씩 넣어서 찾는다.

=IMPORTHTML("https://kr.investing.com/equities/cits-historical-data","TABLE",1)

이 표에서 우리가 필요한 것은 가장 최근 날짜의 종가이다. INDEX 함수로 2행2열만 가져오자. 아래와 같이 입력한다.

=index(A1:G24,2,2)

 

3) 구글 스프레드시트는 함수를 겹쳐서 사용할 수 있다. 위의 과정을 아래와 같이 한 줄로 쓸 수 있다.

=index(IMPORTHTML("https://kr.investing.com/equities/cits-historical-data","TABLE",1),2,2)

 

3. 주가 불러오기(3)

IMPORTXML을 이용여 외부에서 주가를 불러오는 방법이다.

 

1) 함수 구성은 아래와 같다.

​IMPORTXML(URL, xpath_검색어)

URL은 웹페이지 주소이고, xpath 찾는 법을 알아보자. xpath는 소스코드를 확인해야 한다.

 

2) 다양한 웹브라우저 중 크롬을 기준으로 설명하겠다.

(1) 주가에서 마우스 오른쪽 클릭을 한다. 위 그림에서는 119.85에 마우스 오른쪽 클릭을 한다.

(2) 검사를 선택한다.

(3) 크롬의 우측에 콘솔창이 나타나고 안의 소스 코드 중 주가 부분이 파랗게 처리가 되어 있다. 우리가 찾고자 하는 코드다.

(4) 콘솔창의 파랗게 처리가 되어 있는 부분에서 마우스 오른쪽 클릭 > COPY > Copy XPath 를 순서대로 클릭한다.

XPath 주소를 얻었다.

//*[@id="last_last"]

(5) 하지만 아래와 같이 입력하면 오류가 뜬다.

=importxml("https://kr.investing.com/equities/cits","//*[@id="last_last"]")

 

(6) 이유는 구글 스프레드시트 함수에 텍스트를 입력할 때는 따옴표를 붙여 주어야 하는데, XPath 주소에 따옴표가 들어가기 때문이다. XPath 주소 안의 따옴표를 작은 따옴표로 바꾸어 준다.

//*[@id='last_last']

(7) 아래와 같은 함수가 완성된다.

=importxml("https://kr.investing.com/equities/cits","//*[@id='last_last']")

 

4. 주가 불러오기(번외)

네이버 금융 페이지에서 국내 금시세를 불러왔다.

=importxml("https://finance.naver.com/marketindex/?tabSel=gold#tab_section","//*[@id='content']/div[4]/table/tbody/tr[1]/td[3]")

 

5. 동영상

youtu.be/e6KTGJ26atw

반응형