Excel如何使用VLOOKUP实现日期到指定数值分桶的匹配计算
实现方案
你可以用VLOOKUP近似匹配+逻辑判断组合实现需求,具体操作如下:
前置要求
你的映射表第一列(映射日期)已经是升序排列,符合VLOOKUP近似匹配的使用条件。
公式示例
假设:
- 待匹配的日期存储在D2单元格
- 你的映射表数据区域为
A2:B13(A列为映射日期、B列为匹配数值,不含表头)
对应公式为:
=IF(D2>MAX($A$2:$A$13),6,VLOOKUP(D2,$A$2:$B$13,2,TRUE))
如果需要兼容小于映射表最小日期(2021/11/30)的日期,统一返回第一个匹配值1,可以增加容错处理:
=IF(D2>MAX($A$2:$A$13),6,IFERROR(VLOOKUP(D2,$A$2:$B$13,2,TRUE),$B$2))
参数说明
VLOOKUP第四参数设为TRUE:开启近似匹配,自动查找小于等于待匹配日期的最大映射日期,返回对应第二列的数值,完全符合你的区间匹配要求- 外层
IF判断:如果待匹配日期大于映射表所有日期,直接返回6
效果验证
和你给出的样例匹配结果完全一致:
| 样例日期 | 匹配数值 |
|---|---|
| 2021/11/02 | 1 |
| 2021/11/30 | 1 |
| 2021/12/01 | 2 |
| 2021/12/06 | 2 |
| 2021/12/15 | 2 |
| 2021/12/17 | 2 |
| 2021/12/31 | 2 |
| 2022/01/11 | 2 |
| 2022/01/12 | 2 |
| 2022/01/13 | 2 |
附完整映射表参考
| 映射日期 | 匹配数值 |
|---|---|
| 2021/11/30 | 1 |
| 2021/12/31 | 2 |
| 2022/01/31 | 2 |
| 2022/02/28 | 3 |
| 2022/03/31 | 3 |
| 2022/04/30 | 3 |
| 2022/05/31 | 4 |
| 2022/06/30 | 4 |
| 2022/07/31 | 4 |
| 2022/08/31 | 5 |
| 2022/09/30 | 5 |
| 2022/10/31 | 5 |
内容的提问来源于stack exchange,提问作者Jonnyboi
相关产品推荐
相关产品推荐

