Power BIとVisio、SharePointリストを使った座席表を作ってみた

最終的にフリーアドレスでだれがどこに座っているかを表示できるもの作って見たいと思います。今日のところは画面を作ってみる。

#構成を考える
座席レイアウトとどこにだれが座っているかの座席情報をそれぞれ作ります。
座席レイアウトは後で変更しやすいように、Visioで作ってPower BIで表示します。座席情報は複数の人が同時に書き込む事を考えてSharePoint Onlineのリストに書き込むことにします。
Visioの図形とSharePoint Onlineのリストの情報のマッピングには、タイトル(Title)列を使用します。

#進め方

1. Visioで座席レイアウトを作成
    1. Visioで新規図を作成（使用するテンプレートは基本図でよい）
    2. 図に長方形を１つ配置して、[データ]リボンの[図形データウィンドウ]にチェックをつける
    3. 図形データ ウィンドウを右クリックして[図形データの定義...]をクリック
    4. 図形データの定義 ウィンドウでラベルに"Title"を記入して[OK]ボタンをクリック
    5. 図形データ ウィンドウに戻ったら、Titleプロパティに座席名をつける（ここでは DESK1-A1 とした
    6. 作った座席の図形のコピー&ペーストしてレイアウトを作成
    7. ペーストした図形のTitleプロパティをユニークなるように変更 （ここでは DESK1-A2...、DESK1-B1...、DESK2-A1...)<img width="509" alt="floor-4.png" src="https://qiita-image-store.s3.amazonaws.com/0/184453/8f9de4e7-6400-2d49-7d30-fd8d4f129e85.png">
    8. 作成した座席レイアウト図を共有できるようにSharePointサイトのライブラリに保存
2. SharePoint Onlineリストで座席情報を作成
    1. SharePoint Onlineサイトの右上の歯車アイコンをクリックして[アプリの追加]メニューをクリック (クラシック表示の場合はサイト コンテンツ画面から[アプリの追加]をクリック
    2. [カスタム リスト]をクリックして名前を付けて[作成]をクリック (ここでは Floor とつけた)
    3. 歯車アイコンの[サイトコンテンツ]をクリックして作成したリストをクリック
    4. リストの画面で歯車アイコンから[リストの設定]をクリック
    5. リストの設定画面の列セクションで[列の作成]をクリック
    6. [列名]を英数字でつけて[この列の情報の種類]を「ユーザーまたはグループ」を指定して[OK]ボタンをクリック （ここでは、名前に Used を設定）
    7. 一番上までスクロールしてリスト名 (ここではFloor) のリンクをクリック
    8. リスト画面で[+新規]をクリックしてタイトルとUsedを入力して[保存]をクリック (タイトルはVisioのTitleプロパティに合わせる。ここでは、Title に DESK1-A2 をUsed に自分のメールアドレスを入力)
3. Power BI のデータセットにSharePointリストをインポート
    1. Power BI デスクトップを起動
    2. [ホーム]-[データを取得]-[その他...]をクリック
    3. データを取得画面のサイドバーで[オンライン サービス]をクリックして選択
    4. [SharePoint Online リスト]を選択して[接続]をクリック
    5. SharePoint リスト画面にサイトURLを入力して[OK]ボタンをクリック
        1. 接続でエラーが発生した場合は
        2. [ホーム]-[クエリを編集]-[データ ソース設定]をクリック
        3. データソースを選択して[アクセス許可の編集をクリック]
        4. アクセス許可の編集画面で[編集]をクリック
        5. SharePoint画面のサイドバーで[Microsoft アカウント]を選択してサインインして[保存]をクリック
        6. アクセス許可の編集画面で[OK]をクリック
        7. データ ソース設定画面で[閉じる]をクリック
        8. 再度、SharePoint Online リストを選択
    6. ナビゲータ画面で、座席情報のリスト (ここではFloor) にチェックをつけて[編集]ボタンをクリック
    7. PowerQuery エディターが表示されたらプレビューをスクロールして作成した列を探す (ここでは Used)
    8. 作成した列が見つかったら列名の横の展開ボタンをクリック
    9. [(すべての列を選択)]をクリックしてすべてのチェックを外す
    10. [LastName]をクリックしてチェックをつけて[OK]ボタンをクリック
    11. [オーム]-[閉じて適用]をクリック
4. Power BI のレポートにVisioの図形を取り込み
    1. Power BI画面に戻ったら視覚化の[...]アイコンをクリックし[Marketplaceからインポートする]メニューをクリック
    2. Power BI ビジュアル MARKETPLACE画面の[検索]ボックスに「Visio」を入力して検索
    3. Visio Visual の[追加]ボタンをクリック
    4. 視覚化のVisioアイコンをクリック
    5. 追加されたVisioビジュアルを広げる
    6. フィールドのTitleをVisioビジュアルのIDに設定<img width="826" alt="floor-6.png" src="https://qiita-image-store.s3.amazonaws.com/0/184453/e098f96d-ac4e-16b9-656b-1de984da92da.png">
    7. SharePoint ライブラリに保存した座席レイアウトのVisio図ファイルをVisio Onlineで開く
    8. Visio Online画面の[...]-[埋め込み]メニューをクリック
    9. 埋め込み URL をコピー
    10. Power BI デスクトップに戻り、[Open the diagram in a browser and copy the URL.]枠にペーストして[Connect]ボタンをクリック
    11. フィールドの{列名}.LastName (ここでは Used.LastName)をVisio ビジュアルのValuesに設定
    12. Visio ビジュアルのField Mapping上の[<]アイコンをクリック
    13. [Horizontal Position]をCenterに
    14. [Vertical Position]をMiddleに
    15. [Show Label]をOffに
    16. [Value Font Size]を調整<img width="217" alt="floor-7.png" src="https://qiita-image-store.s3.amazonaws.com/0/184453/30dc680d-8f03-5489-ba3b-d790d2549fc8.png">

#参考

以下のページを参考にしました。
[Power BI レポートに Visio のビジュアルを追加する](https://support.office.com/ja-jp/article/power-bi-%E3%83%AC%E3%83%9D%E3%83%BC%E3%83%88%E3%81%AB-visio-%E3%81%AE%E3%83%93%E3%82%B8%E3%83%A5%E3%82%A2%E3%83%AB%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B-4f09be62-f436-45c2-93b0-4a0f66b1f5a7 "Power BI レポートに Visio のビジュアルを追加する")