Excel で 2 セットのデータを比較し、複数の列が一致する場合に値を返す

Excel で 2 セットのデータを比較し、複数の列が一致する場合に値を返す

従業員のデータ セットには、名前と 3 つの属性 (職務、職務等級、勤務地) が含まれています。また、求人番号と 3 つの属性 (職務、職務等級、勤務地) を含む求人データ セットもあります。すべての従業員について、従業員に関連付けられた 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))。

2 番目に一致したものが次の列に表示されます。数式をコピーした後、),1)}を に置き換える必要があります),2)}

このような解決策が有効な場合は、一致する結果をすべて表示するには列が少なすぎる場合にユーザーに警告する数式を作成することもできます。

答え3

3 つの属性を連結するのは正しいと思います。これらは以下のようにピボットできます。

SU503767の例

読みやすくするために、まずは「職務」と「空き職」を追加しました。セット AAA では 1 人が雇用されており (#401)、求人はありません (空き職は空白)。セット ABC では求人 (求人番号 3a) があり、そのスキル セットを持つ 1 人がすでに雇用されています (#123)。

関連情報