카테고리 없음

엑셀 웹 함수 WEBSERVICE와 FILTERXML 조합 등

IT Office 2025. 6. 29. 07:30
반응형

웹 데이터 기반의 보고서를 자동화하고, 동적인 대시보드를 구축하는 고급 응용 방법을 알아봅니다.

엑셀의 웹 관련 함수들을 활용하여 실시간 웹 정보를 엑셀에 연동하고, 이를 기반으로 의사결정을 지원하는 보고서와 대시보드를 만드는 최상급 실무 예제들을 집중적으로 다룰 예정입니다. 엑셀을 웹 기반 정보의 진정한 허브로 만들어, 데이터 분석 역량을 최고 수준으로 끌어올릴 수 있습니다.


왜 웹 데이터 기반 보고서 자동화가 중요할까요?

현대 비즈니스에서 정보의 신속성과 정확성은 경쟁 우위로 직결됩니다.

주식 시세, 환율, 경쟁사 가격, 공공 통계 등 웹에 산재한 방대한 데이터는 매일, 매시간 변화합니다.

이러한 데이터를 수동으로 관리하는 것은 비효율적일 뿐만 아니라, 오류 발생 가능성이 높고 항상 최신 상태를 유지하기 어렵습니다.

  • 실시간 의사결정: 웹에서 자동으로 업데이트되는 데이터를 기반으로 시장 변화에 즉각적으로 대응합니다.
  • 업무 효율 극대화: 수동 데이터 입력 및 업데이트에 소요되는 시간을 획기적으로 단축합니다.
  • 보고서의 동적 구성: 사용자 입력이나 시간의 흐름에 따라 스스로 업데이트되고 변형되는 대시보드를 만듭니다.
  • 데이터 기반 통찰력 심화: 더 많은 웹 데이터를 손쉽게 통합하여 분석함으로써 새로운 패턴과 통찰력을 발견합니다.

이 고급 응용 기술들을 통해 여러분은 엑셀을 단순한 스프레드시트 프로그램을 넘어, 웹 기반 데이터를 실시간으로 모니터링하고 분석하는 강력한 '비즈니스 인텔리전스 도구'로 활용할 수 있을 것입니다.


주요 응용 기술들

웹 함수들을 종합적으로 활용하여 다음 핵심 응용 기술들을 실무 예제와 함께 자세히 살펴보겠습니다.

  • WEBSERVICE와 FILTERXML을 조합한 웹 테이블 데이터 가져오기 (고급): 복잡한 XML 응답에서 다차원 데이터 추출
  • 웹 데이터를 활용한 대시보드 구축 및 자동 업데이트: 실시간 환율 대시보드
  • 웹 함수와 날짜/시간, 논리 함수 결합을 통한 실시간 분석: 주식 포트폴리오 모니터링
  • Power Query를 활용한 웹 스크래핑 및 보고서 연동 (재강조): 동적 보고서의 백본

실무 예제로 배우는 엑셀 함수 마스터하기

각 응용 기술을 실제 비즈니스 시나리오에 적용하여 웹 데이터 기반의 분석 및 보고서 자동화를 구현하는 방법을 보여드리겠습니다.

1. WEBSERVICE와 FILTERXML을 조합한 웹 테이블 데이터 가져오기 (고급)

단순한 값을 넘어, 웹 서비스의 XML 응답에서 여러 개의 행과 열로 이루어진 테이블 형태의 데이터를 추출해야 할 때가 있습니다. 이는 FILTERXML의 XPath 문법을 깊이 활용해야 합니다.

 

실무 예제: 가상의 웹 서비스가 아래와 같은 XML 형식의 제품 목록을 제공한다고 가정해 봅시다. 이 목록에서 각 제품의 ID, 이름, 가격을 추출하여 엑셀 테이블로 만들고 싶습니다. (실제 웹 서비스 URL은 다를 수 있습니다.)

  • 가상 API URL: http://example.com/api/products.xml
  • XML 응답 예시:
    XML
     
    <products>
      <product id="P001">
        <name>노트북 Pro</name>
        <price>1500</price>
      </product>
      <product id="P002">
        <name>스마트폰 X</name>
        <price>1000</price>
      </product>
      <product id="P003">
        <name>태블릿 Mini</name>
        <price>500</price>
      </product>
    </products>
    

