基于30分钟时间差的Index Match公式实现两表合并
用INDEX+MATCH合并表格(30分钟内时间匹配)
原始表格1
| Datetime | Name |
|---|---|
| 09/04/2023 11:25:00 | |
| 09/05/2023 11:20:00 | |
| 09/06/2023 11:30:00 | |
| 09/07/2023 11:30:00 | |
| 09/08/2023 1:30:00 | |
| 09/09/2023 12:00:00 | |
| 09/10/2023 8:58:00 |
原始表格2
| Datetime | Name |
|---|---|
| 09/05/2023 10:55:00 | karim |
| 09/07/2023 10:30:00 | karim |
| 09/06/2023 11:35:00 | rahim |
| 09/07/2023 10:30:00 | rarim |
| 09/04/2023 11:25:00 | alex |
需求
使用INDEX+MATCH公式合并两个表格,匹配规则为:两个表格Datetime列的时间差在30分钟以内,将表格2的Name对应填充到表格1的Name列,无匹配项时显示"not present"。
预期合并结果
| Datetime | Name |
|---|---|
| 09/04/2023 11:25:00 | alex |
| 09/05/2023 11:20:00 | karim |
| 09/06/2023 11:30:00 | Rahim |
| 09/07/2023 11:30:00 | not present |
| 09/08/2023 1:30:00 | not present |
| 09/09/2023 12:00:00 | not present |
| 09/10/2023 8:58:00 | not present |
公式解决方案
假设表格1的Datetime数据在A2:A8,表格2的Datetime在D2:D6、Name在E2:E6,在表格1的B2单元格输入以下公式:
=IFERROR(INDEX($E$2:$E$6,MATCH(TRUE,ABS($A2-$D$2:$D$6)<=TIME(0,30,0),0)),"not present")
公式说明
ABS($A2-$D$2:$D$6)<=TIME(0,30,0):计算当前行时间与表格2所有时间的差值绝对值,判断是否≤30分钟MATCH(TRUE,...0):定位第一个满足时间差条件的记录位置INDEX($E$2:$E$6,...):返回对应位置的Name值IFERROR(..., "not present"):无匹配结果时显示指定文本
注意:Excel 2019及更早版本需按
Ctrl+Shift+Enter作为数组公式执行;Excel 365/2021及以后版本直接回车即可生效。
内容的提问来源于stack exchange,提问作者Aninda
相关产品推荐
相关产品推荐

