2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PowerBIで装置ごとの管理図をテンプレート化する方法

Posted at

はじめに

製造ラインでは、品質データや設備データのトレンド監視に 管理図(Control Chart) を用いる場面が多くあります。
しかし、装置ごとにデータ形式や列名が異なるため、Power BIで毎回ゼロから管理図を作成するのは非効率です。

そこで今回は、Power BIで装置ごとの違いに柔軟に対応できる 管理図テンプレート.pbit を作成する方法をご紹介します。

実現したいこと

以下のような課題に対応できるテンプレートを作成します。
①データの参照先が装置ごとに異なる
②トレンド監視するデータの列名が装置ごとで異なる
③グラフのタイトルを装置に応じて動的に変えたい

インポートするデータフォーマット検討

PowerBIのテンプレート化をするにあたり、まずインポートするデータのフォーマット化を検討した。
インポートするデータはcsvとし、
csvが一つのフォルダーに複数格納されているとする。
データ列は以下の並びとした。

日付 数値 数値 数値 数値 数値 数値
列名称 日付 データ01 上限値01 下限値01 データ02 上限値02 下限値02
意味合い 日付 傾向監視するデータ データ01の上限値 データ01の下限値 傾向監視するデータ データ02の上限値 データ02の下限値

※装置によって、各列の意味合いは変わらないが、列名称は異なるとする

CSVフォルダ参照をパラメータ化する

データの参照先をパラメータ化することで、PowerBIテンプレートを開いた際にユーザに参照先を入力させることができる。

手順

1.フォルダをPowerBIに読み込ませ、フォルダの展開まで行う
image7.png
2. PowerQueryで「ホーム」→「パラメータの管理」→「新規作成」
3. 名称を以下のように設定(名称は任意)
名前:SourceFolder
説明:データ参照先フォルダ
種類:テキスト
提案された値:任意の値
現在の値:サンプルデータの仮の参照先
image10.png
4. 「ヘルパークエリ」→「サンプルファイル」の「ソース」ステップのファイル名を”SourceFolder”に変更
image8.png
5.サンプルデータの「ソース」ステップもファイル名を”SourceFolder”に変更
image9.png

異なる列名をPowerBIで共通して利用する列名に変換

PowerBI上のデータとして列名は同じにしておかないと、毎回グラフのデータ設定をする必要がある。しかし、インポートするデータのヘッダー名は装置ごとで異なるため、PowerQuery上で毎回同じヘッダー名に変更する処理を入れる。

変更後のヘッダーは以下とする

  • 日付
  • 値1
  • 上限値1
  • 下限値1
  • 値2
  • 上限値2
  • 下限値2
  • 値3
  • 上限値3
  • 下限値3

手順

  1. 「ヘルパークエリ」→「ファイルの変換」を以下に変更する。
    image11.png
= (パラメーター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. サンプルデータを複製し、再度csvの展開まで行う(データ名称:列名マスタ)
    image.png

  2. 「変換」→「テーブル」タブ→「ヘッダーを1行目として使用」を選択

  3. 「変換」→「テーブル」タブ→「入れ替え」を選択

  4. 「変換」→「テーブル」タブ→「1行目をヘッダーとして使用」を選択
    これにより、各列名称が行になっている列がを作成できる

  5. 1列目の列名称を列名にする
    image2.png

  6. 1列目以外を削除

  7. 「列の追加」→インデックス列→1から を選択
    このインデックスを用いて、管理図のタイトル名称のフィルターを行う

  8. 「閉じて適用」とし、データ読み込み

  9. 「テーブルビュー」→列名マスタで列を追加する
    関数は、以下とする。

    タイトル名称 = '列名マスタ'[列名] & "のトレンド" 
    
  10. 折れ線グラフの配置
    X軸:日付
    Y軸:値1、下限値1、上限値1

  11. 「ビジュアルの書式設定」→「全般」→「タイトル」の関数を選択→基準にするフィールドを9.で作成した「タイトル名称」にする
    image4.png

  12. ビジュアルでのフィルターに「列名マスタ」の「インデックス」を入れ、値を2に設定する
    列名マスタの2行目が管理図で管理する予定のデータ名称になっているため。

image5.png

  1. 他のデータも同様に折れ線グラフの配置から行う
    14.名前を付けて保存を行う際に、PowerBIテンプレートファイルを選択して保存する
    image6.png

以上でpowerBIテンプレートを利用して管理図を作成する工数の削減を行いました。
ぜひやってみてください。

最後まで読んでいただきありがとうございます。
ご意見、ご感想もお待ちしております。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?