如何在Google Sheets QUERY函数中显示最新日期对应的积分列值
获取每个玩家最新日期对应积分的QUERY方案
针对你的需求,这里提供两种无需对积分列做聚合的实现方法:
方法一:嵌套QUERY匹配最新日期
通过内层QUERY先提取每个玩家的最新日期,再在外层筛选对应日期的记录,直接获取该日期的积分:
=QUERY(AF2:AI13, "select AH, AI where AG matches '"&TEXTJOIN("|", TRUE, QUERY(AF2:AI13, "select max(AG) group by AH"))&"'", 0)
- 内层
QUERY(AF2:AI13, "select max(AG) group by AH"):按玩家(AH列)分组,提取每个玩家的最新日期 TEXTJOIN("|", TRUE, ...):将多个最新日期拼接成正则匹配格式,用于外层筛选- 外层QUERY:筛选出日期(AG列)等于对应玩家最新日期的行,直接返回玩家和对应的积分
方法二:排序后去重
先按日期降序排序,让每个玩家的最新记录排在最前面,再用UNIQUE保留每个玩家的第一条记录:
=UNIQUE(SORT(AF2:AI13, AG2:AG13, FALSE))
SORT(AF2:AI13, AG2:AG13, FALSE):按日期列(AG)从新到旧排序UNIQUE:自动保留每个玩家的第一条记录,也就是最新日期对应的积分
原公式的问题在于,你用max(AG)聚合日期后,积分列必须做聚合运算(比如max、min),这样得到的是玩家的最大积分而非最新日期的积分,不符合你的需求。
内容的提问来源于stack exchange,提问作者Jan Zavadil
相关产品推荐
相关产品推荐

