自从我们购买了Google Map API Distance Matrix Advanced之后,我们尝试在Excel 2013中使用XML形式的Web服务公式,这将使我们能够发出多个请求,以检索不同起点到不同目的地之间的行驶里程值,并且另外,相关的驾驶时间。
例如,以下是直接在excel单元格中使用的公式:
=SERVICEWEB("https://maps.googleapis.com/maps/api/distancematrix/xml?origins=46.25361111,5.21666667&destinations=46.2125,5.32444444&mode=driving&key=my_key")
然后,由于该单元格应该检索XML格式,因此我在另一个单元格中使用另一个公式来检查并检索所需的值:
=SIERREUR(FILTRE.XML(G2;"/DistanceMatrixResponse/row/element/distance/text");"0")
尽管如此,当我输入第一个公式时,它似乎返回值错误:#VALEUR!
但是,如果我在IE或Chrome页面中键入网址,则可以正常运行,我会得到相关的响应:
<DistanceMatrixResponse>
<status>OK</status>
<origin_address>
47 Rue des Anciens Combattants, 01440 Viriat, France
</origin_address>
<destination_address>175 Rue Charles Robin, 01250 Jasseron, France
</destination_address>
<row>
<element>
<status>OK</status>
<duration>
<value>773</value>
<text>13 minutes</text>
</duration>
<distance>
<value>11478</value>
<text>11,5 km</text>
</distance>
</element>
</row>
</DistanceMatrixResponse>
因此,看着它,它应该可以在EXCEL中正常工作,而不是#VALUE!的错误! 而且我在公式中也看不到任何错误。
所以,我不明白为什么Excel会生成错误而一切似乎正确的原因。 然后,您可以通过更改公式或通过某些VBA代码来帮助我们解决此问题吗?