Google Sheets ImportXML XPath - 总和与平均值
Google Sheets ImportXML XPath - sum vs avg
GoogleSheets/ImportXML/XPath 编码大师,
快速提问...两个 ImportXML 语句,唯一的区别是 XPath 聚合函数:sum 有效,avg 无效。
=ImportXML("http://api.eve-marketdata.com/api/item_orders2.xml?char_name=Demo&buysell=b&type_ids=17464&station_ids=60003760","sum(/emd/result/rowset/row[not(preceding-sibling::row/@price > @price or following-sibling::row/@price > @price)]/@volremaining)")
=ImportXML("http://api.eve-marketdata.com/api/item_orders2.xml?char_name=Demo&buysell=b&type_ids=17464&station_ids=60003760","avg(/emd/result/rowset/row[not(preceding-sibling::row/@price > @price or following-sibling::row/@price > @price)]/@volremaining)")
注意:对于公式中的页面,目标是找到具有最高@price 的行...然后获取 quantity/volremaining 和价格。但是,当最高价有多行时,我需要对 sum(@volremaining) 和 avg(@price) 进行求和,因为我只想返回一行。我可以使用 [1] 偏移量来获取此值...
=ImportXML("http://api.eve-marketdata.com/api/item_orders2.xml?char_name=Demo&buysell=b&type_ids=17464&station_ids=60003760","/emd/result/rowset/row[not(preceding-sibling::row/@price > @price or following-sibling::row/@price > @price)][1]/@volremaining")
...但是使 min()/max()/avg() 起作用的练习失败了。
除了 W3C XPath Site 显示带有双括号 ((arg1,arg2,arg3)) 的 fn:avg,而 fn:sum 是单括号 (arg1,arg2,arg3).
非常感谢您的协助。
此致,
G A
Google Sheet 的 IMPORTXML()
函数异常错误,但在这种情况下原因不同。
IMPORTXML()
只支持 XPath 1.0 函数,不支持 XPath 2.0 函数。 sum()
是 XPath 1.0 函数,而 avg()
、min()
和 max()
是不能在 Google Sheet 中使用的 XPath 2.0 函数。
见relevant part of the XPath 1.0 specification - as you can see, avg()
is not listed as a number function. It is only listed as a member of the XPath 2.0 and XQuery aggregate functions。顺便说一句,w3schools 与 W3C 无关——您永远不应该相信来自 w3schools 的内容。
综上所述,avg()
在 XPath 表达式中不可用 - 只需检索所有值并使用 Google Sheets function instead to calculate an average.
GoogleSheets/ImportXML/XPath 编码大师,
快速提问...两个 ImportXML 语句,唯一的区别是 XPath 聚合函数:sum 有效,avg 无效。
=ImportXML("http://api.eve-marketdata.com/api/item_orders2.xml?char_name=Demo&buysell=b&type_ids=17464&station_ids=60003760","sum(/emd/result/rowset/row[not(preceding-sibling::row/@price > @price or following-sibling::row/@price > @price)]/@volremaining)")
=ImportXML("http://api.eve-marketdata.com/api/item_orders2.xml?char_name=Demo&buysell=b&type_ids=17464&station_ids=60003760","avg(/emd/result/rowset/row[not(preceding-sibling::row/@price > @price or following-sibling::row/@price > @price)]/@volremaining)")
注意:对于公式中的页面,目标是找到具有最高@price 的行...然后获取 quantity/volremaining 和价格。但是,当最高价有多行时,我需要对 sum(@volremaining) 和 avg(@price) 进行求和,因为我只想返回一行。我可以使用 [1] 偏移量来获取此值...
=ImportXML("http://api.eve-marketdata.com/api/item_orders2.xml?char_name=Demo&buysell=b&type_ids=17464&station_ids=60003760","/emd/result/rowset/row[not(preceding-sibling::row/@price > @price or following-sibling::row/@price > @price)][1]/@volremaining")
...但是使 min()/max()/avg() 起作用的练习失败了。
除了 W3C XPath Site 显示带有双括号 ((arg1,arg2,arg3)) 的 fn:avg,而 fn:sum 是单括号 (arg1,arg2,arg3).
非常感谢您的协助。
此致,
G A
Google Sheet 的 IMPORTXML()
函数异常错误,但在这种情况下原因不同。
IMPORTXML()
只支持 XPath 1.0 函数,不支持 XPath 2.0 函数。 sum()
是 XPath 1.0 函数,而 avg()
、min()
和 max()
是不能在 Google Sheet 中使用的 XPath 2.0 函数。
见relevant part of the XPath 1.0 specification - as you can see, avg()
is not listed as a number function. It is only listed as a member of the XPath 2.0 and XQuery aggregate functions。顺便说一句,w3schools 与 W3C 无关——您永远不应该相信来自 w3schools 的内容。
综上所述,avg()
在 XPath 表达式中不可用 - 只需检索所有值并使用 Google Sheets function instead to calculate an average.