You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel调用BGG XML API遇问题:MAX函数报错及数值显示异常求助

解决Excel调用BGG XML API的两个问题

嘿,我来帮你搞定这两个困扰你的问题!咱们一个个来:

1. 用MAX函数找出投票数最多的语言依赖选项

你之前的公式只能获取单个选项的投票数,要找到票数最高的选项,得先把所有投票数和对应的选项文本都提取出来,再匹配最大值对应的选项。这里给你两种方案:

方案一:用XLOOKUP(Excel 365/2021及以上版本)

直接用XLOOKUP匹配最大值对应的选项文本:

=XLOOKUP(
  MAX(FILTERXML(WEBSERVICE("https://www.boardgamegeek.com/xmlapi2/thing?id=230802&stats=1"),"//item/poll[@name='language_dependence']/results/result/@numvotes")),
  FILTERXML(WEBSERVICE("https://www.boardgamegeek.com/xmlapi2/thing?id=230802&stats=1"),"//item/poll[@name='language_dependence']/results/result/@numvotes"),
  FILTERXML(WEBSERVICE("https://www.boardgamegeek.com/xmlapi2/thing?id=230802&stats=1"),"//item/poll[@name='language_dependence']/results/result/@value")
)

如果觉得重复调用WEBSERVICE太麻烦,可以先把API返回的XML存到一个单元格(比如A1),用=WEBSERVICE("https://www.boardgamegeek.com/xmlapi2/thing?id=230802&stats=1"),然后公式里引用A1:

=XLOOKUP(
  MAX(FILTERXML(A1,"//item/poll[@name='language_dependence']/results/result/@numvotes")),
  FILTERXML(A1,"//item/poll[@name='language_dependence']/results/result/@numvotes"),
  FILTERXML(A1,"//item/poll[@name='language_dependence']/results/result/@value")
)

方案二:用INDEX+MATCH(兼容旧版Excel)

如果你的Excel版本不支持XLOOKUP,就用INDEX和MATCH组合:

=INDEX(
  FILTERXML(A1,"//item/poll[@name='language_dependence']/results/result/@value"),
  MATCH(MAX(FILTERXML(A1,"//item/poll[@name='language_dependence']/results/result/@numvotes")),FILTERXML(A1,"//item/poll[@name='language_dependence']/results/result/@numvotes"),0)
)

注意:旧版Excel需要按Ctrl+Shift+Enter作为数组公式输入,新版Excel会自动处理数组溢出。

2. 带小数的数值显示为整数的问题

这个问题是因为FILTERXML返回的是文本格式的数值,Excel有时候不会自动识别成小数,咱们只需要强制转换为数值格式就行:

方法一:用VALUE函数转换

=VALUE(FILTERXML(WEBSERVICE("https://www.boardgamegeek.com/xmlapi2/thing?id=230802&stats=1"),"//item/statistics/ratings/averageweight/@value"))

方法二:用算术运算强制转换

更简单的方式是给返回值乘1或者加0,自动触发数值转换:

=FILTERXML(WEBSERVICE("https://www.boardgamegeek.com/xmlapi2/thing?id=230802&stats=1"),"//item/statistics/ratings/averageweight/@value")*1

转换后,Excel就能正确显示小数了,比如你说的averageweight会显示成类似2.67这样的数值。

内容的提问来源于stack exchange,提问作者David Owen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 09:01:07