본문 바로가기

오피스/EXCEL함수

엑셀 2013 새로운 함수 WebService에 대해서(3)- FILTERXML함수


1 .http://apis.daum.net/local/geo/addr2coord?apikey=DAUM_LOCAL_DEMO_APIKEY&q=%EB%8C%80%ED%95%99%EB%A1%9C&output=xml을 열면 아래와 같은 XML형식의 문서를 보실 수 있습니다.

 

 

2. 1번과 같이 XML파일에는 수많은 정보가 체계적으로 들어 있습니다. 새로운 FILTERXML함수에는 아래와 같이 두개의 함수 인자를 가지고 있습니다.

 

 

2. 첫번째 인자인 xml이 뭔지는 알았으니 이제 XPATH가 뭔지 알아야 할 차례입니다.

위의 XML문서를 보면 아래와 같이 3단의 구성을 가지고 있습니다.

1.단계 <Channel>

2.단계 <Title>

2.단계 <Item>

3단계 <title>

 

Channel의 자식들이(2단계) 존재하며 2단계의 Item만이 결혼을 했는지 3단계의 자식들을 가지고 있습니다.

 

3. 이제 XML문서에서 항목들("< >"묶여진 항목들) 중 중복되는 것이 없는 단일 항목은 바로

//lng를 함수 인자로 넣으면 됩니다. 단일 항목이 아니라 TITLE와 같은 2단계와 3단계의 중복되는

항목이 있을 때는 어떻게 해야 할까요? //item//title하면 해결이 됩니다.

Ex) =FILTERXML($B$1,"//lng")

=FILTERXML($B$1,"//title")

=FILTERXML($B$1,"//item//title")

 

다른 방법들도 많을 거라 생각되지만 제가 아는 방법들은 이거네요^^

 

아마 이 내용을 유심히 보신 분들은 여기서 하나 궁금하신 사항이 있을 거라 생각됩니다. xml파일에는 여러가지의 Item들을 가지고 있는데 두번째 세번째 아이템은 어떻게 가져오는지에 대해서요.. 이부분은 배열수식으로 해결하시면 됩니다.^^

**배열수식 사용법

  1. 셀들을 여러 개 선택한 후
  2. 함수를 입력
  3. 컨트롤 + 쉬프트 + 엔터