如何优化公式计算多项目运动员多位置训练数据的平均值?
解决方案:计算运动员多位置训练数据平均值
针对你需要覆盖position1至position10所有位置列,计算指定运动员某项训练数据平均值的需求,以下分Excel版本给出优化公式:
Excel 365/2021(支持动态数组)
使用AVERAGE+FILTER+MATCH组合,通过通配符匹配所有位置列:
=AVERAGE(FILTER(INDEX('Data sheet'!A:Z,,MATCH("position*",Headers,0)),'Data sheet'!A:A=AthleteName))
公式说明:
MATCH("position*",Headers,0):用通配符*匹配所有以position开头的表头,返回这些列的列号数组INDEX('Data sheet'!A:Z,,...):提取数据表中所有位置列的完整数据区域FILTER(...):筛选出目标运动员(A列等于AthleteName)的所有位置数据AVERAGE(...):计算筛选后所有数据的平均值
旧版Excel(不支持动态数组)
使用SUMPRODUCT实现多条件求和与计数,最终计算平均值:
=SUMPRODUCT((ISNUMBER(SEARCH("position",Headers)))*('Data sheet'!A:A=AthleteName)*'Data sheet'!A:Z)/SUMPRODUCT((ISNUMBER(SEARCH("position",Headers)))*('Data sheet'!A:A=AthleteName)*ISNUMBER('Data sheet'!A:Z))
公式说明:
- 分子:遍历所有列,仅统计列名含
position且属于目标运动员的数值总和 - 分母:统计上述符合条件的非空数值个数(避免空值干扰平均值计算)
注意事项
- 将公式中的
AthleteName替换为实际的运动员名称单元格引用(如B2) Headers需准确引用数据表的首行表头区域(如'Data sheet'!1:1)- 调整
'Data sheet'!A:Z为你实际的数据列范围,确保覆盖所有训练数据列
内容的提问来源于stack exchange,提问作者DDYC
相关产品推荐
相关产品推荐

