求G2单元格基于E2、F2的向下最近匹配状态公式
在Excel中基于Agent和时间条件查找最近匹配的状态
要在G2单元格实现需求,可根据你的Excel版本选择以下公式:
方案1:使用XLOOKUP(适用于Excel 365/2021及以上)
在G2输入公式:
=XLOOKUP(1,(A2:A13=E2)*(C2:C13<=F2),D2:D13,"",-1,1)
公式说明:
(A2:A13=E2):筛选出与E2中Agent匹配的行(C2:C13<=F2):筛选出时间不晚于F2指定时间的行- 第三个参数
D2:D13是要返回的状态列 - 第五个参数
-1表示查找小于等于查找值的最大匹配项,也就是指定时间点之前最近的记录 - 最终返回Agent 1在10:00:00之前的最近状态Working Offline,符合预期结果
方案2:使用INDEX+MATCH组合(兼容旧版Excel)
如果你的Excel不支持XLOOKUP,可使用以下数组公式(输入后按Ctrl+Shift+Enter确认,Excel 365则无需):
=INDEX(D2:D13,MATCH(MAX(IF((A2:A13=E2)*(C2:C13<=F2),C2:C13)),C2:C13,0))
公式说明:
IF((A2:A13=E2)*(C2:C13<=F2),C2:C13):提取符合Agent条件且时间不晚于指定时间的所有时间值MAX(...):找出这些时间中的最大值,即最近的时间点MATCH(...):找到该时间在C列中的位置INDEX(...):根据位置返回对应D列的状态
补充说明
如果你的需求是查找指定时间之后的第一条匹配记录(即晚于10:00:00的最早状态),只需将公式中的<=改为>=,并调整XLOOKUP的匹配参数为1:
=XLOOKUP(1,(A2:A13=E2)*(C2:C13>=F2),D2:D13,"",1,1)
此时会返回Agent 1在10:00:00之后的第一条状态Available,但根据你的预期结果,应使用第一种方案。
内容的提问来源于stack exchange,提问作者Harvey
相关产品推荐
相关产品推荐

