我正在尝试使用多个搜索条件查找记录。我想将员工的角色和最小年份和最大年份之间的年数与下面的“标题”相匹配。我想尽可能坚持使用功能。
Title Role Min Year Max Year
Senior Sales Sales 6 99
Middle Sales Sales 2 5
Junior Sales Sales 0 1
Sr. Counsel Counsel 0 99
Jr Counsel Counsel 0 99
Senior Staff Staff 6 99
Middle Staff Staff 2 5
Junior Staff Staff 0 1
Other Other 0 99
例如,Bill的销售额为一年,并且应该具有Title Junior Sales。乔,员工10年,应该是高级职员。
ID Last Name Title Seniority Expected Result
1 Nye Bill Sales 1 Junior Sales
2 Smith Joe Staff 10 Senior Staff
此公式返回正确的结果,但仅当它是“高级”级别标题而不是其他标题(#REF)时。
=INDEX($A$2:$A$10,MATCH($D20,$B$2:$B$10,0),MATCH($E20,$D$2:$D$10,-1))
这是一个返回角色的第一个实例的公式:
=INDEX(A2:A10,AND(MATCH(D20,B2:B10,0),SUMPRODUCT(--(E20<=D2:D10),--(E20>=C2:C10))))
它返回“高级销售”而不是“初级销售”。
感谢。
答案 0 :(得分:1)
使用数组公式(使用 ctrl + shift + enter 输入)可以使用此
=INDEX($A$2:$A$10,MATCH(1,(E20>$C$2:$C$10)*(E20<=$D$2:$D$10)*($B$2:$B$10=D20),0))
比较语句返回0(错误)和1(真)的数组。当所有三个都为真时,它们相乘以返回1,然后在匹配函数中匹配。
答案 1 :(得分:1)
这是一个非CSE数组公式:
=INDEX($A$2:$A$10,MAX(INDEX(($B$2:$B$10=J2)*($C$2:$C$10<=K2)*($D$2:$D$10>=K2)*(ROW($A$2:$A$10)-ROW($A$2)+1),)))
答案 2 :(得分:0)
只要您保持查找表的排列方式,此代码就适用于我:
=INDEX($A$2:$A$10,MATCH($D20,$B$2:$B$10,0) + MATCH($E20,$D$2:$D$10,-1) - 1 )