Excel中如何查找指定值并返回其下方1行或多行对应内容?
Excel公式实现:按日期+时段返回对应单元格内容
需求说明
需通过公式识别TODAY()对应的日期,根据当前时间是上午/下午,返回该日期所在列下方1行或2行的值。例如当前日期为26-08且时间为下午1点时,需从以下表格返回Eee:
| 25-08-2022 | 26-08-2022 | 27-08-2022 |
|---|---|---|
| Aaa | Bbb | Ccc |
| Ddd | Eee | Fff |
| 28-08-2022 | 29-08-2022 | 30-08-2022 |
| Ggg | Hhh | Iii |
| Jjj | Kkk | Lll |
解决方案公式
假设数据区域为A1:C6,使用以下公式(新版Excel直接回车即可,旧版需按Ctrl+Shift+Enter作为数组公式执行):
=INDEX($A$1:$C$6, MAX(IF($A$1:$C$6=TODAY(), ROW($A$1:$C$6), 0)) + IF(HOUR(NOW())<12, 1, 2), MAX(IF($A$1:$C$6=TODAY(), COLUMN($A$1:$C$6), 0)))
公式拆解
MAX(IF($A$1:$C$6=TODAY(), ROW($A$1:$C$6), 0)):遍历数据区域,定位到今日日期所在的行号MAX(IF($A$1:$C$6=TODAY(), COLUMN($A$1:$C$6), 0)):定位到今日日期所在的列号IF(HOUR(NOW())<12, 1, 2):判断当前时段,上午(12点前)返回日期行下方1行,下午返回下方2行INDEX($A$1:$C$6, 行号, 列号):根据定位的行、列提取目标值
注意事项
若公式匹配失败,大概率是日期格式不兼容:如果表格中的日期是文本格式,需将公式中的TODAY()替换为DATEVALUE(TEXT(TODAY(),"dd-mm-yyyy")),统一格式后即可正常匹配。
内容的提问来源于stack exchange,提问作者Anonyzero
相关产品推荐
相关产品推荐

