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确认公式,以便结果数组扩展到正确的大小。