
このレクチャーでは、これからみなさんと作っていくPower BIレポートの完成形とその元データを見ていただきます。
そうすることで、このコースでやろうとしていることのイメージをつけていただくのが目的です。
まず、元データ。こちらはエクセルファイルになります。ある会社の従業員データが格納されています。名前の他、入社日や退社日データがありますね。このデータは完全に架空のものになります。
このデータをPower BIに読み込ませたのち、人事の三大KPI。従業員数、定着率、そして離職率それぞれについてのページをPower BIで作ります。
残念ながら、従業員、定着率、離職率、ともに元データからそのままひっぱってくればOKというものではありません。各指標ともに、DAXをフル活用して算出する必要があります。
コースの流れを紹介します。最初に、元データの紹介と元データをPower BIに取り込みます。その後、このコースでは、3大KPI毎にセクションを分けています。
流れとしては、まず、従業員数からスタート。その後、定着率、離職率と続きます。各指標毎に1ページのレポートをつくります。
各指標では、最初にメジャーを作ります。その後、そのメジャーを使って、様々な切り口でビジュアル化するという流れです。
以上、このレクチャーでは、このコースの流れを紹介しました。
次のレクチャーでは、さっそく元データの確認からはじめていきます。
このレクチャーでは、これからPower BI上で人事の三大指標を作っていくわけなんですが、元データがどういったものか?を一緒に見ていきたいと思います。
このレクチャーのダウンロードに"HR_Data"というファイルを用意しました。こちらをダウンロードしていただきたいと思います。人事情報というのは本当にセンシティブなものですよね。当たり前ですが、データは全くのダミーデータですのでご安心ください。
これから見ていくデータは、ある会社の人事データです。一つ大事な前提は、今見ているデータは現在も在職中の人のみではなく、退職された方のデータも入っている点です。いつ入社して、いつ退職したのか?そしてその退職理由は何か?まで入っています。これら退職者のデータもなければ、定着率や離職率を出すことはできません。
今回のデータはHRというワークシート1枚です。では、どういった内容が入っているか見ていきましょう。
まず、社員IDです。この会社は各従業員に固有の社員IDが割り振られています。このID毎にデータがあるわけですね。データの個数をみると4,138となっています。ですのでこれから4,138名分の人事データを扱っていきます。間違えやすいのは、この4,138名というのが、今回のテーマである人事の3大KPIの従業員数か?というと...そうじゃないですよね。先ほどもお伝えしたように、このリストには退職者も入っています。それをうまく考慮して、集計する必要があります。
B列からF列には、社員さんのお名前、部署、部署内のさらに細かいセクション分け、職位が入っています。部署と、部署内セクションというのは階層構造になっています。例えば(フィルター)ソフトウェアの部署内には、さらに細かく、開発、サポート、品質管理と別れている、といった具合です。
次、G列からK列まで。ここは重要です。このコースのテーマである三大KPIの従業員数、定着率、離職率、いずれを出す時にも考慮が必要な部分です。
まず、入社日。当たり前ですが、入社しないと従業員ではないですよね。例えば、この一番上にきているCEOさんは2017年6月28日に入社されています。従業員数を出す時、年毎に従業員を出すってことはよくあります。5年前はXX人で、翌年はこれで、そして今はこの人数です!といった具合に。この時、2016年の人数を出す時には、このCEOはまだ入社していません。ということは2016年の計算からは除外するような計算の工夫が必要になります。
横を見ると、退職日、退職区分、退職理由、というのがあります。ここはブランクのところがチラホラありますね。ここにデータが入っているということは、その人が退職をした、ということです。この会社では、退職したら、退職日、退職の区分、退職理由が入るようになっています。
入社日と並んで、退職日も今回のテーマでは重要なデータです。離職率を出す時に使うのはすぐ想像できます。あと定着率も、在職している人数と退職した人数の関係を出すものなので、使いますよね。
ややこしいのは、従業員数です。例えば、この方は2017年に入社して、2019年に退職されています。従業員数を出す時、年単位でみたら、2017年と2018年には人数に入ります。でも2019年には入れません。離職率の計算も似てますね。2019年に離職しているから、2019年のデータには入ってくる。でも、2017年と2018年には入ってこない。定着率計算にも同様の影響があります。
この辺をどうDAXを駆使して計算するか?というのが、おもしろいポイントでもあります。
退職日が入っている行には、退職区分と理由が入っています。退職理由というのは(フィルターを見せる)様々です。一方で、退職区分は自己都合か会社都合かの2つしかありません。
在籍ステータスというのは、今在職中の方には1。もう退職されている方には0が入っています。別の言い方をすると、退職日、区分、理由が入っている人の行はゼロです。
次に性別、生年月日、学歴が続きます。この後のレクチャーで、この生年月日から簡単に年齢を出すテクニックも紹介します。その後のO列からR列は、その他の細かい情報です。勤務形態とはリモートなのか出社なのかを示します。今時な会社ですね。雇用形態とは、正社員なのか契約社員なのか、の違いです。
以上、ここではこれから加工する元データファイルを見ていきました。次のレクチャーでは、データをPower BIに読み込んでいきます。
このレクチャーでは、Power BIにデータを読み込んでいきます。
Power BIを起動します。私は名前を Power BI HR KPIs として保存しておきます。この後、中断したいと思えば、ctl + s で保存すればOKです。
データを読み込みましょう。データを取得、Excelブックです。ファイル格納位置より読み込みます。前のレクチャーでダウンロードしていただいたHR_Dataというファイルです。
ナビゲーターが開きました。今回は1つのワークシートだけでした。HRを選択してデータの変換です。
Power Query Editorが開きました。データ内容をチェックしておきましょう。ここでは、クエリ名、データ型をチェックします。クエリ名としては、この名前で、ファイル内容を表していると思いますのでOKですと。
データ型のチェックをします。ポイントは日付データは日付、テキストはテキスト、数値データは数値になっているか?です。
今回のデータでは重要な、入社日、退職日と生年月日が日付データですね。はい。キチンと日付データのアイコンになっています。特に退職日は、空欄を示すヌルがあるものの、日付データになっています。
たまに、Power Query Editorで、取り込んだデータのデータ型をチェックしろって言われるけど、データがいっぱいあり過ぎて、全部見切れません、という声を聴くことがあります。たしかに理想は全部みるのが良いですが、実務だとそうは言ってられない時もあります。そんな時は、今やったように、今回のレポートで重要になりそうなデータだけを優先してチェックする、というのがおススメです。
前のレクチャーで元データをみました。そこで、今回のレポートのポイントは入社日と退職日だという話もしました。今から作っていこうとするレポートを頭に思い浮かべながら、元データを見ていくと、データのうちどこが重要そうかな?とぼんやりでも浮かんでくることがありますのでおススメです。チェックする時の優先順位がつけられます。
他のデータも見ていきましょう。今回は人事データということもあり、ほとんどテキストデータですね。在籍ステータスだけ数字です。いったん、これで良さそうです。
今みているレポートにはありませんが、たまにPower BIでデータを読み込むと全くデータが入っていない範囲まで読み込んでしまっている場合があります。このあたりにもう何列かあって、データが入っていないと。ブランクの範囲も読み込んでしまっている状態です。もしそういう列が入っていたら、右クリックで削除していただければと思います。
読み込む前に少しデータを修正します。
まず、名前です。今は姓と名がバラバラですね。名前、という一つの列を作ります。姓と名を順番に選んで、列のマージです。区切りはスペースを入れます。新しい列名は、名前とします。姓と名の横にもっていきたいのですが、ドラッグするとなかなかスムーズにいきません。右クリックで移動として、一番先頭にいったんもっていきます。その後、姓と名の横に移動させます。
在籍ステータス。1と0だとパッと見た時、どっちがどっちなのか?そもそも在籍ステータスって何?ってなりそうです。ですので、1を在籍中、0を退職済に変換します。
在籍ステータスを選択して、変換タブで値の置換をやるかと思います。やろうとすると、エラーになります。エラーメッセージを見ると、Number値を返しますってなっています。ですので、いったんキャンセルして、データ型をテキストにします。現在のものを置換。その上でももう一度在籍中に変えるとできます。
今度は0を退職済にしますが、こういうやり方もあります。0のところで右クリック。そして置換です。このやり方だと、検索する値っていうのが最初から入っています。これでOKです。
次に、生年月日です。これはこれでいいのですが、現在の年齢を出したいと思います。生年月日列を選択します。その上で、生年月日は残したまま、新しい列を加えたいので、列の追加です。そして、日付にて、期間というのがあります。ホバーさせると説明書きが出まして、データで示されている日から今日現在までの期間を表しますって出ています。つまり、この場合、誕生日から今までどのくらいの期間が経っているのかを出してくれるってことです。
そうすると、新しく期間という列が出てきます。生年月日の真横に持っていきます。アイコンが時計のようなものになっています。見慣れないですね。実はここに出ている値というのは、こちらの生年月日から、今までの日数が出ています。さすがに年齢日数でいう人はいません。これを年齢に変換します。期間を選んで今度は、変換です。そうすると、いつもだったらグレイアウトされている期間がアクティブになっています。みてください。生年月日だと、日付がアクティブで期間はグレイアウト。期間だと逆ですね。
そして、期間にて合計年数とします。これで年齢表示ができました。細かい少数点は要らないので、データ型を整数にしておきます。またヘッダー名も、期間から年齢にしておきます。はい。これでいいですね。この年齢は、今日現在を基準に更新されます。ですので、みなさんが出した年齢と今みている年齢は、いつこの処理をしたか?によって変わってきます。
この日付から期間を出すテクニックは、年齢に限らずいろいろ使える便利なテクニックです。
はい。ではこれでPower BIにデータを取り込みます。閉じて適用をクリックです。データ部分に、さきほどのクエリ、HRが登場し、Power BIにデータが読み込まれました。
(モデルビューにいく)通常ですとモデルビューに行って、リレーションを組んだりしますが、今回はクエリ一つなので、つなぐリレーションはないです。
以上、このレクチャーでは、データをPower Query Editorを経由して、Power BIに取り込みました。次のレクチャーでは、集計メジャー作りに入っていきます。
このレクチャーでは、これから作っていくメジャーの基本となる、従業員数を集計するメジャーを作っていきます。
(前のレクチャーでやり忘れた、期間の列名を年齢に変える)
Power BIのベストプラクティスとして、メジャーをたくさんつくっていく前に、値を集計するメジャーを一つ作っておく、というのがありますね。それをここでは作ります。
さて、このコースでは、人事のデータにおける「三大KPI」である「従業員数(Headcount)」「定着率(Retention)」「離職率(Turnover)」の3つを作っていきます。
従業員数は、ある時点で従業員が何人いるのか。定着率とは入社してもらった従業員のうち、どれだけの従業員を維持できているのか。そして、離職率とは残念ながら、入社してもらった従業員のうち、どれだけの従業員を失っているのかを示すものです。
このレクチャーで作ろうとしている、従業員を集計するメジャーとは、今話したある時点で従業員が何人いるのか?示す、3大KPIのうちの従業員数ではありません。
単に従業員数を合計するものです。
ここからたくさんメジャーを作るので、作成したメジャーを格納するためのクエリを一つ用意します。ホーム、データの入力です。クエリ名をHRメジャーとします。ここに作成したメジャーを格納していきます。ちょっとした工夫ですが、クエリ名の前にアンダーバーを入れます。これで読み込み、とします。データの中での並び順として、アンダーバーが入っているものは上位に来ます。ですので、メジャーを格納するクエリが上部に来るように、アンダーバーを入れた次第です。これはお好みですね。
では、作ったメジャーがここに格納されるように、このHRメジャーをクリックした後に、新しいメジャーです。このメジャーの名前は、全体従業員数、としたいと思います。ちょっと不自然ですが、これから作ろうとしている人事の3大KPIのうちの従業員数とは区別するための工夫です。
従業員数を数えるのに使うのは社員IDです。これは個々の従業員に割り振られるものでしたね。この個数を数えれば良さそうです。DAXはCOUNTでもいいのですが、個別の数を数えるということで、DISTINCTCOUNTを使います。違いはCOUNTは単にデータ数を数えますが、DISTINCTCOUNTであれば、データの中で固有の数を数えます。もし、ダブりがあった場合のは片方は集計されません。
全体従業員数 = DISTINCTCOUNT(HR[社員ID])
はい。できました。ここで、HRメジャーの列1は削除しておきます。
では、できたメジャーをビジュアルに落としてみましょう。カードにします。コンマをつけておきましょう。
全体従業員数は、4,138となっています。これは何を数えているかというと、(テーブルビューにいく)この社員IDの固有の数です。この一行一行が社員さんのデータでしたね。選択すると、下に、見えますでしょうか?4,138行あって、4,138個の別個の値となっています。ここでも(レポートビュー)この全体従業員数はキチンと計算できているのが確認できます。
HRの他データと組み合わせても、おかしな点ないか見てみましょう。おかしな点って具体的に言えば、この全体の4,138名についてデータのとり漏れがないか?をチェックします。この言い方もあいまいですね。実際にやった方が早いです。もったいぶりましたが、例えばテーブルビジュアルに学歴と、今作った全従業員数をいれます。すると、内訳が出ます。この4,138の内訳がキチンと出るか?これが漏れがないかのチェックになります。ここだと学歴にブランクがないか?ということですね。勤務形態でもみると、キチンと別れてますね。性別でみると、その他とあります。これは元データがそうなっているからOKです。今は、男性、女性の他の区切りもありますね。
はい。うまくできていますね。以上、このレクチャーでは最初の集計メジャーを作りました。
次のレクチャーでは、いよいよ人事の3大KPIの一つ目。ある時点の従業員数を集計するメジャーを作っていきます。
ここからはHRの3大KPIの一つ目。従業員数を算出するメジャーを作っていきます。もっと正確に言えば、ある時点での従業員数です。
意図的に、ある時点で、というのをこれまで強調してきました。というのが、元データを確認したレクチャーでもお話しましたが、従業員数って言った時には、いつの?という質問とセットだからです。
人事分析の難しさの一つは、従業員の出入りが常に発生していることにあります。「従業員は何人いますか?」という質問に答えるには、「いつの時点の話か?」を明確にしなければなりません。
なぜなら、従業員数としてカウントできるのは、入社した従業員であり、退職していない従業員です。
というわけで、ある時点の従業員数を出すには、「時間軸」の要素を加える必要があります。
といっても、特別なものではなく、具体的に言えば、「日付テーブル(Date Table)」を追加します。
ですので、このレクチャーでは、従業員数のメジャーを作る前に、まず日付テーブルをモデルに追加します。このレクチャーのダウンロードに、「Date_Table」というエクセルデータを置いていますので、ダウンロードしていただけますでしょうか?
こちらをPower BIに読み込みましょう。ホームのデータの変換をクリックします。すると、Power Query Editorが開きます。新しいソースでエクセルブックです。私はデスクトップ上にPower BI Trainingというフォルダーを設けて、そこにデータを格納しています。みなさんはみなさんのダウンロード先に行っていただけますでしょうか?そして、Date_Tableを選択して、開く、です。
ナビゲーターが開きます。このテーブル、元データを見ませんでしたが、基本的には、1920年から1日置きのデータがあります。それを、年、月、日で区切ったものです。ワークシートDateというやつが一つしかありませんので、こちらを選択してOKです。クエリにDateと入りました。データ型も日付データ。その他の年、月、日は数字です。年のフィルターを見てみましょう。このデータは1920年から2030年までのデータがあります。こんなに長い期間は今回の分析では要らないんですが、これについてはこの後対処しますので、いったんここではOKです。閉じて適用をクリックします。
レポートビューのデータに、Dateクエリが入りました。
日付データを取り込んだら、(モデルビューにいく)さて次に「DateテーブルとこちらのHRテーブルを結合するのか?」という疑問が出てきますが、実は今回はリレーションを張りません。
理由は、この同じDateテーブルを従業員数、定着率、離職率のそれぞれで異なる形で参照したいからです。リレーションを張ってしまうと柔軟性が失われます。そのため、このレクチャーで取り込んだ日付データは、DAXの中で「Dateテーブルを参照」する形で使います。
(テーブルビューにいく)さて、さきほどもお伝えしましたが、このデータは1920年からあります。実務でもベストプラクティスとして、日付データは独立したクエリを設ける、というのがあります。ただ、その日付クエリを様々なレポートで共有すると、どうしても、全部をカバーしないといけないので、範囲が広くなりがちです。それを、ある特有のレポートで使うと、どうしても長すぎるというのがあるんです。
例えば、今、日付でスライサーを作りました。そうすると期間が1920年から2030年までのものが出ます。でも、このレポートで従業員数を使うのはせいぜい2012年以降です。
なぜ2012年か?テーブルビューに行きます。入社日のフィルターをみます。2012年からになっていますね。2012年以降に入社した人しかこのデータにはありません。ということはそれ以前のデータはここでは不要です。(スライサーを見せながら)不要な期間がこんなにあると、レポート作りの邪魔になります。これについては次のレクチャーで対処法を紹介します。
以上、このレクチャーでは日付データをPower BIに読み込みました。次のレクチャーでは、不要な日付データの対象テクニックを紹介します。
前のレクチャーでは、取り込んだ日付データの期間が、必要な期間に対して長すぎる、という話をしました。日付データは独立したクエリを使う、というのがPower BIのベストプラクティスですので、実務ではあるあるの話かも知れません。
このレクチャーでは、日付データを取り込んだ時に分析に関係のあるデータ期間をだけを絞るテクニックを紹介します。これは、今回の人事KPIレポートに限らず、汎用的に使えます。
テーブルビューにいきます。日付データにいきまして、新しい列を追加します。この列には、今から作ろうとしているレポートに関係あるかないか?のフラグをIF式を使って立てます。
新しい列をクリックします。式、つまりここでは列のヘッダー名を、人事KPIのタイムフレーム、とします。まず、私の方でDAX式を入れてから、そこから説明します。
人事KPIのタイムフレーム = IF('Date'[日付] >= FIRSTDATE('HR'[入社日]) &&'Date'[日付]<= TODAY(),1,0)
はい。DAX式が入りました。このIF式、ある条件に合致したら1を返し、合致しないなら0を返す式です。
(DAX式の該当部分をなぞりながら説明する)
ある条件って何かというと、この部分。二つのアンドがあります。これは二重の条件で2つの条件を両方満たす必要があります。その条件とは、日付の期間が、入社日データのFIRSTDAY、つまり一番最初の日と同じからそれよりも大きい、いいかえるとそれより後、ということです。DAXのFIRSTDAYというのは、対象の最初の日を出します。さきほどもお伝えした通り、このレポートって、社員が入社した後でしかワークしません。ですので、必要な期間は入社日の一番最初の人以降の日付が出発点となります。
2つのアンドの後のもう一つの条件。これはToday、つまり今日かそれより小さい、つまりそれ以前ということです。
ここまでを総合すると、この新しい列には、今扱っている人事データの中で、一番早い入社日の人の入社日から、今日までの期間であれば、1。そうでなければ0が入っています。
はい。では、これでレポートビューに戻ります。
一旦、カードとスライサーを残して他のテーブルは削除します。新しいテーブルを作って、そこに日付データから年を入れます。集計してしまうので、集計しないをクリックします。すると、今は、1920年から2030年までが出ていますよね。
ここですべてのページでのフィルターに、先ほど作った列を入れます。基本フィルターにして、1をクリックします。するとテーブル内の期間がぐっと縮まりました。スライサーの期間も縮まりました。何が起こったかというと、さきほど作ったタイムラインの列で、このレポートに関係ある期間を1、そうではないものは0とフラグを立てました。そして、フィルターにより、関係ある期間のみを出す、としました。ですので、ビジュアルにもフィルターがかけられて、関係のある期間のみが出る、絞られた、というわけです。
しかも、このフィルターは使用するデータに合わせてダイナミックに変わります。使用するデータないで、入社日の一番早い人が変われば、その分範囲は変わります。それに(Dateの人事KPIのタイムフレームの式を見せる)TODAY関数を使っていますので、常にみなさんがレポートを開ける日までカバーしています。
私のこれまでの講座を御覧になったことがある方は「えっ?」と思われるかも知れません。私は、他のコースでは、すべてのページのフィルターはあまりおススメしていません。というのも、ページが増えると、すべてのページのフィルターをかけていることを忘れがちだからです。こんな感じでフィルターのページを閉じていたら猶更ですよね。今回、このコースでは今作っているPower BIファイルには、人事KPIのことしか作らないので、便宜上すべてのページのフィルターを使わせてもらいました。実務において、もしみなさんが同じようなフィルターを使う場合で、他のページには人事KPI以外のレポートも入りそうな時は、すべてのページではなく、こちらのこのページでのフィルターを使うことをおススメします。
以上、このレクチャーでは、レポート期間に合わせて、日付データの絞り込みを行うテクニックを紹介しました。次のレクチャーでも、いよいよ、ある時点における従業員数を計算するメジャーを作っていきます。
ここまで、従業員数メジャーを作るための下準備をしてきました。いよいよメジャーを作っていきます。
さきほど作った年のテーブルに全体従業員数のメジャーを入れると、全部同じ数字がでてきます。この数字は何かといえば、現在のHRデータにある従業員すべての数です。なぜリストの全員が出てくるのかと言えば、入社日や退職日を考慮に入れていないためです。
従業員メジャーをステップバイステップで作っていきます。
では、HRメジャーをクリックした上で、新しいメジャーです。名前は従業員メジャーとします。
まずは、入社日のみを反映します。入社日が任意の年の12月31日以前である従業員を集計するDAX式を組みます。
Calculateの集計で使うのは、以前作った全従業員数メジャーです。
そして集計条件では、FILTER式を使います。FILTERによってデータテーブルを指定の条件で抽出できます。どういう抽出条件かというと、HRデータのうち、入社日が任意の年の最後の日付と同じか、それよりも以前である、という条件です。
最後の日と表現するために、LASTDATEというDAXを使っています。
従業員数 = CALCULATE('_HRメジャー'[全体従業員数],
FILTER('HR','HR'[入社日] <= LASTDATE('Date'[日付]))
)
これでエンターとします。作ったメジャーをさきほどのテーブルに入れていきます。すると、少しづつ数が増えていっています。そして、4,138に到達してからは数字は動いていません。
(DAX式の中身を見せつつ)説明。この2012年の419人というのは、何を示しているのでしょうか?2012年の部分では、(メジャーを示し)こちらのLASTDATEで出す最後の日というのは、2012/12/31です。ここでは、2012/12/31以前に入社した従業員だけを集計しています。
次の2013年の部分はどうか?ここでは、2013年の12月31日以前に入社した社員を集計していっています。こうしてどんどん数が増えていって、現在のリストの全体である4,138人まで達しました。この後増えていないのは、単にデータがそれ以上ないからです。
こうして、まずは入社日を従業員数メジャーの考慮に入れることができました。
一旦ここでレクチャーを区切ります。
以上、このレクチャーでは従業員数メジャーについて、入社日を加味するDAX式を作りました。次のレクチャーでは、仕上げとして、退社日を反映させるDAX式をこのメジャーに加えていきます。
このレクチャーは前のレクチャーの続きです。前のレクチャーでは、従業員数メジャーに入社日を考慮するDAX式を組みました。
このレクチャーでは、さらに退職日も加味して、従業員数メジャーを仕上げます。
では、従業員数メジャーを開きます。新たに条件を加えるために、閉じカッコを改行しておきます。
従業員数 = CALCULATE('_HRメジャー'[全体従業員数],
FILTER('HR','HR'[入社日] <= LASTDATE('Date'[日付])
) ← Filter
) ←calculate
どこの閉じカッコがどこのものか分からなくなりやすいですので。まずこの一番外のものは、Calculateの閉じカッコです。そして、次に内側にあるこれはFilterの閉じカッコです。カッコにカーソルを合わせると、どこがセットになっているかハイライトしてくれます。これで確認するのもあります。
さて、今からやりたいのは、FILTER関数の条件を加えたいので、FILTERの閉じカッコ内で、最初のこの入社日の条件の後に && を加えます。これにより、この条件とかつ、もう一個の条件を満たすものをフィルターをかけると表現できます。
&&をつけた後に、( )を用意しておきます。&&の後に条件を加える時には、()で囲むのがベストプラクティスです。文法的にはなくてもエラーにはなりませんが、狙ったようにならないことがあります。さて、ここに入れる条件は、任意の年の最後の日よりも、退職日が後である、です。別の言い方をすれば、ある時点よりも後が退職日なので、そのある時点には在籍している、という意味です。
数式で表現すると、LASTDATEよりも退職日が大きいとなります。
従業員数 = CALCULATE('_HRメジャー'[全体従業員数],
FILTER('HR','HR'[入社日] <= LASTDATE('Date'[日付]) &&
('HR'[退職日] > LASTDATE('Date'[日付]))
)
)
はい。ではこれで、こちらのテーブルの数値がどう動くか?一旦エンターしてみましょう。そうすると、数字が激減しました。なんか間違ったのでしょうか?
いや。単にまだ途中なだけです。(メジャーを見せる)今集計したのは、入社日と退社日が入っている従業員についてです。(テーブルビューにいく)データをみていただくと、この会社の従業員リストでは、退職日がブランクの人の方が多いですよね。これは入社はしているけど、退職していない、つまり今も在籍中である、という意味です。(レポートビュー)今のメジャーには、この在籍中、別の言い方をすると、退職日データがブランクの社員についての考慮が抜けています。
では、どうするか? FILTER関数の条件にさらに条件を加えます。
先ほど、&&のあとに条件を加える時にカッコで囲みましたよね。これとこれです。ここが効いてきます。このカッコの中に、もう一つの条件を加えます。
ダブルパイプ、これでOR、もしくはという意味で、退職日がブランクであるとします。
これにより、入社日が任意の年の最終日以前である、つまりもうその時までには入社している。さらに、退職日がその時よりも後。つまりまだ退職していない。
そしてさらに、退職日がブランク、つまりその時より後ずっと働いている。退職していない。
これら3つの条件を満たす従業員の数を集計できます。いろいろ条件が多いですが、これらを満たす従業員数とは何かといえば、今集計している、ある時点での従業員数です。
はい。これでエンターとします。
すると、最終的な従業員数はこれまでずっと見てきた4,138人ではなく、3,409人と減りました。この数字は何かといえば、今、Power BIに入れている従業員データの最新の従業員数です。
これまで見てきた通り、4,138名というのは今ロードしている従業員名簿の全部の数です。その中には退職してしまっている従業員も多く含まれるので、その数よりも最新の従業員数が少ない、というのは筋が通っていますね。
次に、Terme Dateを用いて、退職済みの従業員を除外するロジックを追加します。
このとき、Terme Dateが「その年の12月31日より後」であるか、もしくは「空欄(=在籍中)」の従業員を対象とします。
この修正により、退職済みの従業員は集計から除外され、
ヘッドカウントの数値が減少します。
たとえば、2012年末時点での従業員数は「419 → 409」に減ります。
これは、2012年中に10名の従業員が入社し、同年中に退職したためです。
実際にデータビューでフィルターをかけて確認すると、
2012年に退職した従業員が10名存在することが確認できます。
以上から、Headcountメジャーが期待通りの動作をしていることがわかります。一旦ここでレクチャーを区切ります。
従業員数 = CALCULATE('_HRメジャー'[全体従業員数],
FILTER('HR','HR'[入社日] <= LASTDATE('Date'[日付]) &&
('HR'[退職日] > LASTDATE('Date'[日付]) || 'HR'[退職日] = BLANK() )
)
)
以上、このレクチャーでは従業員数メジャーの仕上げを行いました。次のレクチャーではこうして出したデータの検証を行います。
前のレクチャーでは、従業員数メジャーを作りました。このレクチャーでは、作ったメジャーの検証を行います。
もちろん、全部いちいち数えるわけにはいかないので、論理的に考えるとこうなる、という検証をやってみたいと思います。いちいち数えるのがめんどくさいのでDAXを使っているわけですので。
今、2012年の従業員数は409名だと出ています。
メジャーをみると、入社日が2012年の終わりまでで、そこから退職日が入っている従業員数を除けば、従業員数は出ます。それが409名かを検証したいと思います。
まず、入社日が2012年の終わりまで、ということでスライサーを使います。今あるスライサーは削除して新しく作ります。入れるデータは入社日です。勝手に階層になるので、日付に戻してスライサーを~の間にします。そして入社日を2012年12月31日までとします。
そうすると、全体従業員数は419名となりました。これは何かと言えば、(テーブルビューにいく)こちらのHRデータの中で、入社日が2012年12月31日までの社員の人数です。
(レポートビューにいく)ということは、2012年には419名の社員が入社したということになります。そして従業員数が409名だ、と言っています。ということは2012年には419名と409名の差である10名の従業員が退職したハズです。
この10名を検証してみます。10名ならなんとか数えられます。テーブルビューに行って、退職日の部分でフィルターをかけます。退職日が2012年であるところにチェックを入れます。はい。これでフィルターをかけます。出てきたデータを数えると1,2,3,....10個あります。10名の退職者が2012年には出ています。
(レポートビューにいく)さきほど、全体従業員数は419名で、従業員数は409名。だから退職者は10名のハズ、ということなので、このメジャーはキチンとワークしています。
では、検証が終わったので、テーブルメジャーのフィルターは外します。レポートビューのスライサーも削除しておきます。
以上、このレクチャーでは、人事の3大KPIの一つである従業員数メジャーを作りました。次のレクチャーでは、こうして作った従業員メジャーを利用して、ビジュアルを作っていきます。
これまでのレクチャーで従業員数メジャーを作りました。
このレクチャーでは、作ったメジャーを利用して、従業員数への理解を深めるためのビジュアル作りに入っていきます。
Power BIと言えばビジュアルですよね。
さて、ビジュアルを作る前に、ビジュアルのゴールを決めたいと思います。ここでのゴールは、従業員数を多角的に理解すること、としたいと思います。
ビジュアルと言えば、どうしても人に見せる、というのを念頭におきがちです。しかし、その前に自分自身の理解のために、作ったメジャーをもとに、いろいろビジュアル化して数値への理解を深めるという点も意識したいです。
では、ビジュアルをゼロから作りたいので、一旦カードビジュアル以外は全部削除します。
今、どの時点か?の区切りは入れていませんが、3,409名の従業員がいます。みなさんがHRのメンバーであったり、もしくは会社の管理職であった時、うちの会社の社員のメンバーはどんな構成になっているのか?に対する答えとしては、あまりに寂しいです。
ただ一方で、(テーブルビューにいく)各メンバーを一人づつ詳しく見ていくわけにもいきません。
ここでのゴールは、今、格納している人事データの中身を、そのレポートをパッとみれば、だいたい把握できる、これに設定したいと思います。それこそダッシュボードです。また(テーブルビュー)このリスト見ても、ある時点で従業員数が何名か?とか、部署の構成人数は?とか男女比は?なんてすぐ分からないですよね。それを分かるようにするっていうのは立派なレポートの価値です。
では、作っていきましょう。このレポートでは、左半分はビジネスにより近いこと。例えば部署の構成や職位に関することをまとめます。そして、右半分は、少し視点をあげて、人口統計的なことを扱いたいと思います。例えば、男女比や、年齢、学歴といった話題です。
では、はじめていきましょう。さきほどカードを用意しました。まずはバシッと何人と示すカードは必須ですね。もう一つ必須なもの。それはいつの従業員といった時のいつも、を決めるスライサーです。スライサーをもってきます。年区切りにします。具体的な年を見ながら作っていきましょう。2019年にします。2,796名の従業員がいました。この中身を探っていきましょう。
次に、この2796名がどのような部署にいるのかをみます。横棒グラフにして、従業員数を入れます。Y軸に部署を入れると、部署ごとの従業員数が出ます。どうやらこの会社はソフトウェアの部署が多く、次に営業が続くといった様子です。
部署は、さらに部署内セクションという階層がありましたね。さらにY軸に加えます。もし、部署セクション単位でみたければ、この下向きの2つの矢印をクリックすれば見れます。
おそらくそういった要望よりも、ソフトウェアの中では、どういったセクション構成になっているのか?の方が関心が高いでしょう。
ドリルモードをオンにして、ソフトウェアをクリックすると、ソフトウェア何でのセクション構成を見ることができます。ドリルアップで元に戻しておきます。
みなさんは、もうこの辺の単に階層を降りるのか、もしくはある項目の中で絞ってドリルダウンするのかは、おなじみだと思います。でも、実務ではそうじゃない方もいっぱいいます。ですので、こうしたレポートをシェアする時は、そういった操作方法も少し解説してあげるのが親切です。
次にこのままこのビジュアルをコピーして、今度は職位を入れます。当たり前ですが、やはり一般職の人数が圧倒的に多いですね。チームリーダーがそれに続き、といった具合にピラミッド組織になっているのが分かります。私も実務で経験ありますが、こうしたビジュアル化した時、実はある階層で、管理職の数がかなりその下に近いなんていうのが見えたりします。ここでいえば、チームリーダーと課長の数がほとんど同じ、といった状況です。この会社はそうではないようです。もちろん、スライサーでさらにさかのぼってみることもできます。この構成比は過去もそうだったみたいですね。
次に、今時の切り口で見てみたいと思います。100%積み上げ縦棒グラフを使います。そして、従業員数と、勤務形態を入れます。勤務形態は凡例に入れます。Y軸に入れちゃうと、ほとんど意味のないビジュアルになってしまいます。これは結構驚きです。この会社では、リモートがほとんどです。もちろんクロスフィルターが有効ですので、リモート勤務の社員ってどんな人たちか?リモート勤務部分をクリックしてみます。私の想像では、この会社ではソフトウェア関連の従業員が多いから、その人たちがリモート勤務。その他の本社機能が出社なのかな?と思いました。実際は、それぞれの部署で出社とリモート比率は同じくらいのようです。職位をみると、職位があがるにしたがってリモート率は低くなっているようです。(テーブルビューにいく)こういう傾向って、このリストみても全然分からないですね。ビジュアルの凄さを感じます。
通勤なのか、リモートなのかのつながりで、従業員の勤務地はどう日本全国に散らばっているかをみましょう。マップをいれて、場所は勤務地。そしてバブルサイズを従業員にします。ちょっと調整して、バブルがある部分が入るようにします。結構日本全国に散らばり、またバブルサイズからも、大都市にあつまる傾向はあるものの、他の地域にも同様に人員が散らばっていますね。
ここでもクロスフィルターを利用して深堀してみます。勤務形態の出社をクリックしてみます。すると、東京と大阪、そして下の方をみると那覇にしかバブルが残りませんでした。ここではキチンとした情報はありませんが、おそらくこの会社の事務所は東京と大阪、そして那覇にしかなさそうです。その他の地域で勤務されているのは、リモートで仕事をしている様子です。勤務者の多くがソフトウェアで、リモート導入率が高いということで、この会社はIT企業かも知れませんね。
以上ここまで、レポートの左半分を使って、従業員数についてビジネスに近い内容の理解をビジュアルを使って深めてきました。
一旦ここでレクチャーを区切ります。
次のレクチャーでは、右半分を使って、男女比、年齢、学歴といった人口統計的な内容を明らかにしていきます。
このレクチャーでは、従業員メジャーのビジュアリゼーション後半。人口統計的な内容をこちらの右半分にいれていきます。英語だとデモグラフィックともいいますね。
というわけで、意味のない英訳をしたところで、ビジュアリゼーションを作っていきましょう。今、スライサーを2019年に合わせています。2019年の従業員数、2,796名について深ぼっていきます。
まずはテーブルを作ってそこに性別をいれていきます。今は、男、女の他にその他、の項目を設けるのも重要ですね。数字でみるのもいいですが、ドーナツグラフに変えてみます。とかく最近は、円グラフ狩りともいえるくらい、使うと「えっ」って思われがちなグラフですが、項目が今回のように2つとか3つとか少ない場合には、有効なグラフと思います。
次に、年齢をみていきます。どのような分布になっているのでしょうか?縦棒グラフを選びます。
そして、X軸に年齢。Y軸に従業員数を入れます。こうしてみると、この会社では、ある年齢からがくんと従業員数が減っていますね。一方で、20代から40代くらいがボリュームゾーンのようです。
学歴も明らかにしたいと思います。横棒グラフを入れます。そして、X軸に従業員数。Y軸に学歴をいれます。多くの社員が大学卒のようです。
最後に残ったスペースに婚姻状況を入れます。これも項目少ないので、ドーナツグラフを使います。既存のものをコピーします。そして凡例を性別から、婚姻状況に変えます。
はい。これで作りたいビジュアルが用意できました。
こうして、ビジュアルを用意していく過程の中で、この従業員の背後にあるさまざまな情報を明らかにできましたね。こうした情報は、(テーブルビュー)このリストを見ているだけでは、到底得られません。
さらにこうして様々な角度で一覧にすることで、複数の視点で従業員数をみることができます。
以上で、このレクチャーでは、従業員数メジャーの視覚化、後半を行いました。
これで人事の3大指標のうち、従業員について、メジャーの作成とビジュアリゼーションができました。次のセクションからは、テーマを定着率にうつします。
引き続き、一緒に学習を進めていきましょう。
(従業員数のビジュアリゼーションのページからスタート)
このレクチャーからは、人事の3大指標のうち、定着率を扱っていきます。
新しいページを作りましょう。名前は定着率とします。一つ注意です。フィルターを開いてください。前の従業員数の時に、フィルターにすべてのページのフィルターで、人事KPIのタイムフレーム、というフィルターをかけていましたよね。ですので、新しいページにもこのフィルターはかかっています。
では、定着率の話に入っていきます。
まず、このレクチャーでは、定着率を定義したいと思います。
定着率とは、Googleで調べると「ある企業に入社した社員が、一定期間後にどれだけ残っているかを示す指標」だとわかります。前のセクションでやりました従業員数もそうでしたが、ここでもやはり期間が重要になってきます。
さて、実務でもそうですが、Power BIを使ってデータの可視化をしようとするみなさんと私にとっては、この定義だとまだ不十分です。この定義を数式に落とし込む必要があるかと思います。
定着率の計算には、さまざまあるようですが、このコースでは下記のように定義づけしたいと思います。(テキストボックスに書き込む)
定着率 =
ある期間の開始時点に在籍していた従業員のうち、ある期間の最後の時点に在籍している従業員数/ある期間の開始時点に在籍していた従業員数
定着、というくらいなので、ずっと在籍している人の率を測りたいわけです。その時にも出てくる質問は、やはりどの期間で?となります。ある期間を区切って、その最初にいた人が最後にどれだけ残っているか?これをこのコースでは定着率とします。
ややこしいですよね。
簡単な例を用意しました。(簡単な例、エクセルで示す)
今、わたしたちは2027年の12月にいるとします。過去を振り返って定着率を出そうとしています。社員はAさん、Bさん、Cさんの3名です。
各自の入社日と退職日のデータがあります。退職日がブランクなのは、退職していない、ということです。この時、2023年から2025年まで、各年度の定着率の計算に、各メンバーがどう影響するのかを表にしています。
まず、2023年。AさんとCさんは計算の対象外です。Cさんはそもそも入社していません。Aさんは2023年に入社はしていますし、2023年の最後までいらっしゃいます。しかし、今回の定着率の定義はある時点の最初から最後までいた人を対象としています。Aさんは2023年の途中入社です。ということは、2023年の最初にいないので、この計算からは対象外です。
Bさんは2021年入社で、2023年時点で在籍していますし、退職日は2024年であり、2023年の最後には在籍していました。2023年はBさんのみが計算対象です。
2024年の定着率計算ではどうでしょう?
Cさんはまだこの時点でも入社していないので、対象外です。今度はAさん、Bさんが計算対象になります。しかし、定着率の計算式でどう関わってくるのかが違います。
Aさんは、2024年の開始時点から終わりの時点から在籍されています。ですので、定着率計算の分子、分母両方で数に入ります。一方Bさん。Bさんは2024年の開始時点には在籍していました。ですので、数式のうち分母の数にはふくまれます。しかし、残念ながら2024年の途中で退職されています。最後までいないということで、分子の数には含まれません。
最後、2025年はどうでしょうか?
みなさんの中には、今回はこうじゃないか?ともう答えを出した方もいらっしゃるでしょう。すばらしいです。その通りです。まず、Bさんはもう2024年で退職されているので対象外です。Cさんは、2025年入社です。ということは2025年の開始時点にはいませんので、対象外となります。
対象となるのは、Aさんだけです。Aさんは2025年の開始時点で在籍していますし、終わりの時点でも退職していません。結果、Aさんは、分子、分母両方の数に含まれます。
今からみなさんとやっていく定着率の計算には、こうして説明した要素をカバーする必要があります。
以上、このレクチャーでは定着率の定義を見ていきました。次のレクチャーでは、定着率のメジャー作りに入っていきます。
このレクチャーより、定着率の計算に入っていきます。
さて、定着率は、こちらのテキストボックスに示す通り、割り算によって求められます。このレクチャーではまず分母であるこちら。
ある期間の開始時点に在籍していた従業員数
を計算します。この計算は、前のセクションでやりました従業員のメジャーとよく似ています。では作っていきます。
説明の便宜上、テーブルを作って、日付データより年を入れておきます。
メジャーが格納されるようにHRメジャーのクエリをクリックしてから、新しいメジャーです。
メジャーの名前は、「開始時点の従業員数」とします。
集計DAXはいつもの通りの、Calculate、そして集計条件であるFILTERを使います。ここでも条件をいろいろと設定します。途中でややこしいな、と思われると思います。
ただ、覚えておいていただきたいのは、所詮、入社日と退職日でフィルターをかけていることだってことです。
① まず最初。各年度の最初に在籍しているってことはその前に入社しているハズです。ですので、まずは入社日が任意の日付データの最初の日より前、数式的にはちいさい、です。
(テーブルを示しながら)2013年の開始時点に在籍している社員は、2013年1月1日よりも前に入社している必要があります。
さらに条件が続きますので、&& 且つを示す ダブルのアンドマークを入れます
前に従業員数を計算するメジャーでも話ましたが、&&で示す、アンド条件の時のベストプラクティスは続きはカッコで囲むことです。忘れないようにカッコをつけておきます。
任意の時点の前に入社しているのは、開始時点に在籍しているということは、退職もしていない必要がありますですよね。さっきの例だと2013年開始時点よりも前に入社して、かつ、退職もしていない。
②これを数式で表すと、退職日がブランクである、となります。
③はい。一見これで良さそうですが、あともう一つ条件が必要になります。
2013年を例にとると、今は2013年の前に入社して、かつ退職していない人となっています。でも、中には2013年の途中で退職した人だっているわけですよね。今の式だと、こちらのブランクの部分でその人を対象外としています。ですので、退職日が開始時点よりも後、というのを加える必要があります。
これは、もしくは、OR条件と呼ばれるもので、ダブルパイプを使います。
退職日が、任意の時点の最初の日と同じかそれ以上、つまり後である、と入れます。
閉じカッコを確認しましょう。(外から、これはcalc, これはFilter, これは...)と説明する
開始時点の従業員数 = CALCULATE('_HRメジャー'[全体従業員数],
FILTER('HR',
'HR'[入社日] < FIRSTDATE('Date'[日付]) && ----①
(
'HR'[退職日] = BLANK() || ----②
'HR'[退職日] >= FIRSTDATE('Date'[日付]) ----③
)
)
)
では、テーブルに作ったメジャーを入れてみましょう。コンマをつけておきます。お気づきかもしれませんが、さきほどまであった2012年が消えています。視覚化の年のところで、データのない項目も表示するをクリックします。そうすると2012年が出てきます。
(テーブルビューにいく)これなぜかというと、このリストの入社日の最初が2012年だからです。開始時点の人数を出す条件で、任意の年の最初の日よりも入社が早いってありましたよね。このリストの入社の開始が2012年。それ以前の入社データはないのでこの最初の年である2012年の最初の人数というのは出せません。
これは実務でもあり得ます。立ち上げ間もない会社ならともかく、従業員リストが創業からずっとある会社は珍しいと思います。あったとしても、今やろうとしているレポートの性質上、そんな何十年も前からのデータを分析しようってことも考えにくいです。
こうした理由があり、今回レポートでは2012年に関しては開始時点の人数は出せません。開始時点の人数が出せないということは、2012年の定着率も出せないということをここでお伝えしておきます。
はい。では、また視覚化の年でブランクデータを表示しない、をチェックしておきます。
以上、このレクチャーでは、(テキストを示しながら)定着率の計算のうち、分母である開始時点の従業員数を計算するメジャーを作りました。次のレクチャーでは、こちらの分子の計算に入っていきます。
このレクチャーでは前のレクチャーに引き続き、定着率計算のパーツづくりをしていきます。
今回は(テキストを示す)こちらの分子。
開始時点に在籍していて、かつ最後までいた従業員数、これを計算していきます。
なんかややこしそうですね。
実はそうでもないです。前のレクチャーで作った開始時点に在籍していた従業員数メジャーを少し変えればできます。
ということで、開始時点の従業員数をコピーします。
そして、このまま新しいメジャーです。
名前を終了時点の従業員数と変えます。
そして、数式の一部だけを変えます。どこを変えるかというとこちら、FIRSTDATEではなく、LASTDATEにします。
なぜか?ここまでで、コピペ元のメジャーでは、開始時点を算出するために、ある時点の最初の日よりも入社が先で、かつ退職していないって条件付けしましたよね。でも、これだと、任意の年、たとえば、2013年の開始時点の従業数を出す時、今のままだと、2013年中に退職した人までを除外しています。なぜなら、この退職日がブランク、という式があるからです。ですので、続きとして、もしくは、と条件をつけて、退職日が入っていたとしても、任意の年の開始時点かそれ以前のものって条件付けをしました。
では、終了時点までいる人ってどういう人か?2013年の例で続けます。
この入社日と、退職日がブランクっていうのは条件そのままです。だってやめてませんから。今回の定着率の式における2013年の最後までいた人っていうのは、2013年の開始よりも前に入社して、かつ辞めていない人です。
ただ最後に付け足したいのは、やめたとしても、退職日が2013年の最後の日か、それよりも後、という条件です。なぜなら、たとえ後でやめたとしても、2013年の最後の日までいたならば、その人は2013年の最後までいた人になりますので。
ここで、みなさんの中には、あれ?じゃあ2013年の間に入社した人はどうなるだっけ?と思うかも知れませんね。ただ、御覧ください。今回の定着率の定義はあくまで最初の時点にいた人が最後までいたか?を出す指標です。途中参加の方は考慮外でした。
(エクセル)前のレクチャーでこのエクセルの例でも説明しました。
終了時点の従業員数 = CALCULATE('_HRメジャー'[全体従業員数],
FILTER('HR',
'HR'[入社日] < FIRSTDATE('Date'[日付]) &&
(
'HR'[退職日] = BLANK() ||
'HR'[退職日] >= LASTDATE('Date'[日付])
)
)
)
では、できたメジャーをテーブルに入れてみましょう。終了時点の従業員数にもコンマを入れておきましょう。
以上、このレクチャーでは、終了時点の従業員数のメジャーを作りました。次のレクチャーでは、仕上げとして、これまでのレクチャーで作ったメジャーより、定着率を計算します。
これまでのレクチャーにて、(テキストを示しながら)こちらの定着率の分子と分母が計算できましたね。では、これらを合わせて、定着率を計算します。
定着率を計算する前に、これまでに作った開始人数と終了人数のクイックチェックをしたいと思います。
まず、できたテーブルの年のすぐ次に、前のレクチャーで作った従業員数を入れます。
すると、御覧ください、1年ずれて開始時点の従業員数と従業員数が一致しています。これはなぜでしょうか?従業員数はある時点の、もっと具体的にいうと、ある時点の最後の時点の従業員です。ここだと、2013年の最後には757名いたってことです。
2013年の最後とはイコール2014年の最初です。ですので、2013年の従業員と、2014年の開始の従業員数は一致しています。まず、これで開始従業員数のチェックができました。
次に終了時点の従業員数。終了時点の従業員の検証は、開始時点の従業員数から、そのメンバーの中で該当の年に辞めた人を除き、メジャーで計算している結果と同じかどうかで検証します。
終了時点の従業員数メジャーをクリックして、数式の中身が出るようにします。その上で、従業員数、開始時点の従業員数、そして終了時点の従業員数のテーブルが見えるようにします。これでスクショをとります。これを、エクセルに貼ります。
簡単に、この開始時点のメンバーの中から、やめた人をフィルターするための条件を簡単に書いておきます。
まず、開始時点のメンバーを出すためには、入社日が開始よりも前ですね。以前ではなくよりも前。
そして、今、終了時点の従業員というのは、退職日がブランクか、最後の日か、それより以降にデータがある人です。
とすると、上記の入社日のフィルターに加えて、退職日が任意の年の開始日と同じかそれより後であり、退職日が最終日よりも前です。
こうして2013年度であれば、この開始時点のメンバー409名の中で、何人が2013年でやめたかがフィルターできます。では、2013年からチェックしてみましょう。データビューで2013年の開始時点からいたメンバーで何名がやめたかをフィルターであぶりだします(2013年29名)。さらに、2020年もしておきます(67名)。(2017年の場合、66名)。
※データビューでの開始時メンバーの中からの退職者、検索条件
・入社日が開始日よりも前
・退社日が開始日と同じかそれより後&&
・退職日が最終日よりも前
はい。終了時点の従業員数も検証できました。
では、検証ができたところで定着率を計算します。
メジャーが格納されるようにHRメジャーの方にいきまして、新しいメジャーです。名前は定着率とします。計算は、こちらのテキストにも示しているように、最後まで残った従業員数を、スタート時の従業員数で割ります。Divide関数を使います。
定着率 = DIVIDE('_HRメジャー'[終了時点の従業員数], '_HRメジャー'[開始時点の従業員数])
メジャーができましたら、書式を整えます。率なのでパーセンテージです。下1桁でいいですね。はい。ではテーブルにいれてみましょう。
こうしてみると、この会社は定着率が良いですね。どの年度も90%を超えています。ただ、実務では、業種によってはある程度の回転があった方が健全、というところもあります。こうした数字をもって、定着率の良さっていうよりも、人材の流動化の悪さ、とみるところもあります。
ただ、いずれにせよ、こうして可視化しないと、そもそも何が最適で、今がどうで、どういう具合に最適に向かうのか?といったアクションは取れません。
以上、このレクチャーでは、人事の3大KPIの一つである定着率メジャーを作りました。次のレクチャーでは、こうして作った定着率メジャーを利用して、ビジュアルを作っていきます。
これまでのレクチャーで、定着率メジャーを作りました。このレクチャーからは作った定着率メジャーを使って、ビジュアルを作っていきます。
作っていきながら、この会社の定着率を深堀していきましょう。一旦今残っているビジュアルは、定義を書いているテキストボックス以外は削除します。
まず、何がなくとも必要なビジュアルがあります。
それは、時間の幅を指定するスライサーです。というのもここにあるように、定着率は?と聞いた時には、いつからいつまで?を語る必要があるからです。
従業員数のページから、スライサーをコピペして持ってきます。すると、同期しますか?と聞かれます。これは、従業員数のページでスライサーを動かすと、同時にこちらの定着率でも動くようにするか?が聞かれています。どちらでもお好みですが、私は、はいにすることが多いです。というのも、従業員のページを見ていて、これって定着率ではどうなんだろ?と思う時、いちいちまた、スライサーをさきほどと同じように設定するのがめんどくさいな、と思うからです。
次に、カードビジュアルを用意して、こちらに主役である定着率を入れます。これで、期間とその時の定着率がバシッとでます。この後、この定着率をいろいろと分析して示していきたいと思います。今、2012年からスタートになっているので、定着率はブランクになっています。定着率メジャーを作る時にもお話した通り、入社日が2012年からリストははじまっている関係で、2012年にスタートした時の従業員が出せないので、こうなるのでした。ですのでスタートを2013年にします。終わりは2019年にしてみましょうか。すると、定着率がバシッとでます。
さて、今、期間を2013年から2019年の間にしており、その時の定着率が83.6%とのことです。これは何を意味しているのでしょうか?定着率の定義を一番左端に持ってきます。
そうですね。これは2013年のスタート時にいた従業員のうち、何パーセントが2019年の終わりに在籍していたか?を示す値です。7年の間で8割以上の従業員が残っているというわけなので、この会社の定着率は相当に高いと思われます。従業員ビジュアルを作っているときに、この会社はIT関係かも知れませんね、という話をしました。ITは人材の回転が速い業界です。それでこの定着率は、よっぽどこの会社は働きやすいんだと思います。
今は、このスライサーの期間で見ていますが、年毎でどういった変化があるのかも見ておきましょう。まず、縦棒グラフでX軸に年、Y軸に定着率を持ってきたいと思います。どうやら、年毎にみても、高い水準をキープしているようです。高い水準というので、良いわけですが、これだと年度毎の微妙な誤差が良く分かりません。そんな時は折れ線グラフにしてみます。Power BIであれば簡単にビジュアルの変更ができますね。
折れ線ビジュアルにすると、一気に変化が際立って見えます。これは、スタート地点がさきほどの棒グラフでは0だったものが92%に変わったからです。
人によっては、こうして変化をミスリーディングだって怒る人もいます。ただ、一方で微妙な変化を見えやすくしている、という人もいます。ですので、こうしたビジュアルを人に見せる時、ないし自分で分析する時も、あくまでスタートは92%で、もともと高い水準にあるってことを断っておくなり、自分で念頭に置いておく必要があります。ミスリーディングだからって、全く使わないのはもったいないです。私自身、実務でもこうした微妙な違いを見つけたことで、突破口になったことが何回もありました。
さて、(従業員ビジュアルを見る)前に従業員ビジュアルを作った時に、左側はビジネス寄りの内容、右側は人口統計的な内容とわけました。それを踏襲して、定着率のページでも、残りのスペースにはビジネス寄りの内容で固めたいと思います。
では、縦棒グラフを作って、そこにX軸に職位、そしてY軸に定着率を入れます。わざわざ自分で入れなくても、ビジュアルに項目を落とせば、Power BIが自動で判断してくれます。こうしてみると、定着率は職位に限らず高く、特にチームリーダーの定着率が良いことが分かりますね。
では、このビジュアルをコピペして、職位の代わりに部署を入れます。部署は、項目名が長めなので、縦棒グラフだと字がつぶれちゃってますね。こんな時は横棒グラフが良いです。こうすると、項目名も見えますし、左にある縦棒グラフとも違いが出ますね。同じグラフが並んでいると、どうしても見えにくくなっちゃうので。
一旦、ここでレクチャーを区切ります。以上、このレクチャーでは、定着率メジャーのビジュアル化を行いました。次のレクチャーでも引き続き、定着率メジャーのビジュアル化を続けます。
このレクチャーでは、前のレクチャーに引き続き、定着率メジャーのビジュアルを作っていきます。
これまで、いくつかのビジュアルを作ってきたわけですが、こちらの残ったスペースでは、ちょっと新しいことを2点やりたいと思っています。(モデリング/新しいパラメータ)こちらのフィールドパラメータという機能。そして、スロープチャートというものです。フィールドパラメーターはPower BIの機能の名前、スロープチャートというのは(Google画面)、ざっくりいうと、折れ線グラフなんですが、簡略化されたものです。
それらの詳しい紹介の前に、このレクチャーでは、下準備として、年齢を年代別で分けておきたいと思います。(テーブルで示す)今、年齢というのは、御覧のようにテーブルで示すと、バラバラです。ここに従業員数を入れてみます。これだと、どういった形で数が散らばっているかわかりにくいです。
年代別で分けるとは、これを20代、30代、40代といった具合に分類するというものです。
ではやっていきます。新しい列をDAXで追加します。テーブルビューに行きまして、HRのテーブルにいきます。そして、列ツールで新しい列です。私の方で、SWITCH式を書きます。
年代 =
SWITCH(
TRUE(),
'HR'[年齢] >= 20 && 'HR'[年齢] < 30, "20代",
'HR'[年齢] >= 30 && 'HR'[年齢] < 40, "30代",
'HR'[年齢] >= 40 && 'HR'[年齢] < 50, "40代",
'HR'[年齢] >= 50 && 'HR'[年齢] < 60, "50代",
'HR'[年齢] >= 50 && 'HR'[年齢] < 70, "60代",
"その他"
)
書いた後に解説します。はい。数式が書けました。使ったのは、SWITCH式です。これはIF式と基本的に同じですね。ただ、IF式のようにこれの時は、これそれ以外はこれのような条件が少ない時ではなく、今回のように条件が多い時に使える数式です。
やっているのは、もし、年齢が20以上で、30よりも小さかったら20代、といった具合にこの年齢以上、これより少ないならこの年代というのを60代まで続けていっただけです。
で、一応今の日本であれば、60代で定年という会社さんが多いので、60代よりも上は、その他としました。もちろん、理論上は10代の社員がいれば、このその他カテゴリーに入りますが、まあ、ここでは考えてなくて良いとします。
これでエンターとすると、新しい列である「年代」ができました。
テーブルに表示してみます。さきほど、年齢で作ったテーブルをコピーして、年齢の代わりに年代を入れてみます。ぐっと分かりやすくなりました。
ちなみに、みなさんが見ている画面と私の画面で、年代別の分布は違うかもしれません。これは、年齢はリストの生年月日をもとに、今日何歳か?計算させているからです。次のレクチャーでは、冒頭にお伝えした新しいことをやるといったことの1つ目。フィールドパラメーターの説明をします。
このレクチャーでは、フィールドパラメーターの紹介をしていきたいと思います。
これ何かといえば、一言でいえば分析の切り口をユーザーが変えられる機能です。もう少し言葉を足します。これまでこちらのスペースには、定着率を年で分けたり、職位、そして部署にも分けましたよね。同じように残りのスペースでも、定着率を理解するためのに、さまざまな切り口で見ていきたいわけです。でも、見る人によっては、年齢で見たい。別の人は性別で見たい。はたまた別の人は学歴でみたいなど、ニーズは様々。これは実務をやられているみなさんはよく直面すると思います。せっかくレポート作ったと思ったら、次の瞬間に「この切り口ないの?」みたいに言われて、イラっとしたことは、私だけではないと思います。
そんな時、今から紹介するフィールドパラメーターをつかえば、ユーザーに切り口を選べるようにすることができます。これは自分が分析をする時にも、いちいち設定を変えずに、瞬時に切り口を変えられるので便利です。
では、実際にみていきます。さきほど作ったテーブルは消しておきます。
モデリングのリボンの新しいパラーメーター。そして、フィールドです。
細かい説明よりも、まずはやってみて完成形をみた方が分かりやすいです。ここでは、選べる分析の切り口を選んでいきます。要は、これら作ったビジュアルでいうところの、年、職位、部署といった切り口です。
HRクエリを開き、頭の学歴から切り口になりそうなものは、チェック入れていきます。さきほど作った年代はもちろん入れます。ちなみに、このフィールド内の順番は動かせます。この順番は何かといえば、後で、切り口を選ぶためのスライサーのようなものが出ます。その順番です。ですので、例えば、部署と部署セクションのような階層になっているものは順番にしておくとわかりやすいですね。ただ、これは別にクリティカルなことではないです。
このページにスライサーを追加する、にチェックがついていることを確認します。そして作成です。
すると、スライサーができます。データの部分を見ると、最後のあたりにパラメーターというのができています。クリックしてみます。DAX式のようなものが出ます。これは別にどうでもよいのですが、お伝えしたいのは、この""の部分です。パラメータとして選んだものがここで出てきています。この""の中は、選んだパラメーターがそのまま入っているだけで、変えることができます。
実務でよくあるのは、データテーブルにて、ヘッダーが英語と日本語混在となっているケースです。例えば、今回は全部日本語で合わせているけど、性別だけいきなりこんな感じで、genderとかなっているケースです。そんな時はここで直接入力すれば変えられます。もちろん私は、もとの性別に戻しておきます。あとは、英語でヘッダーを組んでいる時に、最初の文字が大文字だったり小文字だったりバラバラであるというケース。こういう時、私は時間があれば直しています。
はい。今のスライサーではスペースを取り過ぎなので、書式でドロップダウンにしておきます。さらに複数の切り口を同時に出すことはできませんから、チェックボックスからラジオボタンにしておきます。ラジオボタンは単一でしか選べません。今は、別にスライサーで項目を選んでも、何も起きません。(ここで勤務形態にしておく)
一旦、ここでレクチャーを区切ります。
以上、このレクチャーでは、新しいことを2つやるいった時の1つ目、フィールドパラメーターの紹介と設定を行いました。次のレクチャーでは、スロープチャートの説明に入っていきます。
このレクチャーからは、前のレクチャーで作ったフィールドパラメータを使って、ビジュアルを作っていきます。新しいことをやるといった2つ目のスロープチャートを作っていきます。
まず、フィールドパラメーターを使ってビジュアルを作ります。折れ線グラフをクリックします。
Y軸に主役である定着率。X軸に年を持ってきます。ここで見せたいのは、年毎の定着率です。これだけだと、前に作ったこの年による定着率のグラフと同じです。ここに凡例として、さきほどのフィールドパラメータをもってきます。すると御覧ください。勤務形態の年ごとの定着率が出てきました。で、この勤務形態ってどこから来てるかというと、こちらのパラメータからです。
お察しのとおり、これを別の切り口、例えば性別でやろうと思えば、ドロップダウンで変えるだけです。雇用形態でみると、正社員は徐々にあがっているな、というのが見て取れます。一方契約社員では何かあったのか、2015年で90%を割った時期もあったようです。
はい。これで一旦このビジュアルは、完成です。フィールドパラメータのおかげで、たくさんビジュアルを作ることなく、年度毎の定着率の動きを様々な切り口で分析できるようになりました。
ここでもう一つ役立ちそうなビジュアルを紹介したいと思います。スロープチャートというものです。
グーグルで調べると、折れ線グラフでなんだけど、2点間でどのような変化があったか?を示すもの、とあります。例えば、この会社では、とにかく定着率をあげたいと思っているとします。そして、知りたいポイントとしては、過去に比べて今は良くなっているのか?それとも悪くなっているのか?別の言い方をすれば良い方向に向かっているのかざっくり知りたい、だとします。
この時、現在の折れ線だと途中のウネウネしている動きが邪魔になるわけです。そうではなくて、例えば今だと、2013年から2019年の区間で選んでいます。2013年は何パーセント、2019年は何パーセント。上がっているのか下がっているのか、はたまたステイなのか?バシッと示してよ!これに答えるのがスロープチャートです。個人的には、いさぎの良い折れ線グラフと呼んでいます。
では作っていきます。新しいメジャーを作ります。
名前は、定着率(スロープチャート)とします。カッコは全角です。まず、私の方でメジャーを作って、あとから説明します。
定着率(スロープチャート) =
VAR SelectedYear = SELECTEDVALUE('Date'[年])
VAR MinYear = CALCULATE(MIN('Date'[年]), ALLSELECTED('Date'))
VAR MaxYear = CALCULATE(MAX('Date'[年]), ALLSELECTED('Date'))
RETURN
IF(
SelectedYear = MinYear || SelectedYear = MaxYear,
'_HRメジャー'[定着率],
BLANK()
)
このメジャーは一言でいえば、定着率を任意の期間の最初と最後だけ出すためのものです。
まず変数(バリアブル)を3つ使っています。
最初の SelectedYear は、今このチャートで表示している、選択している年を取得しています。
次に、MinYear と MaxYear で、選択されている範囲の中で一番古い年と一番新しい年をそれぞれ取得しています。つまり、「今このチャートでどこからどこまでの期間を見ているのか?」の始点と終点を定義しているわけです。
ここでポイントなのが、MinYear と MaxYear を求めるときに ALLSELECTED('Date') を使っているところです。
これは何をしているかというと、「今見ているグラフ上で、ユーザーがスライサーなどで選んだ年の範囲全体」をちゃんと把握するための指定です。ALL だけだとフィルターをすべて無視して全体から最小・最大を取ってしまいますが、ALLSELECTED を使うことで、「ユーザーが意図的に絞った範囲」を尊重して、その中での最小年・最大年を取得できます。それってどこかというと、こちらのスライサーで選択している範囲です。
そして、RETURN を入れた後に、
「今表示している年(SelectedYear)が、始点(MinYear)または終点(MaxYear)であれば定着率を表示してください。そうでなければ何も表示しないでください」という IF 文を使っています。
別の言い方をすれば、はじめと終わり以外はブランクにしてね、ということです。
こうすることで、始点と終点だけの定着率だけがグラフに表示され、それ以外の年はブランクになります。その結果、スロープチャートが出したい、2点間の変化だけがすっきりと浮かび上がるわけです。
では、今こちらのフィールドパラメータを利用している方の折れ線グラフに、定着率の代わりに定着率(スロープチャート)を入れていきます。すると、選択している年度の最初と最後だけのすっきりしたグラフになりました。この新しいメジャーも書式をパーセンテージにしておきます。
個人的には、スロープチャートの時には、マーカーが付いた方が、最初と終わりって感じが出るので、書式でマーカーをオンにします。
こうすると、2点間で、定着率がどういう動きをしているのかスッキリわかりますね。実務で注意が必要なのは、今、こうしてメジャーでスロープチャートって示しているように、これは2点間だけをつないでいるっていうのを明示的にする必要があります。
スロープチャートって認知度はまだまだなので、折れ線グラフでこれだけみると、2016年ってここねって思ってしまう人の方が多いです。実際は(メジャーを変える)2016年はこうなっています。スロープチャートというのは、2点間の傾向を見るための簡略したものだ、というのを周知しつつ使っていただきたいと思います。
以上、このレクチャーでは、スロープチャートの説明をしました。
これで人事の3大指標のうち、定着率について、メジャーの作成とビジュアリゼーションができました。次のセクションからは、テーマを離職率にうつします。
引き続き、一緒に学習を進めていきましょう。
いよいよ人事の3大KPIの最後。離職率の計算にこのレクチャーから入っていきます。
離職率)の計算、これまで従業員数、定着率と計算しているおかげで、かなりシンプルに進めることができます。前の数式が利用できるんですね。
ただ、離職率の計算というのは、会社によって若干の違いがあります。このレクチャーでは、このコースで計算する離職率の定義を明らかにしておきます。
新しくページを作ります。名前を離職率とします。
定着率の時もそうでしたが、定義を決めてから、それをメジャーに落とし込む流れです。
(定義をテキストで出しておく「ある期間中に退職した従業員数/平均従業員数」)
定着率の計算は多くの場合で、「ある期間中に退職した従業員数 ÷ 平均従業員数」 という構造です。
ただ、この「平均従業員数」が結構様々です。私がこれまで働いてきた会社の中や、聞いて話によると、ある会社では年末時点の従業員数を簡便的に使っています。ある会社では月次ベースで12カ月の平均をとっていっました。あるいは、折衷案的に、年初と年末の従業員数の平均(2で割る)を使うケースもあります。
今回は個人的には、一番シンプルで、単に最後の数字をとっただけのようなやっつけ感もない、「ある期間のはじめと終わりの平均」を使いたいと思います。
ではテキストも書き直します。
「ある期間中に退職した従業員数/ある期間のはじめと終わりの平均従業員数」
この定義をこれからメジャーに落とし込んでいきます。
以上、このレクチャーでは離職率の定義を行いました。次のレクチャーでは、具体的にメジャーを作っていきます。
このレクチャーでは、離職率計算の分母である、ある期間のはじめと終わりの平均従業員数を計算するメジャーを作ります。
前のレクチャーでは、このある期間のはじめと終わりの平均従業員数とは、期間の最初の従業員数と、終わりの従業員数の平均だ、と定義しましたね。
それをこのテキストボックスに、メジャーに落とし込むにあたって、より数式っぽく反映させたいと思います。
(テキストボックスを書き換える)
ある期間中に退職した従業員数/(ある期間のはじめの従業員数+終わりの従業員数/2)
こうすると、より数式っぽいです。さて、ある期間のはじめの従業員。これって何か見覚えないですか?
はい。HRメジャーのクエリを見てみましょう。ここに「開始時点の従業員数」ってありますね。これは、前のセクションにて、定着率を計算した時に用意したものでした。
これが使えます。
さて、じゃあこちらの終わりの従業員数もこの同じく定着率を計算した時に作った「終了時点の字従業員数」これが使えるかというと...残念ながらこれは使えません。
定着率のページにいきます。定着率の定義のうち、今話題にしているのは、こちらの最後の従業員数です。定着率計算で使った最後の従業員数とは、もともと開始時点で在籍していた従業員数のうちっていう条件がありました。
離職率の計算の時には、こうした条件はなく単純に終わりの時点に在籍している従業員数です。その従業員は開始時点でもいたかもしれませんし、期間中に入社したかもしれません。それをここでは問いません。
じゃあ何が使えるの?また新しいメジャー作るの?と言えばそうではありません。こちらの従業員数メジャーが使えます。なぜならこのメジャーこそある時点の最後の時点に在籍している従業員数を出すメジャーだからです。
では、以上を踏まえて、メジャーを作ります。
HRメジャーをクリックして、こちらに格納されるようにします。
そして、新しいメジャーです。
メジャーの名前は、平均従業員数とします。式は単純に、開始時点の従業員数メジャーと、従業員数メジャー。つまり、期間中の最後の従業員数を足して、2で割ります。
はい。できました。テーブルで見てみましょう。テーブルを用意して、年を入れます。そして、平均従業員数で使ったメジャー。開始時点の従業員数、従業員数、そして今回作った平均従業委員数メジャーを入れます。平均従業員数はコンマを入れておきましょうか。小数点以下がでていますが、一旦このままでいいです。基本的にこの平均従業員数というのは計算要素で、これを全面に出すことはありませんので。
念のためどこかの年で検算しておきます。2021年でいきましょうか。3168+3414/2=3291であってますね。
以上、このレクチャーでは離職率の計算のうち、分母である平均従業員数を出すためのメジャーを作りました。次のレクチャーでは、分子である退職者の人数を計算します。
このレクチャーでも引き続き、離職率を出すためのパーツを用意します。
ここでは、分子である退職者数を計算するメジャーを作ります。
また、こちらのテキストの定義を書き換えて、より数式に落とし込みやすくしたいと思います。
ある期間に退職した人というのは、退職日がある期間の間にある人と言えます。例えば、2013年に退職した人というのは、2013年の最初と最後の日の間で退職した人って言えますよね。
ですので、
ある期間中に退職した従業員数
を書き換えて、
退職日がある期間の最初と終わりの日の間である従業員数
と書き換えます。日本語的には変かもしれませんが、メジャーにはこっちの方が落とし込みやすいです。では、またHRメジャーをクリックして、新しいメジャーです。
メジャーの名前は退職者数とします。
いつもの、CalculateとFilterです。さて今度はどんなフィルターでしょうか。こちらのテキストに書いたように、退職日でフィルタをかけます。最初の日というのはFIRSTDAY、最後の日というのはLASTDAY関数が使えます。
退職者数 = CALCULATE('_HRメジャー'[全体従業員数],
FILTER('HR',
'HR'[退職日] >= FIRSTDATE('Date'[日付]) &&
'HR'[退職日] <=LASTDATE('Date'[日付])
)
)
まず、退職日が対象期間の最初の日か同じかそれよりも後か?を示します。さらに且つ、アンド条件ですので、&&をつけます。&&の後はカッコで囲むのがベストプラクティスです。今回の場合は、ハッキリいっていらないのですが、念のためつけておきます。
では、できたメジャーをテーブルにいれていきます。一応、カンマを入れておきます。
出てきた数字を抜き打ちでチェックしてみます。2014年でやってみましょうか。
テーブルビューにいって、退職日をさきほどのメジャーと同じフィルターで区切ってみます。すると、63行に絞られました。63人が該当ということです。メジャーでも同じく2014年は63名とでているので合っています。
はい。では、フィルターは外しておきます。
レポートビューに戻ります。これで、離職率の計算の分子。退職者数のメジャーができました。
以上、このレクチャーでは、退職者のメジャーを作りました。
次のレクチャーでは、離職率メジャーの仕上げを行います。
これまでのレクチャーにて、離職率の計算のための、分子である退職者数、そして分母である平均従業員数を用意しました。
このレクチャーではいよいよ離職率を計算します。ここまでできたら後は簡単ですね。割り算だけです。
また、作成したメジャーが格納されるようにHRメジャーでクリックした後に新しいメジャーです。名前は離職率とします。DIVIDEを使います。単に退職者数を平均従業員数で割ります。
では、テーブルに入れていきます。書式を整えます。パーセンテージで、小数点は1位だけでいいでしょう。
離職率 = DIVIDE('_HRメジャー'[退職者数],'_HRメジャー'[平均従業員数])
はい。これで離職率も出ました。いずれの年も低めですね。傾向として前に作った定着率。これは高かったですね。まったく同じことの裏返しではないですが、そうなれば離職率も低いハズです。実際こうして低い離職率なので、他のKPIとの関係においても理屈にあっています。
検証の際には、確かに電卓をたたいて検算をするのも大事ですが、今のように、普通にやればこうなるはず、というものを自分にもっておいて、そこから実際の結果をみて、あっている、合ってないをチェックするのは有効です。単に数値のチェックだけだと見過ごされがちなエラーに気づけます。
以上、このレクチャーでは、人事の3大KPIの最後。離職率メジャーを作りました。次のレクチャーでは、こうして作った離職率メジャーを利用して、ビジュアルを作っていきます。
前のレクチャーまでで離職率のメジャーを作りました。
ここからは、離職率メジャーのビジュアル化に入っていきます。残っていたビジュアルは定義を書いたテキストボックス以外は消してしまいます。
そして、離職率に関してもやはりなくてはならないのは、いつの?といった日付を指定するスライサーですね。これまで作ったものをコピペします。これも同期させます。さらにカードも要ります。これももってきます。そして中身を離職率にします。
そして、離職率の定義が書いてあるテキストボックスを画面の左上に持ってきます。離職率というのは、そういうKPIは聞いたことあっても、その定義については意見が分かれるところです。ですので、こうして定義を周知することは大事です。
また、これはお好みですが、このKPIの計算要素を出してあげることも理解の助けになります。カードをコピーします。少し字を小さくします。そしてもう一つこのカードを用意します。左のカードには離職率の分子である退職者数。右のカードには平均従業員数を入れます。こうすることで、この離職率のパーセンテージは、どういった規模でこの数値になっているかの理解を深めることができます。
この離職率というのは、全くの反対というわけではありませんが、定着率と対極にあるものです。ですので、定着率のビジュアルページを踏襲して作りたいと思います。定着率から、棒グラフをコピーします。定着率を離職率に変えます。部署による離職率では、カスタマーサービスが高いようです。これはなんとなくそうだろうな、という気もします。直接お客様の対応するストレス度が高くなる傾向がある大変な部署だと思います。
さらに、定着率のビジュアルページより、年度毎の折れ線グラフをコピペで持ってきます。その後に、メジャーを離職率に変えます。年度毎の傾向としては、離職は低くなっているようです。
さて、みなさんも思ったかも知れませんが、この折れ線を持ってきた時、実際に実務で聞かれた質問があります。
年毎の離職率は1桁パーセンテージなのに、なぜ2013年から2019年の期間だと2桁なのか?何かおかしいのでは?という質問です。確かにそう思いますよね。私も最初そう思いました。
これは、離職率の計算にヒントがあります。離職率の分子である離職者数は、累計的に増えます。2013年から2019年から毎年増えます。一方で、分母の従業員数は平均です。そのため、従業員数がそんなに増えてなければ、分母はあまり変わりません。そのため、期間でみると、分子は累積で増える一方で、分母は一定であるため、桁が変わってくる、大きな数字になるわけです。
例えば、極端な話、2013年から2019年の7年間で、従業員数の平均は100名で一定だったとします。そして、各年度の離職率は5%とします。つまり各年度5名が退職しました。
この時、2013年から2019年の離職率を計算する時、分母の平均従業員数は100名です。ずっと一定の前提ですので。一方で分子の離職者数は、各年度5名で7年分。5X7=35名となります。
この時の離職率は、分母が100で分子が35の35%となる。これが単年度では5%、一桁なのに、期間でみたら35%、二桁になる理由です。
一旦ここでレクチャーを区切ります。
以上、このレクチャーでは離職率メジャーのビジュアル化を行いました。次のレクチャーでも引き続き、ビジュアル化を進めます。
このレクチャーは前のレクチャーの続きです。
離職率のビジュアルを作っていきます。
離職者の数というのは、普通はこれまで作った従業員数や定着率に比べれば少ないです。また、人事の方というのは、個々の離職者のことを覚えてらっしゃることも多いです。ですので、ここで少しパーソナルな情報も入れてみたいと思います。
テーブルを作って、名前、退職日を入れます。どの部署の人かも入れておきましょう。すると、同じ名前の人が異なる部署で何名もいますね。これはエラーではなく、単にダミーデータを作っているときに、十分に名前をバラバラにできなかっただけです。ただ、この状態だとまだ、退職した人もまだ勤務している人の情報も混在しています。ここに、退職率ではなく、その計算のパーツである退職者数メジャーを入れます。そして、退職日のところでソートをかけ、一番直近に退職した人の情報を出すようにします。
さらに退職理由も入れておきます。こうすれば、どういった部署の方が、どういった理由でやめたかが分かりますね。退職者数は、退職者のみを出すためにはこのテーブルに必要ですが、テーブルで見えてなくてもいいですね。ですので、幅を調整して、フレームアウトさせて見せないというのも一つの手です。
さて、この個人リストの中で、退職理由というのが出てきました。退職理由について触れるビジュアルを足したいと思います。
まず、そもそもその退職は、会社都合なのか、それとも自己都合なのか?を示すビジュアルを入れます。このように2つしか示すものが無い時、そして、円グラフのようにあまりスペースを使いたくない時におススメなのが、この100%積み上げ横棒グラフです。X軸に退職者数を入れます。離職率ではないのに注意です。そして、凡例には退職区分を入れます。こうすると、小さいスペースでも、自己都合退職の方が多いのがよく分かりますね。ちなみにここでビジュアル化されているのは、このカードで示している457人の退職者の内訳です。だいたい自己都合のようですが、2割も会社都合がいるというのが分かります。
最後に、退職理由の全体観をビジュアル化します。横棒グラフにして、今回も退職者数です。離職率ではなく。そして、Y軸に退職理由、X軸に退職者数を入れます。はい。これでいいですね。
スライサーを動かすことで、その期間の離職率について、どういった傾向があるのか。具合的にどこの部署の誰がどういう理由でやめたのか。退職区分は理由はどういったものが多かったのかが分かりますね。
これでビジュアルの完成です。
ここでのビジュアルのポイントは、離職率が全体のテーマでしたが、ビジュアルを作る時に入れる数値は、必ずしも離職率そのままではなく、その計算のパーツである退職者数であった、という点です。
ビジュアルを作っていると、私もそうですが、視野が狭くなっちゃって、離職率なんだから、離職率メジャー使わないとダメ。でも、例えばこういう退職区分って離職率でビジュアルできるんだっけ?と詰まってしまうことがあります。そういった時にはこのカードで示したように、離職率の計算のパーツに分け、そのパーツこそが、ビジュアルに入れるべきメジャーではないか?と突破口になることがあります。
これで人事の3大指標のうち、離職率について、メジャーの作成とビジュアリゼーションができました。3大メジャーすべての説明が終わりました。
今回、みなさんと一緒に御覧のような、(エクセルを示す)人事リストから、人事の3大KPIをメジャーで作り、御覧のようなビジュアルに落とし込みました。このコースで触れたテクニックが、みなさんの実務でお役に立てば、こんなにうれしいことはないです。これまでご受講いただきありがとうございました!
【コース概要】
本講座では、人事部門でよく使われる「3大KPI(従業員数・定着率・離職率)」をテーマに、Power BIを使ってデータの可視化を行っていきます。DAXを使ったメジャーの作成方法から、年別推移や離職理由別の分析など、多角的に人事データを読み解くスキルを実践的に学べる内容です。
Excelだけでは見えにくかった人材の動きを、Power BIで鮮やかに可視化してみましょう!
【こんなことができるようになります】
人事で使われる基本指標(従業員数/Headcount、定着率/Retention、離職率/Turnover)の意味と算出方法を理解できる
DAXを使って、定着率・離職率などのメジャーを自分で組めるようになる
部署別・年別・離職理由別など、切り口を変えたレポートを作成できる
スライサーやカード、棒グラフ、表などを組み合わせたレポートページを設計できる
実務で使える「説得力のある人事ダッシュボード」が作れる
【この講座の特徴】
Power BIの入門講座シリーズの続編として、テーマに沿って1つのレポートを最後まで作り上げます
「従業員数って、いつの時点の人数?」「定着率や離職率って、どう定義するのが正しいの?」といった素朴だけど答えにくい疑問に正面から向き合います
従業員数は固定的な数値ではなく、期間や切り口で変わる指標です。この講座では、そうした“定義の揺らぎ”をどうデータとして扱うかに踏み込みます
【こんな方におすすめ】
人事データの見える化に興味がある方
DAXの実践的な使い方を学びたい方
Power BIのレポート設計スキルを伸ばしたい方