2014-10-21 4 views
2

Excel 2013의 새로운 webservice()filterxml()을 사용하면 웹 브라우저에서 xml을 열었을 때와 다른 결과를 얻는 것으로 보입니다. 특히 저는 에너지 부서의 API에 액세스하는 데 Excel을 사용하려고합니다. pubilc 액세스 키를 가진 주소 : 나는 위의 주소를 액세스하기 위해 웹 브라우저를 사용하는 경우Excel 2013 FILTERXML()이 잘못된 값을 반환합니까?

http://api.eia.gov/series/?api_key=449E5B5A53EBB9601A80681EBFFBB91E&series_id=PET.MTTUA_NUS_1.M&num=150&out=xml

에서, 12 월 13 값이 9931로 표시됩니다 :

... 
<row> 
    <date>201312</date> 
    <value>9931</value> 
... 

나는이 알고 올바른 값이되어야합니다.

그러나 새로운 엑셀 공식을 통해이 값에 액세스하려고하면 이상한 결과가 나타납니다 ... 대부분의 달은 정확하지만 일부는 잘못되었습니다 ... 예를 들어 Dec-13은 2,933,263의 값을 반환합니다. . 왜 그런지 모르겠다. 나는이 번호가 어디에서 오는지 알 수 없다.

것은 I 위 주소 WEBSERVICE() 사용하고 두 개의 나란히 배열 날짜 중 하나의 값은 다른 생성하는 FILTERXML() 사용하려고 한 다음 날짜

, K1은 인

=FILTERXML(K$1,"//date") 

및 값 반환 : 화학식와 WEBSERVICE()의 위치 배열로 확인

=FILTERXML(K$1,"/eia_api/series/row/data/row/value") 

를 I t ried 많은 다른 조합도,하지만 난 XPATH에 새로운 슈퍼와 분명히 뭔가를 놓쳤습니다.

FILTERXML()은 웹 브라우저를 통해 XML에 액세스 할 때 볼 수있는 (올바른!) 데이터를 Excel에서 완벽하게 복제하는 기능을 제공합니까?

감사합니다.

답변

0

저는 Excel 2013을 가지고 있지 않지만 xpath에 익숙합니다.

두 개가 아닌 두 개 이상의 값 쌍을 반환하기 위해 하나의 xpath 만 고려 했습니까? 예

: //data/row 또는

//data/row//text()거나 같은 (단, 엑셀 XPath를 2.0을 사용) //data/row//string-join(text(),';')

결과 배열의 사이즈를 해결하기위한 확장되도록 Ctrl-shift-enter을 이용하여 수식을 확인하는 기억 하는가.

+0

감사합니다. 나는 가치 쌍이 반환되는 것을 꺼려했다. 그러나 두 가지 제안은 단지 #VALUE! 나는 그것을 배열이나 무언가로 적절하게 다루지 않을지 궁금하다. – jack

+0

감사합니다. 위의 Xpath 2.0 제안을 시도했지만 여전히 # VALUE! 그리고 예, 배열로 확인했지만 여전히 행운은 없습니다. 잠깐 시간을내어 잊어 버리면,이 xml을 사용하면 모든 "값"의 벡터를 반환하기 위해 Xpath를 사용할 수 있습니까? 잘못 지정된 또는 내게 "가치"이외의 것을 반환하는 내 접근법 (원래 게시물에서)에 대한 무언가가 있습니까? 감사. – jack

+0

필자는'// data/row/value'와'// data/row/date' 또는 선택적 text() :'// data/row/value/text()'와'// data/row/date/text()' – user3616725

관련 문제