如何在Excel中按日期匹配跨表插入数据并填充缺失值为"No Data"
问题描述
我有两张Excel表格:
- 每日获取的数据表:
| Date | Parameter A |
|---|---|
| 2022.12.05 08:00:00 | 3 |
| 2022.12.05 08:15:00 | 4 |
| 2022.12.05 08:45:00 | 7 |
- 静态时间表(包含每15分钟的时间节点):
| Date | Parameter A |
|---|---|
| 2022.12.05 08:00:00 | |
| 2022.12.05 08:15:00 | |
| 2022.12.05 08:30:00 | |
| 2022.12.05 08:45:00 |
数据表缺少2022.12.05 08:30的参数数据,需要将数据表中的数据按日期匹配插入到静态时间表中,无对应数据的时段填充"No Data",最终目标表格如下:
| Date | Parameter A |
|---|---|
| 2022.12.05 08:00:00 | 3 |
| 2022.12.05 08:15:00 | 4 |
| 2022.12.05 08:30:00 | No Data |
| 2022.12.05 08:45:00 | 7 |
尝试过VLOOKUP但未成功,求解决方案。
解决方案
假设:
- 静态时间表的日期列为
A2:A5,需要填充参数的列为B2:B5 - 数据表位于
Sheet2,日期列为A2:A4,参数列为B2:B4
方法1:IFERROR + VLOOKUP(兼容所有Excel版本)
在静态时间表的B2单元格输入公式,下拉填充至所有行:
=IFERROR(VLOOKUP(A2, Sheet2!$A$2:$B$4, 2, FALSE), "No Data")
VLOOKUP(A2, Sheet2!$A$2:$B$4, 2, FALSE):精确匹配当前日期对应的参数值IFERROR捕获匹配失败的错误,返回"No Data"
方法2:XLOOKUP(Excel 365/2021及以上版本)
如果你的Excel支持XLOOKUP,公式更简洁:
=XLOOKUP(A2, Sheet2!$A$2:$A$4, Sheet2!$B$2:$B$4, "No Data", 0)
XLOOKUP内置了未匹配时的返回值设置,无需额外嵌套错误处理函数。
方法3:INDEX + MATCH + IFERROR
若偏好INDEX+MATCH组合,可用以下公式:
=IFERROR(INDEX(Sheet2!$B$2:$B$4, MATCH(A2, Sheet2!$A$2:$A$4, 0)), "No Data")
MATCH(A2, Sheet2!$A$2:$A$4, 0):找到当前日期在数据表中的行号INDEX提取对应行的参数值,无匹配时返回"No Data"
内容的提问来源于stack exchange,提问作者Arnve
相关产品推荐
相关产品推荐

