Excel 2013 FILTERXML()返回错误的值?
当我使用Excel 2013的新webservice()
和filterxml()
,似乎我得到了不同的结果,如果我只是在Web浏览器中打开xml。 具体来说,我试图使用Excel从能源部门访问API。 公共访问密钥的地址是:
http://api.eia.gov/series/?api_key=449E5B5A53EBB9601A80681EBFFBB91E&series_id=PET.MTTUA_NUS_1.M&num=150&out=xml
当我使用Web浏览器访问上述地址时,Dec-13的值显示为9931:
... <row> <date>201312</date> <value>9931</value> ...
我知道这是正确的价值。
然而,当我尝试通过新的excel公式访问这个时,我得到一个奇怪的结果…大多数月份是正确的,但有些是错误的…例如,12月13日,返回值为2,933,263。 不知道为什么 – 我不知道这个数字来自哪里。
我用上面的地址使用了WEBSERVICE()
,然后尝试使用FILTERXML()
生成两个并排数组,一个date和另一个值:
对于date,其中K1是WEBSERVICE()
的位置,并将公式确认为数组:
=FILTERXML(K$1,"//date")
并返回值:
=FILTERXML(K$1,"/eia_api/series/row/data/row/value")
我也尝试了很多其他的组合,但是我对XPATH超级新,显然错过了一些东西。
有人可以帮我用FILTERXML()
函数完美地复制Excel中的正确数据,当我通过Web浏览器访问XML时,可以看到这些数据吗?
谢谢!
我没有2013年,但熟悉Xpath。
你只考虑过一个xpath,返回值对,而不是两个?
例如: //data/row
或//data/row//text()
或者(提供excell使用Xpath 2.0)如下所示: //data/row//string-join(text(),';')
请记住使用Ctrl-shift-enter
确认公式,以便结果数组扩展到正确的大小。