arrays - Excel - 返回数组中右三个值的平均值
问题描述
如果我在 excel 中有一个范围,比如 A2:I2,用于存储每月比赛的结果,我在 excel 中使用什么公式来返回三个最正确值的平均值?该公式需要考虑并非所有列都被填充,即一名玩家可能有 5 个结果,一个可能有 9 个结果,一个可能有 1 个。
谢谢
解决方案
您可以组合使用TEXTJOIN()
和FILTERXML()
如下所示。
=AVERAGE(FILTERXML("<t><s>"&TEXTJOIN("</s><s>",TRUE,B2:J2)&"</s></t>","//s[position()>" & COUNTA(B2:J2)-3 &"]"))
- 这里
"<t><s>"&TEXTJOIN("</s><s>",TRUE,B2:J2)&"</s></t>"
将构造一个有效的XML
字符串。 XPATH
参数"//s[position()>" & COUNTA(B2:J2)-3 &"]"
将返回最后 3 个节点以Average
按AVERAGE()
函数计算。COUNTA(B2:J2)-3
将检测在最后 3 个节点之前有多少个节点,以便我们可以返回其余节点,这意味着通过FILTERXML()
公式总是最后 3 个节点。
FILTERXML()
JvdV的更多信息使用 FILTERXML 从字符串中提取子字符串
编辑:对于谷歌表,您可以使用以下公式。
=AVERAGE(FILTER(B2:J2,(COLUMN(B2:J2)-Column(A2))>IF(COUNTA(B2:J2)<=3,0,COUNTA(B2:J2)-3)))
推荐阅读
- firebase - 如何在 Firebase 上托管的网站中使用 Google 自定义搜索?
- java - 如何通过共享点池限制 JavaFX 中的多个微调器
- r - 在R中用小数转换所有%
- javascript - 验证谷歌recapcha客户端javascript
- python - 如何使用 python 脚本执行多个 spark-submit 命令
- r - 在 R 中均匀间隔地采样随机行
- reactjs - 在 React 中向窗口添加事件侦听器的正确方法是什么?
- c - 为什么在打印语法之前终止 For 循环后显示“Hello”需要更长的时间?
- android - FirebaseRecyclerOptions 与微调器 onItemSelected 查询问题
- c# - 责任链和泛型