[257회 라이브 공지] 이번 주 라이브는 `3/4(수) 오후 8시` 에 진행합니다! 오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴
엑셀 YahooFinanceHistory 함수 추가기능
야후 금융에서 제공하는 전세계 주식 가격 정보를 실시간으로 받아오는 엑셀 추가기능 함수입니다.
파일 다운로드 ( 무료 )
30 EP0 EP 특별 할인 중!
1,710 명 이상의 회원이 다운로드 받았어요! ( 41개의 리뷰)
엑셀 YahooFinanceHistory 함수 추가기능 썸네일
추가기능 이용 가이드
추가기능 상세 정보
야후 금융에서 제공하는 전세계 주식 가격 정보를 실시간으로 받아오는 엑셀 추가기능 함수입니다.
파일이름
DuTool YahooFinanceHistory 함수.xlam
지원 버전
윈도우 : 오피스 2013 버전 이상
Mac : 사용불가
사용자 평점
4.92
누적 다운로드
사용자 후기

추가기능 활용 가이드
추가기능 사용법 안내
엑셀 추가기능은 실행파일이 아닌, 엑셀에 등록하여 사용하는 확장 도구입니다.
함수 구문
=YahooFinanceHistory(종목코드, [시작일], [종료일], [조회간격], [배열반환], [GMT], [머리글포함] )
종목코드
-

과거 주식 내역을 조회할 종목코드입니다.

  • 미국주식과 한국주식은 종목코드를 그대로 입력합니다.
  • 그 외 해외주식은 종목코드 뒤에 국가코드를 추가로 입력합니다.
    - 일본(JPX) : 종목번호.T
    - 홍콩(HKG) : 종목번호.HK
    - 독일(GER) : 종목번호.DE 등..
시작일
-
[선택인수]

주식 기록을 조회할 시작일입니다. 기본값은 오늘 날짜 기준 1년 전입니다.

종료일
-
[선택인수]

주식 기록을 조회할 종료일입니다. 기본값은 오늘 날짜입니다.

조회간격
-
[선택인수]

주식 기록을 조회할 간격입니다. 기본값은 '1일' 입니다. YahooFinanceHistry 함수는 총 9가지 조회 간격을 제공합니다.

  • 1m : 1분 단위 (최대 7일)
  • 2m : 2분 단위 (최대 59일)
  • 5m : 5분 단위 (최대 59일)
  • 15m : 15분 단위 (최대 59일)
  • 30m : 30분 단위 (최대 59일)
  • 1h : 1시간 단위 (최대 2년)
  • 1d : [기본값]  1일 단위 (제한 없음)
  • 5d : 5일 단위 (제한 없음)
  • 1wk : 1주일 단위 (제한 없음)
배열반환
-
[선택인수]

TRUE 일 경우 함수가 결과값으로 배열을 반환합니다. 기본값은 FALSE 입니다.

  • M365 버전 사용자는 배열반환여부를 TRUE로 사용합니다.
GMT
-
[선택인수]

GMT 시간대입니다. 기본값은 0입니다.

  • 미국, 한국 주식 외 해외 주식일 경우 GMT 시간대를 조절합니다.
  • 예를 들어, 홍콩 주식(GMT+8)이면 8, 일본 주식(GMT+9)이면 9를 입력합니다.
머리글포함
-
[선택인수]

FALSE 일 경우 머리글을 출력하지 않습니다. 기본값은 TRUE 입니다.

1. 삼성전자의 과거 5년 주식 시세를 1일 단위로 조회
=YahooFinanceHistory("005930", TODAY()-365*5, TODAY())
/ / 삼성전자의 과거 5년 주식 정보를 1일 단위로 조회합니다.
삼성전자 주식 조회
삼성전자 주식의 최근 5년 주식 시세를 일단위로 조회합니다.
2. 미국 마이크로소프트 과거 1년 주식 시세를 1시간 단위로 조회
=YahooFinanceHistory("MSFT", TODAY()-365, TODAY(), "1h")
/ / 미국 마이크로소프트(MSFT)의 과거 1년 주식 시세를 1시간 단위로 조회합니다.
미국 주식 1시간 단위 조회
마이크로소프트사의 최근 1년 주식 시세를 1시간 단위로 조회합니다.
3. 독일 BMW의 과거 1개월 주식 시세를 5분 단위로 조회
=YahooFinanceHistory("BMW.DE", TODAY()-30, TODAY(), "5m",,1)
/ / 독일 BMW의 과거 1개월 주식 시세를 5분 단위로 조회합니다. (독일: GMT+1)
독일 주식 5분 단위 조회
BMW 사의 최근 1달 주식시세를 5분 단위로 조회합니다.

