Excel按员工ID提取最长任职岗位时匹配错误求助
Excel匹配最长任职天数对应岗位错误的解决办法
你的公式问题出在只匹配了最长天数,没有限定对应员工ID——MATCH会返回整个表格中第一个出现该天数的岗位,哪怕这个岗位不属于目标员工。比如员工13993的最长任职天数是15天,但表格里更早出现过OM岗位对应15天的记录,所以公式错误返回了OM。
以下是两种场景的解决办法:
1. 适用于Excel 365/2021(支持动态数组)
用XLOOKUP实现多条件匹配,直接定位目标员工的最长天数对应岗位:
=XLOOKUP(1,(ID=A2)*(DAYS=MAXIFS(DAYS,ID,A2)),JobTitle)
逻辑说明:(ID=A2)*(DAYS=MAXIFS(DAYS,ID,A2))生成一个数组,仅当当前行ID和目标员工一致、且天数为该员工最大值时,结果为1,XLOOKUP找到这个1对应的岗位。
2. 适用于旧版Excel(无动态数组支持)
用INDEX+MATCH的多条件数组公式,同时匹配员工ID和最长天数:
=INDEX(JobTitle,MATCH(1,(ID=A2)*(DAYS=MAXIFS(DAYS,ID,A2)),0))
注意:输入完成后需按Ctrl+Shift+Enter触发数组公式执行。
额外处理:同一员工多个岗位天数相同的情况
如果同一员工有多个岗位的任职天数等于最大值,上述公式会返回第一个出现的岗位。若需要合并所有符合条件的岗位,可使用TEXTJOIN:
=TEXTJOIN(", ",TRUE,IF((ID=A2)*(DAYS=MAXIFS(DAYS,ID,A2)),JobTitle,""))
旧版Excel同样需要按Ctrl+Shift+Enter执行。
内容的提问来源于stack exchange,提问作者Mish
相关产品推荐
相关产品推荐

