「Excelの数字が変わっていますけど、どこをどう更新しました?」仕事中によく聞かれるやり取りだ。1つのファイルを複数人が扱う場合、誰がどこをいじったのかが分からなくなることはよくあることだ。今回は、この問題を解消する方法を解説する。
1つのExcelファイルを複数人で更新した場合、「誰がいつどこのデータをどのように更新したのか」が不明瞭になりがちです。今回は、営業部の実績管理表を例に、更新前と更新後の差分の抽出方法と、Excelと「Microsoft Power BI」を連携させて差分抽出を自動化する方法を説明します。
Excelで管理している「営業1部2課」の第4四半期の実績について、更新前と更新後の実績数値の差分を知りたい。
図1と図2は営業部ごとの実績値をまとめたものです。図1は過去のデータを示す「テーブル1(2)」で、図2は更新された最新データを示す「テーブル1」です。
図1のテーブルに対して、図2のように赤枠部分が更新されました。この赤枠(変更箇所)を抽出して、図3のようにまとめる方法を見ていきましょう。
まず新しいExcelファイルを作成して、「データ>データの取得」で過去のデータ「テーブル1(2)」と最新データ「テーブル1」の2つのテーブルを読み込みます(図4)。
読み込むExcelブックを選択すると「ナビゲーター」ダイアログが表示されます。テーブルを選択して「読み込み先…」で、過去データテーブルと最新データテーブルそれぞれを同じシートに読み込みます(図5)。
これで、1つのExcelファイルに図1と図2のテーブルが読み込めました(図6)。次に、データの差分を計算するテーブルを作成します。ここで説明する方法は読み込むテーブルのデータを転記する方法であり、1対1で部署が用意できる場合に有効です。部署の統廃合が発生する場合は、この方法は使えないため注意してください。
更新前のデータと更新後の最新データについて、同一の部署情報を基に1つにまとめていきましょう。次の手順でテーブルの結合と行ごとの計算を行います。
テーブルの結合には「データ>データの取得>クエリの結合」と進み、「マージ」をクリックしてクエリの結合機能を利用します。
今回は、部署数が変わった場合を想定して結合の種類を「完全外部(両方の行すべて)」にします。統合する2つのテーブルを選択して、それぞれのテーブルで結合のキー(一意の部署情報)とする「No」「部署」「課」を選択します。「Ctrl」キーを押したままクリックすると複数選択が可能です。
クエリを結合すると「Power Queryエディター」が起動します。最新データのテーブルが「1Q」「2Q」「3Q」「4Q」の列で展開され、過去データ「テーブル1(2)」の列ができました。「テーブル1(2)」の列の展開ボタン(図9の囲み部分)をクリックします。
次に、展開する列を選択します。展開する列とは差分を確認する項目であり、結合する際にキーとして使用した項目は不要です。ここでは「1Q」「2Q」「3Q」「4Q」を選択します(図10)。
過去データのテーブルが「1Q.1」「2Q.1」「3Q.1」「4Q.1」の列として展開されました。次に、差分を計算する列を追加します。「列の追加」タブで「カスタム列」を選択します。
カスタム列では、展開された列のデータを使って計算します。ここでは、カスタム列に差分の計算式を入力します。まずは「1Q差分」の列を作成して、最新データ「1Q」と過去データ「1Q.1」の差分を計算します。カスタム列の式に「=[1Q]-[1Q.1]」と入力します(図12)。「使用できる列」から挿入すると、簡単に式が作成できます。
同様に2Q、3Q、4Qの差分の列を追加します。カスタム列が作成できたら、差分を計算するための元データは不要なので、列を削除して「ホーム>閉じて読み込む」を選択します(図13)。
Power Queryを閉じると、差分データのみを抽出するテーブルが作成されました(図14)。この差分データは、過去データの「テーブル1(2)」と最新データの「テーブル1」のデータを元に計算しています。別ファイルにある元データに変化があった場合は、更新ボタンをクリックすることで差分データを最新の状態に更新できます。
ここで説明した方法で差分抽出のテーブルを作成した場合、元データが更新された時は手動で更新する必要があります。「Microsoft 365 E5」に付属する「Microsoft Power BI Pro」を利用すれば差分情報をWeb化できます。また、「Microsoft Power Automate」と連動させることで過去データの更新に加えて、最新データもメンテナンスできるので、差分チェックも自動化できます。
今回はPower BI ProでのWeb化は行わず、無料版のPower BI Desktopを使ってデータを閲覧する方法を見ていきましょう。
まず、Excelデータの格納場所を用意するために「Microsoft SharePoint Online」のドキュメントライブラリを作成します。「Microsoft Teams」のチームに過去データと最新データのファイルをアップロードすることで、ドキュメントライブラリを簡単に作成できます(図15)。ここではTeamsを使った、基になるExcelファイルの展開方法を説明します。
Power Automateを使ってファイルの自動更新を設定します。図16のようにTeamsのチームからSharePointに移動します。
SharePoint Onlineのドキュメントライブラリが表示されたら、「統合>Power Automate>フローの作成」を選択します(図17)。
右側の情報バーに「フローの作成」が表示されたら「フローの表示」をクリックします(図18)。
Power AutomateのサイトがWebブラウザから起動します。Power Automateの「マイ フロー」で、「新しいフロー」の「スケジュール済みクラウド フロー」を選択します(図19)。
「スケジュール済みクラウド フロー」を使うと、一定間隔でフローを実行できます(図20)。Power Automateはライセンスによって単位時間に起動可能な回数が異なるため、ライセンスを確認して起動回数がオーバーしないように実行間隔を設定するよう注意が必要です。万一、起動回数がオーバーとなった場合は起動可能となるまで動作が停止します。
フローを実行する「開始日」「繰り返し間隔」など詳細を設定して「作成」ボタンをクリックすると新しいフローが作成され、繰り返し操作として「Recurrence」が設定されます。次にPower Automateを「GUIで操作」を選択してフローを組み立てます。操作の選択画面でSharePointを選択すると、SharePointのアクションを設定できます(図21)。
「ファイル コンテンツの取得」で最新データのファイルコンテンツを取得し、「ファイルの作成」で過去データのファイルを作成します(図22)。SharePointでは「別名でファイルを保存する」項目は選択できません。元のファイルコンテンツを取得した後にその内容をパラメータにしてファイルを作成することで別名保存できます。「ファイルの作成」では同名の既存ファイルがある場合は上書きされるため注意が必要です。
これで定期的に最新データのファイルが、過去データのファイルとして自動的にコピーされるようになりました。
次にPower BIを使って更新前と更新後のデータの差分をダッシュボードに表示させる方法について説明します。
Power BI Proは「Microsoft 365 E5」のライセンスで利用できます。1日に8回までの更新を自動化でき、Webから差分データを確認する設定が可能です。Power BI Proのライセンスがない場合は、無料で利用できる「Microsoft Power BI Desktop」を利用することで同様の操作が可能です。Power BI Desktopは「Microsoft Store」からダウンロードできます(図23)。Power BIという別アプリもあるので注意しましょう。ここではPower BI Desktopを利用した方法を説明します。
Microsoft Store からPower BI Desktopをダウンロードし、インストール後に「開く」をクリックして起動させます(図24)。
Power BI Desktop起動後に「作業の開始」ダイアログが表示されたら、「データを取得」をクリックします(図25)。
「SharePointフォルダ」を選択して「接続」ボタンをクリックし、SharePointに接続します。
「SharePointフォルダ」の「サイトURL」に、SharePointサイトのURLを入力して、「OK」ボタンをクリックします。サイトのURLは以下の形式で入力します。
https://□□.sharepoint.com/sites/〇〇
SharePointサイト内のファイルが表示されたら、「データの変換」ボタンをクリックします(図28)。
するとPower Queryが表示されます。「クエリ1」でアップロードした2つのファイルが表示されます。過去データのファイル「5章_過去データ.xlsx」の「Content」列にある「Binary」をクリックします(図29)。
ファイル内のコンテンツ「テーブル1」が表示されるので、「Data」列にある「Table」をクリックします(図30)。
最新データも同様の設定をします。同じSharePointサイトにアップロードしたので、「ホーム>最近のソース」から選択できます。
ここからの作業は先述のテーブルの統合と同様です。クエリをマージして差分抽出に必要な列を抽出します(図32〜37)。
これでクエリの準備ができました。次にPower BI Desktopのページを作成します。ページは複数のデータを作成できるダッシュボードになっています。前述の方法と同じフローで作成するにはテーブルで構築するとよいでしょう。テーブルアイコンをクリックします(図38の囲み)。
デスクトップにテーブルが追加されたら、画面右側に表示される「フィールド」から
表示したい列を選びます。選択した列は、選択順にデスクトップのテーブルに表示されます。
データを更新したい場合は、「更新」ボタンをクリックすることでExcelのデータが更新されます(図39)。
Power BIは読み取り専用のツールでありExcelのようにデータを操作できないため、ファイルを展開して安全に情報共有することが可能です。また、Excel以外のデータソースとも連携が可能です。フィルター類と合わせて利用すれば情報の一元管理が容易となります。Power BIは操作が簡単で高機能なツールなので覚えておくといいでしょう。
昨今の潮流として、外部接点の強化を目的にSoE(System of Engagement)への投資が集中する一方で、SoR(System of Record)や SoI(System of Insight)などの社内向けシステムは現場主導で進められるケースが増えました。その背景にはPower Platformなどのローコード/ノーコードツールによる市民開発が定着したことがあります。こうしたツールの台頭によってデータ分析や集計作業は容易になりましたが、重要なのは目的やシーンによって使うツールを使い分けながら、最適な手法で業務を進めることです。ツールの使い方を決めるのは利用者となる皆さんです。今回の連載が、読者皆さまにとって参考になれば幸いです。
Copyright © ITmedia, Inc. All Rights Reserved.
製品カタログや技術資料、導入事例など、IT導入の課題解決に役立つ資料を簡単に入手できます。