알아두면 좋은 정보
사용 전 참고사항

YahooFinanceHistory 함수는 아래 API에서 제공하는 데이터를 참고합니다.

https://query1.finance.yahoo.com/v8/finance/chart/주식코드

전체 주식코드 목록은 야후 금융 페이지에서 확인하실 수 있습니다.😊

조회 기간이 1일보다 클 경우 "조정종가"가 표시되며, 조회 기간이 1일보다 작을 경우 "조정종가"가 표시되지 않습니다.

본 함수의 결과는 주식 투자 시 참고용으로만 활용할 수 있습니다. 모든 투자 결정은 사용자 본인의 책임이며, 본 함수 사용으로 인한 금전적 손실에 대해서는 책임지지 않습니다.


최신 업데이트 정보
버전 히스토리
버전
날짜
변경사항
1.0.0
2021-07-26
YahooFinanceHistory 함수 추가기능 업로드
댓글 41
4.9 (25개 평가)
나그네
나그네 2021.07.28 01:39
잘 사용하겠습니다. 이게 가능한지 모르겠지만.. 한가지 질문이 있습니다. 홈페이지에 GetStockNo 함수를 쓰면 국내주식의 종목코드는 받아와지는데 해외주식은 안되더라구요.. 혹시 해외주식도 종목코드를 받아오는 방법이 있을까요? 예를들어 Microsoft를 입력하면 MSFT가 반환되는 형식으로..
오빠두엑셀
오빠두엑셀 작성자 2021.07.31 18:12
안녕하세요. 야후에서 제공하는 자동완성 결과를 받아오면 가능합니다. 아직 관련 추가기능은 제작하지 않았지만 아래 URL을 참고하시면 검색결과를 받아올 수 있습니다. https://query1.finance.yahoo.com/v1/finance/search?q="검색종목"&lang=en-US&region=US&quotesCount=6&newsCount=4&enableFuzzyQuery=false&quotesQueryId=tss_match_phrase_query&multiQuoteQueryId=multi_quote_single_token_query&newsQueryId=news_cie_vespa&enableCb=true&enableNavLinks=true&enableEnhancedTrivialQuery=true 향후 관련 추가기능 업데이트 해 드리겠습니다. 감사합니다.
그린이데아
그린이데아 2021.09.16 22:34
정말 감사합니다
그린이데아
그린이데아 2021.09.23 14:11
대한민국 주식종목 중에 조회가 안되는 코드들 있는데, 혹시 이유가 있을까요? Yahoo Finance에서는 조회가 되는데, 엑셀에서 해당함수를 사용하여 조회하면 #null! 값이 뜹니다. 예를 들면 이엔드디라는 종목코드 101360 를 넣고 조회하면 데이터가 반환되지 않습니다. 조회안되는 몇가지 종목이 있는데 시간되시면 확인을 부탁드립니다.
개미의꿈
개미의꿈 2021.09.28 23:16
야후, 종목코드변경 등 4개 파일을 다운로드 후 엑셀 옵션에서 추가기능 설치를 했습니다. 그런데 매번 엑셀을 실행할때마다 c:\오빠두엑셀\Dutool-GetStockNo함수.xlam 파일을 찾을수 없습니다. ....... 확인하세요. 라는 알럿창이 계속 뜹니다. 함수식도 에러가 났다 다시 실행하면 나오기도 하는 것 같습니다. 어떻게 하면 좋을지요?
오빠두엑셀
오빠두엑셀 작성자 2021.10.01 20:28
개미의꿈님 안녕하세요. 해당 오류는 추가기능을 설치하신 뒤, 설치파일을 올바르게 제거하지 않아서 발생하는 오류인 것 같습니다. 아래 매크로를 실행 후 엑셀을 다시 켜보시겠어요? ^^
Sub AddIn_Listed()
 
    Dim Addin As Addin
 
    With ThisWorkbook
        For Each Addin In AddIns
            AddIns(Addin.Title).Installed = False
        Next
    End With
 
    MsgBox "모든 추가기능이 비활성화 되었습니다." & vbNewLine & "모든 엑셀 문서를 종료 후 다시 시작하세요.", vbInformation
 
