如何按Agent ID判断日期是否为入职10周内并标记New Agent?
解决按Agent ID分组判断新顾问的Excel公式问题
原公式错误原因
MIN(A:A)取的是整个A列的最小日期,没有按Agent ID(F列)分组计算对应顾问的入职日期&UNIQUE(F:F)的逻辑完全错误,布尔值与数组拼接会导致类型不匹配,直接触发#VALUE!溢出错误
解决方案
适用于Excel 365/2021(支持动态数组)
直接输入公式后会自动溢出整列,无需下拉填充:
=IF(AND(A2:A>=MINIFS(A:A,F:F,F2:F),A2:A<=MINIFS(A:A,F:F,F2:F)+70),"New","No")
逻辑说明:
MINIFS(A:A,F:F,F2:F)会逐行匹配当前行的Agent ID,计算该顾问对应的最小日期(入职日)- 利用数组运算,判断每行的
Interval Start日期是否在入职日至入职日+70天(10周)范围内,返回对应标记
如果需要更清晰的变量定义,也可以用BYROW+LET写法:
=BYROW(A2:A, LAMBDA(row_date, LET( current_agent, INDEX(F:F, ROW(row_date)), agent_start_date, MINIFS(A:A, F:F, current_agent), IF(AND(row_date>=agent_start_date, row_date<=agent_start_date+70), "New", "No") ) ))
适用于旧版Excel(不支持动态数组)
在「New Agent」列的第一行(比如G2)输入公式,然后下拉填充至所有行:
=IF(AND(A2>=MINIFS(A:A,F:F,F2),A2<=MINIFS(A:A,F:F,F2)+70),"New","No")
逻辑说明:
MINIFS(A:A,F:F,F2)单独获取当前行Agent ID对应的入职日期- 通过
AND判断当前日期是否在要求的10周区间内,返回标记
额外调整说明
如果需要严格按自然周数判断(而非固定70天),可以改用WEEKNUM函数:
=IF(WEEKNUM(A2,2)-WEEKNUM(MINIFS(A:A,F:F,F2),2)<=9,"New","No")
(参数2代表以周一作为每周起始日,可根据需求调整为1周日起始)
内容的提问来源于stack exchange,提问作者sayth
相关产品推荐
相关产品推荐

