在 Excel 中比较两组数据,并在多列匹配时返回一个值

在 Excel 中比较两组数据,并在多列匹配时返回一个值

我有一个员工数据集,其中包含姓名和 3 个属性(职务职能、职务等级和工作地点)。然后,我有一个空缺职位数据集,其中包含申请编号和 3 个属性(职务职能、职务等级和工作地点)。对于每个员工,我希望将与他们相关的三个属性与空缺职位的相同三个属性进行比较,并显示每个匹配员工的相应申请编号。

答案1

=IF(SUMPRODUCT((B2=F2)*(C2=G2)*(D2=H2))=1,A2)

在此处输入图片描述

答案2

示例电子表格可作为http://www.bumpclub.ee/~jyri_r/Excel/Employees_and_vacancies_matched.xls

测试布局:
A 列:E - 员工姓名 (A)、职务职能 (B)、职务等级 (C)、地点 (D;
E 列:- B 列:E 列连接;
I 列:L - 申请编号 (I)、职务职能 (J)、职务等级 (K)、地点 (L);
M 列:- J 列:L 列连接

F 列包含一个数组公式(从公式窗口按 Shift-Ctrl-Enter 插入,花括号由 Excel 插入,而不是由用户插入):

={SMALL((IF($M$2:$M$100=$E2,OFFSET($M$2:$M$100,0,-4),"*")),1)}

公式搜索空缺职位中的员工数据匹配项 ( IF($M$2:$M$100=$E2),如果找到匹配项,则返回相应的申请编号 ( OFFSET($M$2:$M$100,0,-4),否则返回"*"。结果将存储在数组中,没有直接显示它们的方法。因此,在当前列中将显示最小的申请编号 ( SMALL(array;1))。

第二个匹配项将显示在下一列中。复制公式后,),1)}应将 替换为),2)},依此类推。

如果这样的解决方案对您有用,那么就可以制定一个公式,如果列太少而无法显示所有匹配结果,则向用户发出警告。

答案3

我认为你把这三个属性连接起来的做法是正确的。然后可以按如下方式进行转换:

SU503767 示例

为了提高可读性,至少在开始时,我添加了“工作”和“空缺”。对于集合 AAA,有一个人受雇(#401),没有申请(空缺为空白)。对于集合 ABC,有一个申请(申请# 3a),并且有一个使用该技能的人受雇(#123)。

相关内容