Excel 公式,将日期映射到存储桶

Excel formula, Mapping dates to a bucket

我正在尝试将日期映射到数字

因此,如果日期介于 (photo2) A 列中的这些月份之间,则公式将在第 2 列中分配什么,并且这些数字之上的任何内容都将分配为“6”。

我正在尝试使用 Vlookup 但不确定如何使用,因为日期不准确。

我的'Data Mapping Table':

Mapping Dates Data
11/30/2021 1
12/31/2021 2
01/31/2022 2
02/28/2022 3
03/31/2022 3
04/30/2022 3
05/31/2022 4
06/30/2022 4
07/31/2022 4
08/31/2022 5
09/30/2022 5
10/31/2022 5

样本日期和寻求的输出:
|样本日期|数据| |--------|--------| |11/02/2021|1| |11/30/2021|1| |12/01/2021|2| |12/06/2021|2| |12/15/2021|2| |12/17/2021|2| |12/31/2021|2| |12/31/2021|2| |12/31/2021|2| |12/31/2021|2| |2022 年 1 月 11 日|2| |01/12/2022|2| |2022 年 1 月 13 日|2|

您走在正确的轨道上并且 VLOOKUP 和完全匹配。
您只需将样本日期转换为月末日期即可使匹配生效。
Excel 函数是 EOMONTH:

=VLOOKUP(EOMONTH(D2,0),$A:$B,2)

如果 table 是这样的话,上面的内容就是单元格 E2 的样子:

处理任何 'out of range'
的日期 以上涵盖了 样本日期 映射日期 .
范围内的所有情况 为了满足 'Out of Range' 条件,需要替代方法:

=IF(ISNUMBER(MATCH(EOMONTH(D2,0),$A:$A,0)),VLOOKUP(EOMONTH(D2,0),$A:$B,2),"Out of range")

如果 table 是这样的话,上面的内容就是单元格 E2 的样子:

上面首先使用 ISNUMBERMATCH(精确)测试月末日期是否存在于映射 table 日期中。
a)如果是这样:它与以前的方法相同(使用VLOOKUP
b) 如果不是:它return是字符串Out of range
您当然可以将 Out of range return 值更改为任何您喜欢的值。

处理特定日期'out of range'
最后:如果你只想将特定日期视为超出范围(根据你的 'greater than Oct 2026' 评论),这样做就可以了:

=IF(D2>DATEVALUE("31 Oct 2026"),8,VLOOKUP(EOMONTH(D2,0),$A:$B,2))

备注
a) 我正在使用日期格式 (dd mmm yyyy) 以避免系统本地日期格式引起的任何混淆或问题。
b) 您当然可以将 out of range return(当前 8)更改为您喜欢的任何内容。