データソースの変更でレポートを作り直した経験はないでしょうか?
データソースの設定は地味ですが運用上一番重要です。
この記事では
を紹介します。
細かいノウハウの積み重ねで、作業工数を大きく減らせますのでぜひ読んでください。
Excelファイルの売上明細の情報をサンプルとして取り込みます。
データソースの設定手順
この手順だけ見るとデータソースの設定は簡単に見えます。
ですが簡単に取り込めるように下準備が必要です。
データ準備の2つのチェックポイントを紹介します。
ポイント1 シート名にはわかりやすい名前をつける
Excelのシート名でPower BIに取り込まれます。
「sheet1」でなく、わかりやすい名前をつけましょう。
Power BI上でも変更できます。
ですが、作り直すたびに手修正が必要となるのでたいへんです。
ポイント2 数字型か日付型の項目をいれる
数字型か日付型のデータがあるとヘッダーを自動認識してくれます。
ヘッダーを設定する手間を省くことができます。
ヘッダーを自動認識する別の方法
実は2つのチェックポイントをしなくてもきれいに取込める方法があります。
それはExcelの「テーブル機能」です。
そちらについて解説します。
機械からみるとExcelのどのセルを取り込めばいいか判断が難しいです。
データ範囲を定義して他のツールからテーブルとして扱いやすくする機能です。
設定しないとおきる問題点を知りたい方は[Excelのテーブル設定をしないといけない理由]の記事を参照してください。
Power BIの取り込み画面はこのように変わります。
データの更新は「更新」ボタンで可能です。
次の2つの変更について説明します。
「1. Excelファイルの保存場所かファイル名を変更した」場合
データソースの設定を変更します。
「2. Excelデータの項目を追加や削除、項目名の変更した」場合
「更新」を実行すると最新の項目一覧が反映します。
項目の追加削除をPower BIからしないこと
データやモデルの画面に項目の追加や削除の項目があります。
ここで変更するとエラーになるので、ここでは操作しないでください。
データの取得はPower Queryというツールで行っています。
Power BI上の項目削除や項目名変更の操作はPower Queryに記録されます。
エラーを修正するには、Power Queryで変更しないといけなくなります。
毎月締めデータを特定のフォルダに保存することは運用上よくあります。
2020_5月度_売上.csv
2020_6月度_売上.csv
2020_7月度_売上.csv
といったファイルの保存方法です。
これを一括でロードする手順を紹介します。
データソースの設定で「フォルダ」を選ぶとできます。
以上で設定は終わりです。
取り込んだ後のデータをみると5,6,7月のデータが結合されて取り込まれてました。
csvファイルを取り込みましたが、Excelでも大丈夫です。
他の種類のファイルと交じるとうまくとれない事があるので、ファイルの種類は統一してください。
相対パスを使うのは主に次の2ケースです。
結論から言うと相対パスの指定は、私の知る限りできません。
暫定としてパラメータを使う方法を紹介します。
手順:パラメータにして、起動時に設定する
の2つの設定をします。
データソース設定から始めます。
Power Queryの画面が表示されるので、Pathを保存するパラメータを追加します
4.「パラメータの管理」を選択
5.「新規作成」リンクをクリック
6. パラメータ設定をします
作成したPathのパラメータをコードに埋め込みます
元のコード
= Excel.Workbook(File.Contents("c:\Temp\PowerBI\売上.xlsx"), null, true)
変更後のコード
= Excel.Workbook(File.Contents(FilePath & "\売上.xlsx"), null, true)
終わったら「閉じて適用」をクリックして、Power Queryの画面を閉じます。
最後にPower BIをテンプレートファイルとして保存します
保存したテンプレートファイルを開いてください。
FilePathの入力を促すダイアログがでます。
利用者には最初に必ずFilePathを入力してもらいます。
これがテンプレートファイルの動きです。
データソースの設定でよく使うExcelやcsvで説明しました。
Power BI上で定義を変えないようにするのが操作を簡単にするコツです。
データソース作成時
データソース変更時
データソースの設定は、創意工夫で運用コストを大きく削減できる部分です。
の2つの例を今回紹介しました。
よく使われる運用パターンがありましたら、また紹介します。