예제 목표: WEBSERVICE로 XML을 가져온 후, FILTERXML을 사용하여 각 제품의 id, name, price를 추출하여 세 개의 열에 걸쳐 표시하세요.

해결 방법:

  1. XML 데이터 가져오기: A1 셀에 =WEBSERVICE("http://example.com/api/products.xml") (실제 URL 사용)을 입력하여 전체 XML 문자열을 가져옵니다.
  2. 제품 ID 추출: B1 셀에 다음 수식을 입력하고 아래로 채웁니다. =FILTERXML(A1, "//product/@id")
    • //@id: @id는 '속성'을 의미합니다. //product/@id는 모든 <product> 태그의 id 속성 값을 추출합니다. (이는 동적 배열로 자동으로 채워집니다 - 엑셀 365)
  3. 제품명 추출: C1 셀에 다음 수식을 입력하고 아래로 채웁니다. =FILTERXML(A1, "//product/name")
    • //product/name: 모든 <product> 태그 아래의 <name> 태그 값을 추출합니다.
  4. 가격 추출: D1 셀에 다음 수식을 입력하고 아래로 채웁니다. =FILTERXML(A1, "//product/price")

결과: B1:D3 범위에 다음과 같은 제품 정보 테이블이 동적으로 생성됩니다.

제품 ID 제품명 가격
P001 노트북 Pro 1500
P002 스마트폰 X 1000
P003 태블릿 Mini 500
 

최상급 실무 활용: 이 고급 응용은 웹 기반 데이터베이스의 특정 테이블 정보 가져오기, 제품 카탈로그 자동 업데이트, 특정 서비스의 실시간 요금표 연동 등 정형화된 XML 응답을 처리할 때 매우 유용합니다. XPath 문법을 숙달하면 XML 데이터를 원하는 형태로 자유자재로 변형할 수 있습니다.


2. 웹 데이터를 활용한 대시보드 구축 및 자동 업데이트: 실시간 환율 대시보드

WEBSERVICE와 FILTERXML을 조합하여 실시간 환율 데이터를 가져오고, 이를 기반으로 사용자 친화적인 대시보드를 구축합니다.

실무 예제: 1부 예시의 http://www.floatrates.com/daily/usd.xml API를 활용하여, 미국 달러(USD)에 대한 한국 원(KRW), 일본 엔(JPY), 유럽 유로(EUR)의 실시간 환율을 가져와 대시보드를 만들고 싶습니다.

기준 통화 대상 통화 실시간 환율
USD KRW  
USD JPY  
USD EUR  
 

예제 목표: C열에 각 대상 통화에 대한 USD 환율을 실시간으로 가져오고, D열에 HYPERLINK를 사용하여 각 통화 쌍의 상세 정보 페이지로 이동하는 링크를 만드세요.

해결 방법:

  1. XML 데이터 가져오기 (숨김): Z1 셀 등 화면에 보이지 않는 셀에 =WEBSERVICE("http://www.floatrates.com/daily/usd.xml")을 입력하여 XML 데이터를 가져옵니다.
  2. 실시간 환율 추출 (C2 셀): =FILTERXML(Z$1, "//item[targetCurrency='"&B2&"']/rate")
    • Z$1: XML 데이터가 있는 셀 (절대 참조).
    • "//item[targetCurrency='"&B2&"']/rate": B2 셀의 대상 통화(예: 'KRW')를 XPath에 동적으로 삽입하여 해당 통화의 환율을 추출합니다. (아래로 채워 넣기)
  3. 상세 정보 링크 (D2 셀): =HYPERLINK("https://www.floatrates.com/daily/"&LOWER(A2)&".html?target="&LOWER(B2), "상세 정보 보기")
    • LOWER(A2): 기준 통화(USD)를 소문자로 변환 (URL 형식에 맞춤).
    • LOWER(B2): 대상 통화(KRW, JPY, EUR)를 소문자로 변환.
    • 이들을 결합하여 각 통화 쌍에 대한 특정 URL을 만듭니다.

결과:

기준 통화 대상 통화 실시간 환율 링크
USD KRW 1350.50 상세 정보 보기
USD JPY 156.20 상세 정보 보기
USD EUR 0.92 상세 정보 보기
 

자동 업데이트 설정:

  • 데이터 탭 → 연결 그룹 → 모두 새로 고침 옆의 화살표 클릭 → 연결 속성 (또는 현재 통합 문서 연결 클릭 후 연결 선택 → 속성).
  • 사용법 탭에서 새로 고침 간격을 지정합니다 (예: 5분마다 새로 고침).