End Sub
또는 아래 링크를 한번 확인해보세요. https://www.oppadu.com/%ec%97%91%ec%85%80-%ec%b6%94%ea%b0%80%ea%b8%b0%eb%8a%a5-%ec%98%a4%eb%a5%98-%ed%95%b4%ea%b2%b0/
hwa****
hwa**** 2021.12.28 22:01
정말 좋은 지식 나눔 감사드립니다. 한국시간 기준 12/28 밤10 하기 쿼리를 날리면 =YahooFinanceHistory("AAPL",TODAY(),TODAY(),,FALSE,,FALSE) 2021-12-27 177.09 180.42 177.07 180.33 74,717,300 180.33 2021-12-27 177.09 180.4 177.09 180.33 72,850,218 180.33 이렇게 두줄 결과가 나와서 도무지 원인을 모르겠습니다. ㅠㅠ 미국 장이 시작되기 전이라서 그런건지.... 도움 가능할까요?
오빠두엑셀
오빠두엑셀 작성자 2021.12.30 20:52
hwa 님 안녕하세요? 조회기간을 하루로 설정할 경우 장시작과 장마감시간으로 두번 출력됩니다. 그 중 하나의 값만 불러오려면 아래 댓글에 적어드린 INDEX 공식을 한번 사용해보시겠어요? :) https://www.oppadu.com/product/%ec%97%91%ec%85%80-yahoofinancehistory-%ed%95%a8%ec%88%98/#comment-10922
hwa****
hwa**** 2021.12.30 17:14
먼저 너무나 멋진 기능 공유해 주셔서 감사드립니다. =YahooFinanceHistory("TSLA",TODAY(),TODAY(),,FALSE,,FALSE) 한국 시간 12/30 기준으로 위 함수를 호출하면, 아래와 같이 29일이 두번 호출이 되고 있습니다. 제가 뭘 잘못한건지... 도움 부탁드립니다. 2021-12-29 1,098.64 1,104.00 1,064.14 1,086.19 18,616,700 1,086.19 2021-12-29 1,098.64 1,103.40 1,064.14 1,086.19 18,717,821 1,086.19
오빠두엑셀
오빠두엑셀 작성자 2021.12.30 19:57
hwa*** 님 안녕하세요?^^ 확인결과 하루 기준으로 조회할 경우, 미국 뉴욕시간(GMT-4) 기준 오전 9시 30분 (첫번째 값), 오후 4시 (두번째 값) 으로 두번 반환하는 것으로 확인했습니다 만약 둘 중 하나만 필요할 경우 수식을 아래처럼 사용해보세요. =INDEX(YahooFinanceHistory("TSLA",TODAY(),TODAY(),,TRUE,,FALSE),2) 365 이전버전을 사용중이실 경우 가로로 7칸을 넓게 미리 선택한 상태에서 Ctrl + Shift + Enter로 입력하시면 됩니다. 문제해결에 도움이 되셨길 바랍니다. 감사합니다.
함현종
함현종 2022.03.05 04:33
안녕하세요? 항상 좋은 자료 올려주셔서 잘 보고 있구요. 정말로 감사하게 생각하고 있습니다. 위에 올려주신 함수를 사용해 봤는데, 5분봉으로 하면 항상 9시 00분은 거래량이 0으로 나오더라구요. 그리고 삼성전자를 일봉으로 넣고 돌리면 중간중간에 거래량이 누락되어서 0으로 나오는 부분이 상당히 많은데 이 부분은 제가 뭔가 잘못돌리고 있는걸까요? 아니면 뭔가 프로그램상 변화가 생겨서 발생한 문제일까요? 바쁘시겠지만 확인 좀 부탁드립니다. 수식은 아래와 같이 사용하였습니다. YahooFinanceHistory("005930", TODAY()-20,TODAY(),"5m",,1)
오빠두엑셀
오빠두엑셀 작성자 2022.03.09 22:29
안녕하세요. YahooFinanceHistory 함수는 야후증권에서 제공하는 데이터를 그대로 출력합니다. 매일 오전 9시에 거래량이 0으로 나오는 것은 개장시간이여서 그런 것으로 보이며, 적어주신 수식으로 방금 확인해보니 오전 9시를 제외한 나머지 시간에는 거래량이 모두 0보다 큰 값으로 정상 표시됩니다^^ 다시 한번 확인해보세요.
틴틴
틴틴 2022.04.15 23:13
안녕하세요. 항상 좋은자료 감사드립니다! 2가지 질문이 있습니다! 1. Yahoofinance함수를 적용하기까지의 매크로 개발 과정과 절차, 원리에 대해서는 알려주신적이 있으실까요? 찾아보고 있는데 없는 것 같아 문의드립니다. 2. 주식 시세의 출력을 오늘날짜로부터 설정한 과거일까지 내림차순으로 출력이 가능한지 문의드립니다. 미리 답변 감사드립니다! 업무에 큰 도움이 되어 항상 감사드리고 있습니다. 좋은 하루 보내세요
오빠두엑셀
오빠두엑셀 작성자 2022.04.18 16:02
안녕하세요. 야후 파이넌스 는 아니지만, 야후 주식정보를 불러오는 방법을 이전 프리미엄 워크샵에서 진행한적이 있습니다. 방법은 동일하므로 아래 강의를 참고하시면 많은 도움이 되실겁니다. https://www.oppadu.com/%ec%97%91%ec%85%80-live-60%ea%b0%95/ 정렬까지 같이 하려면 M365의 SORT 함수를 사용하시거나, M365 이전 버전을 사용중이시라면 홈페이지의 xSORT 함수를 같이 사용해보세요. https://www.oppadu.com/product/%ec%97%91%ec%85%80-sort-%ed%95%a8%ec%88%98-%ec%b6%94%ea%b0%80%ea%b8%b0%eb%8a%a5/
aesafakm
aesafakm 2022.05.23 21:59
너무 잘쓰고싶지만..엑린이이지만 주식포트폴리오를 만드는 과정에 질문이 있어서 드립니다. 국내주식투자처럼 현재가만 한셀에 나오게하고싶은데..댓글에 없어서 질문드려요..ㅠㅠ부탁드립니다. =IFERROR(INDEX(NaverFinanceHistory("005930",TODAY(),TODAY(),"시가",TRUE,FALSE),,2),INDEX(NaverFinanceHistory("005930",TODAY()-1,TODAY(),"시가",TRUE,FALSE),,2)) 이런식으로 한국주식처럼 현재가만 나오게 할 수 없을 까요 스승님 부탁드립니다.
오빠두엑셀
오빠두엑셀 작성자 2022.05.25 15:41
=INDEX(YahooFinanceHistory ( 종목코드, [시작일], [종료일], [조회간격],
TRUE, , FALSE),1,0)
으로 사용해보세요
aesafakm
aesafakm 2022.05.25 20:33
스승님이 말씀하신건 기본 코드인것같은데 저는 위의 네이버 함수처럼 종목코드 입력하면 현재가만 한셀에 나오게하고싶어서요ㅠㅠ
aesafakm
aesafakm 2022.05.25 20:34
예를 들어 삼성주식으로 005380 코드를 넣어서..는 안되겠죠? 현재가만 나오게 하고싶어서요 한셀에 해외주식코드는 알파벳이니 알파벳만 치면 그 종목의 현재가만 한셀에 나오게 하는 것을 말합니다.ㅠ
오빠두엑셀
오빠두엑셀 작성자 2022.05.31 15:03
네 그렇게는 불가능합니다.^^; 홈페이지 강의를 참고해서 직접 매크로 코드를 작성해보세요. https://www.oppadu.com/엑셀-live-60강/
silverl****
silverl**** 2022.08.14 15:07
안녕하세요 너무나 유용한 기능 잘 사용하고 있습니다. 한가지 질문이 있는데요... 해당 기능 YahooFinanceHistory를 제가 개인적으로 만든 VBA안에 넣어서 사용해보려 합니다. 혹시 방법이 있을까요? VBA 배운지 얼마 안되어 어떻게 하면 좋을지 도무지 떠오르지가 않아 여쭤봅니다. 제가 시도한 방법은 아래와 같습니다.
  1. 제가 만든 VBA안에서 Call 함수로 YahooFinanceHistory를 불러오려 했으나 해당 기능 프로시저 이름을 몰라 실패
  2. "Application.YahooFinanceHistory"의 형태로 시도해보았으나 실패
혹시 도움을 주실 수 있으실까요?