如何在Excel中引用过去30天同一时点数据并计算平均值对比?
解决方法
假设你的数据结构是:
- A列:带完整日期的时间(比如
2024/05/19 05:45:00,如果当前显示只有时间,可右键单元格→设置单元格格式→选「日期时间」查看完整内容) - B列:对应数值
1. 获取今日05:45:00的数值
用XLOOKUP函数直接匹配(Excel 365/2021支持,旧版用VLOOKUP):
=XLOOKUP(TODAY() + TIME(5,45,0), A:A, B:B)
TODAY()自动获取当前日期,TIME(5,45,0)生成05:45:00的时间,两者相加就是今日该时点的完整日期时间- 旧版Excel改用
VLOOKUP:
=VLOOKUP(TODAY() + TIME(5,45,0), A:B, 2, FALSE)
2. 计算过去30天内同一时点的平均值
用AVERAGEIFS函数,同时匹配日期范围和时间点:
=AVERAGEIFS(B:B, A:A, ">="&TODAY()-30, A:A, "<"&TODAY(), MOD(A:A,1)=TIME(5,45,0))
TODAY()-30:获取30天前的日期,限定统计范围为过去30天(不含今日)MOD(A:A,1):提取日期时间中的纯时间部分(Excel里日期是整数,时间是0-1的小数)TIME(5,45,0):指定要匹配的05:45:00时间点
如果你的Time列只有时间,另有单独日期列(比如C列是日期)
- 今日数值公式:
=INDEX(B:B, MATCH(1, (C:C=TODAY())*(A:A=TIME(5,45,0)), 0))
(Excel 365直接回车,旧版需按Ctrl+Shift+Enter作为数组公式输入)
- 过去30天平均值公式:
=AVERAGEIFS(B:B, C:C, ">="&TODAY()-30, C:C, "<"&TODAY(), A:A, TIME(5,45,0))
内容的提问来源于stack exchange,提问作者Rajsha
相关产品推荐
相关产品推荐