최상급 실무 활용: 이 대시보드는 실시간 시장 모니터링, 재무 포트폴리오 관리, 국제 무역 보고서 등 최신 정보에 기반한 신속한 의사결정이 필요한 모든 상황에서 활용됩니다. 특정 지표(예: 환율)가 변화하면 대시보드 값이 자동으로 업데이트되어 항상 최신 정보를 제공하며, 관련 웹 페이지로 즉시 이동할 수 있는 편의성까지 제공합니다.


3. 웹 함수와 날짜/시간, 논리 함수 결합을 통한 실시간 분석: 주식 포트폴리오 모니터링

웹 함수를 날짜/시간 함수, 논리 함수와 결합하여 특정 기준에 맞는 실시간 데이터를 분석하고 조건부 판단을 내립니다.

 

실무 예제: 매일 특정 주식의 현재가를 웹에서 가져와 포트폴리오를 모니터링하고, 목표 수익률에 도달했거나 손실이 발생하면 자동으로 알림을 표시하고 싶습니다.

해결 방법 (Power Query와 IF/조건부 서식 결합):

  1. Power Query로 주식 현재가 가져오기:
    • 데이터 탭 → 데이터 가져오기 → 웹에서.
    • 위 Yahoo Finance API URL 입력 (또는 실제 사용 가능한 주식 API).
    • Power Query 편집기에서 JSON 응답을 테이블로 변환하고 원하는 가격(예: regularMarketPrice)을 추출합니다. (복잡한 과정이므로 여기서는 상세 생략)
    • 가져온 가격을 'AAPL_Price'라는 이름의 테이블로 엑셀 시트에 로드합니다. (예: A1 셀에 'AAPL_Price', B1 셀에 실제 가격)
  2. 포트폴리오 정보
    종목 매입가 보유 수량 현재가 평가액 수익률 상태
    AAPL 150 10        
  3. 현재가 업데이트 (D3 셀): D3 셀에 =AAPL_Price[AAPL_Price] (Power Query로 가져온 가격 참조)
  4. 평가액 계산 (E3 셀): =D3*C3
  5. 수익률 계산 (F3 셀): =(E3-(B3*C3))/(B3*C3) (백분율 서식)
  6. 상태 표시 (G3 셀): =IF(F3>=0.05, "✅ 목표 수익 달성!", IF(F3<0, "❌ 손실 발생!", "유지")) (5% 이상 수익 시 목표 달성, 손실 시 손실 발생)
  7. 조건부 서식 적용:
    • G열(상태) 선택 → 홈 탭 → 조건부 서식 → 셀 강조 규칙 → 텍스트 포함 → "✅ 목표 수익 달성!" (초록색), "❌ 손실 발생!" (빨간색).
    • 자동 업데이트: Power Query 연결을 5분마다 자동 새로 고침 설정 (데이터 탭 → 쿼리 및 연결 → 연결 속성).

결과: 'AAPL'의 현재가가 웹에서 자동으로 업데이트되고, 그에 따라 평가액, 수익률, 그리고 상태가 실시간으로 계산 및 표시됩니다. 목표 수익률 달성 시 초록색, 손실 발생 시 빨간색으로 셀이 강조됩니다.

 

최상급 실무 활용: 이러한 통합 솔루션은 개인/기업 투자 포트폴리오 관리, 경쟁사 가격 모니터링, 특정 시장 지표 추적 등 실시간 웹 데이터를 기반으로 한 복합적인 분석과 자동 알림 시스템을 구축할 때 매우 유용합니다. Power Query로 데이터를 가져오고, 엑셀 함수로 분석 및 판단하며, 조건부 서식으로 시각화하는 강력한 워크플로우를 보여줍니다.


 

엑셀 웹 함수를 통합하여 웹 데이터 기반의 보고서를 자동화하고, 동적인 대시보드를 구축하는 고급 응용 방법들을 살펴보았습니다. WEBSERVICE와 FILTERXML을 통한 복잡한 XML 파싱부터, HYPERLINK를 통한 동적 링크 생성, 그리고 Power Query를 활용한 실시간 데이터 연동 및 분석까지, 엑셀을 웹 기반 정보의 강력한 비즈니스 인텔리전스 도구로 활용할 수 있습니다.

반응형