Excel:如何编写公式提取各玩家对应已填日期的Latest Date?
Excel提取玩家最近填写日期的公式实现
假设原表(示例名为Sheet1)结构:
- A列:纵向排列的日期
- 第1行:横向排列的玩家姓名
- 数据区域:对应玩家在对应日期的填写内容(非空即代表该日期有填写记录)
目标表结构:
- A列:纵向排列的玩家姓名
- B列:「Latest Date」列,需提取对应玩家的最近填写日期
公式写法分两种场景:
1. Excel 365/2021及以上版本(支持动态数组)
在目标表B2单元格(对应A2的玩家姓名)输入以下公式,回车后可自动向下填充:
=MAX(FILTER(Sheet1!$A:$A,Sheet1!$1:$1=A2,Sheet1!$2:$1000<>"",""))
- 逻辑:用
FILTER筛选出原表中对应玩家列下非空单元格的日期,再用MAX取最大值(即最近日期) - 若玩家无任何填写记录,公式返回空值
2. 旧版Excel(不支持动态数组)
在目标表B2单元格输入以下公式,输入完成后按Ctrl+Shift+Enter触发数组计算,再手动向下填充:
=MAX(IF(Sheet1!$B$1:$Z$1=A2,IF(Sheet1!$B$2:$Z$1000<>"",Sheet1!$A$2:$A$1000,"")))
- 逻辑:先匹配玩家姓名对应的列,再筛选该列中非空的单元格,最后取对应日期的最大值
- 需根据实际数据范围调整
$B$1:$Z$1(玩家姓名行)、$B$2:$Z$1000(数据区域)、$A$2:$A$1000(日期区域)的边界
额外优化
如果需要对无填写记录的玩家显示指定文本,可嵌套IFERROR:
=IFERROR(MAX(FILTER(Sheet1!$A:$A,Sheet1!$1:$1=A2,Sheet1!$2:$1000<>"","")),"无填写记录")
内容的提问来源于stack exchange,提问作者tommyhmt
相关产品推荐
相关产品推荐

