はじめに
製造ラインでは、品質データや設備データのトレンド監視に 管理図(Control Chart) を用いる場面が多くあります。
しかし、装置ごとにデータ形式や列名が異なるため、Power BIで毎回ゼロから管理図を作成するのは非効率です。
そこで今回は、Power BIで装置ごとの違いに柔軟に対応できる 管理図テンプレート.pbit を作成する方法をご紹介します。
実現したいこと
以下のような課題に対応できるテンプレートを作成します。
①データの参照先が装置ごとに異なる
②トレンド監視するデータの列名が装置ごとで異なる
③グラフのタイトルを装置に応じて動的に変えたい
インポートするデータフォーマット検討
PowerBIのテンプレート化をするにあたり、まずインポートするデータのフォーマット化を検討した。
インポートするデータはcsvとし、
csvが一つのフォルダーに複数格納されているとする。
データ列は以下の並びとした。
| 型 | 日付 | 数値 | 数値 | 数値 | 数値 | 数値 | 数値 |
|---|---|---|---|---|---|---|---|
| 列名称 | 日付 | データ01 | 上限値01 | 下限値01 | データ02 | 上限値02 | 下限値02 |
| 意味合い | 日付 | 傾向監視するデータ | データ01の上限値 | データ01の下限値 | 傾向監視するデータ | データ02の上限値 | データ02の下限値 |
※装置によって、各列の意味合いは変わらないが、列名称は異なるとする
CSVフォルダ参照をパラメータ化する
データの参照先をパラメータ化することで、PowerBIテンプレートを開いた際にユーザに参照先を入力させることができる。
手順
1.フォルダをPowerBIに読み込ませ、フォルダの展開まで行う

2. PowerQueryで「ホーム」→「パラメータの管理」→「新規作成」
3. 名称を以下のように設定(名称は任意)
名前:SourceFolder
説明:データ参照先フォルダ
種類:テキスト
提案された値:任意の値
現在の値:サンプルデータの仮の参照先

4. 「ヘルパークエリ」→「サンプルファイル」の「ソース」ステップのファイル名を”SourceFolder”に変更

5.サンプルデータの「ソース」ステップもファイル名を”SourceFolder”に変更

異なる列名をPowerBIで共通して利用する列名に変換
PowerBI上のデータとして列名は同じにしておかないと、毎回グラフのデータ設定をする必要がある。しかし、インポートするデータのヘッダー名は装置ごとで異なるため、PowerQuery上で毎回同じヘッダー名に変更する処理を入れる。
変更後のヘッダーは以下とする
- 日付
- 値1
- 上限値1
- 下限値1
- 値2
- 上限値2
- 下限値2
- 値3
- 上限値3
- 下限値3
手順
= (パラメーター1 as binary) => let
ソース = Csv.Document(パラメーター1,[Delimiter=",", Columns=10, Encoding=65001, QuoteStyle=QuoteStyle.None]),
ヘッダー昇格 = Table.PromoteHeaders(ソース, [PromoteAllScalars=true]),
// 現在の列名を取得
現在の列名 = Table.ColumnNames(ヘッダー昇格),
// 共通の新しい列名(順番で対応)
新しい列名 = {"日付","値1","上限値1","下限値1","値2","上限値2","下限値2","値3","上限値3","下限値3"},
// 対応ペアを作成
列名ペア = List.Zip({現在の列名, 新しい列名}),
// リネーム実行
リネーム = Table.RenameColumns(ヘッダー昇格, 列名ペア)
in
リネーム
管理図タイトルを動的に変える仕組み
管理図のタイトル名称にインポート元のデータ列名称を参照することで、装置に適した名称に動的に変更できるようにする。
手順
-
「変換」→「テーブル」タブ→「ヘッダーを1行目として使用」を選択
-
「変換」→「テーブル」タブ→「入れ替え」を選択
-
「変換」→「テーブル」タブ→「1行目をヘッダーとして使用」を選択
これにより、各列名称が行になっている列がを作成できる -
1列目以外を削除
-
「列の追加」→インデックス列→1から を選択
このインデックスを用いて、管理図のタイトル名称のフィルターを行う -
「閉じて適用」とし、データ読み込み
-
「テーブルビュー」→列名マスタで列を追加する
関数は、以下とする。タイトル名称 = '列名マスタ'[列名] & "のトレンド" -
折れ線グラフの配置
X軸:日付
Y軸:値1、下限値1、上限値1 -
「ビジュアルの書式設定」→「全般」→「タイトル」の関数を選択→基準にするフィールドを9.で作成した「タイトル名称」にする

-
ビジュアルでのフィルターに「列名マスタ」の「インデックス」を入れ、値を2に設定する
列名マスタの2行目が管理図で管理する予定のデータ名称になっているため。
以上でpowerBIテンプレートを利用して管理図を作成する工数の削減を行いました。
ぜひやってみてください。
最後まで読んでいただきありがとうございます。
ご意見、ご感想もお待ちしております。




