如何在Excel中用IF函数配合CORREL筛选特定时段计算相关性
解决方法
这里提供两种适配不同Excel版本的实现方式,直接套用即可:
方法1:兼容所有Excel版本(数组公式)
使用CORREL结合IF和HOUR函数,通过逻辑乘号*实现多条件筛选:
=CORREL(IF((HOUR(A2:A7125)>=10)*(HOUR(A2:A7125)<=17), C2:C7125), IF((HOUR(A2:A7125)>=10)*(HOUR(A2:A7125)<=17), D2:D7125))
- 输入公式后,需按 Ctrl+Shift+Enter 完成数组公式的确认(新版Excel可能自动识别,但按组合键兼容性更好)
- 逻辑:
(HOUR(A2:A7125)>=10)*(HOUR(A2:A7125)<=17)会生成由TRUE/FALSE组成的数组,只有同时满足10-17点的行才会保留对应C、D列的值,CORREL会自动忽略FALSE值计算有效数据的相关性
方法2:新版Excel专属(动态数组公式)
用FILTER函数直接筛选符合条件的数据,公式更直观易读:
=CORREL(FILTER(C2:C7125, (HOUR(A2:A7125)>=10)*(HOUR(A2:A7125)<=17)), FILTER(D2:D7125, (HOUR(A2:A7125)>=10)*(HOUR(A2:A7125)<=17)))
- 输入后直接回车即可,无需额外组合键
- 逻辑:
FILTER会精准提取A列时段在10-17点的C、D列数据,再传入CORREL计算相关性
注意事项
- 确认A列是标准日期时间格式,而非文本格式:可通过
ISNUMBER(A2)验证,若返回FALSE,需先将文本转换为日期时间(比如用DATEVALUE+TIMEVALUE组合,或直接用数据分列功能) - 若需排除17:00整的记录,将公式中的
<=17改为<17即可
内容的提问来源于stack exchange,提问作者Lily
相关产品推荐
相关产品推荐

