見出し画像

労務のためのExcel TIPS~vlookupからの卒業~

この記事は労務 Advent Calendar 2019の12日目の記事です。

今回は、労務の労務による労務(以外ももちろんオフィスワークに携わるみなさん)のための記事をお送りします。

自己紹介

20代にエンジニアを少しかじって総務にジョブチェンジ。その後一瞬労務に→無職になり、その後社労士の勉強をしたものの「ちょっと違う」と思って就職活動、総務NGの履歴書から発掘されて「データ人事」で採用、労務の道を歩む。現在はベンチャー企業でエンジニア採用やもろもろやりつつ、外で人事労務のお手伝いもやっていたりするのでやっぱり社労士取ろうかなと悩み中。(衛生管理者はこの間合格したよ!)

労務でvlookupを使わない人はいない問題

Excelやスプレッドシートの関数でvlookupというものがあります。
なにをやるかというと、別シートのマスターから情報を拾ってきたい!みたいなことをやります。
労務でとても多いのが異動が頻繁な企業の評価時期。
1.現在の所属でExcelをちぎって部長に投げる
2.異動が発生
3.旧部署の部長から入力して返してくる
4.さてと、評価をまとめて
・・・と思ったら、異動してる!今の部署どこ!という問題が良く発生します。(もちろん消えている部署もある)
なので、評価が戻ってきたら最新の人事データを出力して、After部署をvlookupを使って入れていくのです。
(当時いた会社ではAfter部署の上長が評価のフィードバックをするため、Before/After部署が必要なのでした)

そして、vookup右しかいけない問題

vlookup関数の特徴といえば、検索列は一番左、抽出列は必ず右にあることが条件です。
しかしながら人事基幹システムからダウンロードしたcsvは、
部門/部署/社員番号/氏名
のように並んでいることがあり、社員番号をキーに検索したいのに、これを毎回変更するのも面倒なわけです。

そんなズボラなあなたのためにindex関数とmatch関数という翼を授ける

RawDataはなるべく加工せずそのまま扱いたいのです。だって並び替えるの面倒だし、並び替えとかしてデータ間違ったら困るし。
ということで、vlookupからの卒業アイテム、indexとmatchという翼を授けようと思います。

ここから先はvlookup関数を日常的に使っていて、列指定めんどいと悩むくらい使いこなしている方に向けた内容になります。

なんで関数を2個も使うのさ?

ウルトラマンR/B(ルーブ)だって、ロッソとブルで戦っていたじゃないですか!(今のウルトラマンタイガはさらにパワーアップしてトライスクワッド)2つをあわせることで大きな力を発揮するのです。

はい、ここから本題です。

上の表が作成している表で、下の表が新部署を引っ張りたい元データになります。D列のセルに数式を入れて、下の表のD列の部署名を表示させています。
もちろん、検索キーは労務のみなさまおなじみの社員番号。

画像1

画像2


では、vlookupでできることをindex/matchを使うと実際にどうなるか見てみましょう。

画像3

何が違うのか?

vlookup関数とindex/match関数、何が違うのか?
それは検索(抽出)範囲の指定方法が異なります。
vookupで指定する範囲は、常に検索キー列が一番左の列にあり、取り出したい列までの範囲を選択する必要があります。そのため、取り出したい列がBL列だったときは、BL列まで選択する必要があります。さらに、BL列って数字で何列目だっけ?というのも別途数えないといけません。こういう時に限って他部署と共有しているファイルだから列を動かせないとかあるんですよね。(それも関数使って横着する技はありますがまた別の機会に)

だからindex/matchを使います

vlookupマスターの方なら「ほほう、index/matchは検索列と抽出列をそれぞれ別に選択するのね」とお気づきになったと思います。

そうなんです。index/matchは検索列と抽出列がそれぞれ独立した形=2つの関数を組み合わせて検索・抽出するものになります。

vlookupからindex/matchへ置き換えた場合の位置関係を示すとこのような感じになります。

画像4

vlookupとindex/match、「検索して、マッチしたセルから横移動したセルの内容を抽出する」という原理は一緒です。
vlookup関数1個で行っている内容を、検索(match)と取り出し(index)の2つの関数を組み合わせることで実現しています。
注:matchも検索関数なので近似値・完全一致の指定があるよ

index/matchを使って、vlookupと同じことができたらあともう少し。

vlookup左にも行きたい問題を解決する

今までの内容をご理解いただけたからならもうピンと来たはず。
本日の到達目標はこちらです。
検索キーの左にある抽出列から抽出する!でした。
抽出列を検索列と別に指定できるindex/matchならではの技ですね。

index関数の中の抽出列を左側の列へ置き換えるだけです。

画像5

index/matchにすることのメリット

再計算が早くなるよ!

面倒くさがりの面倒くさがりによる面倒くさがりのためのTIPSでした。

おしまい。

公式のチュートリアル

index関数、match関数、詳しく知りたい方は公式をご覧ください。



この記事が気に入ったらサポートをしてみませんか?