Excel中基于季度定位起止日期并判断指定日期是否在区间内
嘿,这个需求很常见,我来给你一步步拆解怎么写这个Excel公式!
解决方案:匹配指定季度并判断日期是否在区间内
首先,我们的核心目标是先定位B9指定季度对应的起始/结束日期行,再判断H6的日期是否落在这个区间里。下面分两种场景给出公式:
场景1:仅匹配季度(财年固定)
如果你的表格里财年(A列)都是同一个值(比如示例里的2019),直接用INDEX+MATCH组合就能搞定,公式如下:
=AND(H6>=INDEX(C:C,MATCH(B9,B:B,0)),H6<=INDEX(D:D,MATCH(B9,B:B,0)))
公式怎么工作的?
MATCH(B9,B:B,0):在B列(季度列)精准找到和B9完全匹配的单元格,返回它的行号(比如B9是Q1,就会返回行号2)。INDEX(C:C,行号):根据拿到的行号,从C列(Start date)取出对应的起始日期。INDEX(D:D,行号):同理,从D列(End Date)取出对应的结束日期。AND(...):只有当H6同时满足「≥起始日期」和「≤结束日期」时,返回TRUE,否则返回FALSE。
场景2:同时匹配财年+季度(多财年表格)
如果你的表格有多个财年数据,需要同时匹配A列的财年和B列的季度(比如B9是Q1,但要对应A列的2019),就用数组匹配的方式:
=AND(H6>=INDEX(C:C,MATCH(1,(A:A=A9)*(B:B=B9),0)),H6<=INDEX(D:D,MATCH(1,(A:A=A9)*(B:B=B9),0)))
小提示:Excel 2019及更早版本输入这个公式后,要按
Ctrl+Shift+Enter触发数组计算;Excel 365/2021及以后版本直接回车就行。
进阶公式拆解
(A:A=A9)*(B:B=B9):这是数组逻辑判断,当A列等于A9的财年且B列等于B9的季度时,返回1,其他情况返回0。MATCH(1,数组,0):找到第一个返回1的位置,也就是同时匹配财年和季度的目标行号,后面的INDEX用法和场景1一致。
可选:返回自定义提示文本
如果不想返回生硬的TRUE/FALSE,而是要更友好的提示,用IF函数包裹一下就行:
=IF(AND(H6>=INDEX(C:C,MATCH(B9,B:B,0)),H6<=INDEX(D:D,MATCH(B9,B:B,0))),"日期在该季度区间内","日期不在该季度区间内")
内容的提问来源于stack exchange,提问作者Anu A
相关产品推荐
相关产品推荐

