엑셀 WEBSERVICE 함수는 인터넷에서 HTML, XML, JSON과 같은 형식으로 서비스되는 데이터를 엑셀로 가져올 수 있습니다. 가져온 데이터가 XML 형식이라면 FILTERXML 함수로 데이터의 특정 부분을 추출할 수 있습니다.
예를 들어 RSS 서비스로 제공되는 XML 형식의 언론사 증권뉴스, 기상청 날씨 정보와 같은 데이터를 엑셀로 가져와서 손쉽게 가공할 수 있습니다.
구문(Syntax)
WEBSERVICE(url)
웹서비스에서 데이터를 가져온다.
인수 : url – 웹 서비스 URL
Windows용 엑셀 2013 이상에서만 사용 가능함수 사용 시 주의 사항
- 반환하는 텍스트가 32,767자를 초과하면 #VALUE 오류 발생
- URL이 2048자를 초과하면 #VALUE 오류 발생
- ftp://, file:// 프로토콜은 지원하지 않음
사용 예
1) 웹서비스 데이터 가져오기
=WEBSERVICE(B4) => '"<?xml version=""1.0"" encoding=""UTF-8""?><rss version=""2.0""><channel><title><![CDATA[한국경제 | 뉴스 | 증권]]></title>...'
한국경제신문에서 제공하는 RSS 서비스 증권 카테고리 데이터를 가져온 결과
=WEBSERVICE(B5) => '<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[속보 - 이티뉴스]]></title>...'
전자신문에서 제공하는 RSS 서비스 뉴스속보를 가져온 결과
=WEBSERVICE(B6) => '<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="ko"><head><meta content=....'
구글(https://google.com/)의 HTML 페이지를 가져온 결과(2022년 3월 기준 15,248 글자)
=WEBSERVICE(B7) => #VALUE! 오류 발생
네이버 금융(HTML페이지)은 32,767글자를 초과하여 오류 발생(2022년 3월 기준 136,807 글자)
2) FILTERXML 함수로 특정 데이터 가져오기
WEBSERVICE 함수로 가져온 데이터가 XML 형식이면 다음과 같이 FILTERXML 함수로 원하는 부분만 가져올 수 있습니다.
=FILTERXML(D4,"//item/title")
관련 글
안녕하세요. 좋은 정보 감사합니다 ^^
궁금한 점이 있는데요.
첨부된 파일을 받아서 수식에 있는 함수 '=WEBSERVICE(B4) 에서 작은따옴표만 없애서 함수로 바꿔서 사용해봤는데, 4가지 예제 모두 #VALUE! 값이 나오는데, 어떻게 해야할까요?
함수의 인수로 입력한 웹페이지가 32,767자를 초과하면 #VALUE 오류가 발생합니다. 가능하면 RSS나 OPEN API로 제공되는 XML, JSON 형식에 길이가 32,767자를 넘지 않는 서비스를 이용하는 것이 좋습니다.
글 본문에 설명되어 있으니 참고하세요.
######### 으로만 표시되는 경우도 있는데요. 셀서식에서 일반으로 바꾸면 정상으로 표시됩니다(리본메뉴→홈→표시 형식 그룹의 목록상자에서 '회계'로 되어 있는 것을 '일반'으로 변경)