別々の表にある部署と資格を、1つの名簿に追加するには?
基準名簿のIDに部署表と資格表をそれぞれ結合し、一方の情報がない人も名簿に残します。
基準名簿が決まっているなら、各表を名簿のIDに直接つなぎます。資格表も部署表を経由せず名簿につなぐことで、部署情報がない人の資格も取得できます。
この例は、勤務先でJOIN SHEETの利用が認められ、各表に共通の人物IDが用意されている場合の手順です。データを端末内で処理するサービスでも、会社の利用規程は確認してください。
部署が未登録でも資格は載せたい
架空の名簿でU3には部署情報がありませんが、資格L-Bがあります。資格表のU9は名簿にいません。今回の対象はRosterのU1、U2、U3です。
表中の∅は空欄を示す説明用の記号で、入力する文字ではありません。
Roster
| PersonID | Name |
|---|---|
| U1 | Ari |
| U2 | Bo |
| U3 | Cam |
Teams
| TeamPerson | Team |
|---|---|
| U1 | North |
| U2 | South |
Licenses
| LicensePerson | License |
|---|---|
| U1 | L-A |
| U3 | L-B |
| U9 | L-C |
接続と条件の設定
- Rosterを左に置き、TeamsとLicensesをそれぞれ右に配置します。
- RosterのPersonIDとTeamsのTeamPersonを結び、「左のシートの全行を保持」を選びます。
- 同じPersonIDからLicensesのLicensePersonへ別の線を結び、こちらも「左のシートの全行を保持」にします。
- Rosterを選び、「結果のプレビュー」で確認します。2本の線がRosterから出ていて、Name、Team、Licenseが表示されていることを確かめます。
結果で確認する点
結果は3行です。U2のLicenseとU3のTeamは空欄ですが、U3のL-Bは残ります。U9が表示されたら、両側の行を保持する設定になっていないか確認してください。
| PersonID | Name | TeamPerson | Team | LicensePerson | License |
|---|---|---|---|---|---|
| U1 | Ari | U1 | North | U1 | L-A |
| U2 | Bo | U2 | South | ∅ | ∅ |
| U3 | Cam | ∅ | ∅ | U3 | L-B |
適用範囲と注意点
この例では、部署表と資格表をそれぞれ1人につき最大1行にしています。同じ人に複数の資格や部署履歴があると、それらを組み合わせた分だけ行数が増えます。現在の部署だけを使うのか、履歴も残すのかを決めてから結合してください。
自分のファイルで始めましょう
JOIN SHEETを使ってみる ↗Excel・CSVの作業はPCでご利用ください。
新しいタブで開くため、作業中のデータは置き換わりません。
サンプルの検証日:
出典
How do I take data from specific columns from multiple sheets and merge them into one? (Reddit r/excel)
原文は、勤務先で外部ツールの利用が禁止されている中で、複数の表から必要な列を集める方法を探した質問です。一部の表に従業員IDがない点にも触れていますが、質問ではIDがあるものとして回答を求めています。回答ではExcel内で使えるPower Queryが提案されていますが、最終的に解決したという確認はありません。
この記事は、外部ツールを使えて共通IDもある場合の独立した架空例です。質問者の職場で使える方法や、JOIN SHEETを使って解決した実例として紹介しているわけではありません。