Google Sheets统计Fantasy Football球员首尾排名及列最小值计算方法问询
问题1:统计每行最小值的列数量
假设你的5行数据范围是A1:5(可根据实际调整),使用以下公式即可完成统计:
=BYROW(A1:5, LAMBDA(row, COUNTIF(row, MIN(row))))
BYROW逐行遍历指定范围的每一行LAMBDA(row, ...)定义每行计算逻辑:先用MIN(row)获取当前行最小值,再用COUNTIF(row, MIN(row))统计该行中等于该最小值的单元格数量
问题2:统计球员周排名第一/倒数第一的次数
情况1:基于得分数值排名(无需依赖单元格颜色)
假设球员名单在A列,38周得分数据范围是B2:AK[最后一行行号](B到AK对应38个比赛周):
统计某球员(如A2单元格)周得分排名第一的次数:
=COUNTIF(ARRAYFORMULA(RANK(B2:AK2, B$2:AK$100, 0)), 1)其中
0表示降序排名,1对应最高分的排名位置,B$2:AK$100替换为你实际的所有球员得分范围。统计该球员周得分倒数第一的次数:
=COUNTIF(ARRAYFORMULA(RANK(B2:AK2, B$2:AK$100, 1)), 1)这里
1表示升序排名,1对应最低分的排名位置;也可以用降序模式下等于总球员数的方式,比如COUNTIF(ARRAYFORMULA(RANK(B2:AK2, B$2:AK$100, 0)), COUNTA(A$2:A$100))。
情况2:基于单元格标记颜色(绿色=第一,红色=倒数第一)
Google Sheets原生函数无法直接读取单元格颜色,需要创建自定义函数:
- 打开Google Sheets,点击「扩展程序」→「Apps脚本」
- 删除默认代码,粘贴以下脚本并保存:
function COUNTCOLOR(range, colorCell) { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const bgColors = sheet.getRange(range).getBackgrounds(); const targetColor = sheet.getRange(colorCell).getBackground(); let count = 0; bgColors.forEach(row => { row.forEach(cellColor => { if (cellColor === targetColor) count++; }); }); return count; }
- 返回表格,使用函数统计:
- 统计绿色标记次数:
=COUNTCOLOR(B2:AK2, "C1")(将C1替换为你表格中绿色标记的单元格) - 统计红色标记次数:
=COUNTCOLOR(B2:AK2, "D1")(将D1替换为红色标记的单元格)
- 统计绿色标记次数:
是否需要Query函数?
这两个需求都不需要依赖Query函数,用上述原生函数组合(BYROW/COUNTIF/RANK)或自定义函数即可实现。Query函数虽然也能完成排名统计,但写法更复杂,不是最优选择。
内容的提问来源于stack exchange,提问作者Jason Brown
相关产品推荐
相关产品推荐

