在Excel中比較2組數據,當多列匹配時傳回一個值

在Excel中比較2組數據,當多列匹配時傳回一個值

我有一個員工資料集,其中包含姓名和 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 組,有一份申請(req# 3a),並且已經僱用了一個具有該技能組的人員(#123)。

相關內容