无需使用VBA,根据输入时间匹配Excel对应col1值的方法
Excel无VBA实现时间区间匹配获取对应col1值
你的数据示例如下:
| col1 | col2 | col3 |
|---|---|---|
| 1 | 9:25 | 9:30 |
| 2 | 9:30 | 9:35 |
| 3 | 9:35 | 9:40 |
| 4 | 9:40 | 9:45 |
| 5 | 9:45 | 9:50 |
以下是两种无需VBA的公式实现方案,假设输入时间的单元格为E1,数据区域为A2:C6(表头在A1:C1):
方案1:使用LOOKUP函数
公式:
=LOOKUP(2,1/($B$2:$B$6<=E1)/($C$2:$C$6>E1),$A$2:$A$6)
逻辑说明:
$B$2:$B$6<=E1判断输入时间是否大于等于当前行的col2值,$C$2:$C$6>E1判断输入时间是否小于当前行的col3值- 两个条件相除后,满足区间条件的行会返回
1,不满足的返回错误值 LOOKUP会忽略错误值,定位到唯一的1对应的行,返回该行的col1值
方案2:使用INDEX+MATCH组合(适用于col2升序排列的场景)
公式:
=INDEX($A$2:$A$6,MATCH(TRUE,$B$2:$B$6<=E1,1))
逻辑说明:
MATCH(TRUE,$B$2:$B$6<=E1,1)会找到最后一个小于等于输入时间的col2值所在的行号(因为col2是升序排列,这个行对应的区间就是输入时间所在的区间)INDEX根据这个行号,返回对应位置的col1值
注意事项
- 确保输入时间的单元格
E1是时间格式,而非文本格式,否则公式无法正确识别 - 公式中的绝对引用(
$符号)用于固定数据区域,方便将公式复制到其他单元格使用
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

