#きれいな帳票形式をカンタンに作りたい
四半期ごとの帳票形式での報告書作成をカンタンに作りたくて、Power Queryの勉強を始めました。
Power BI 勉強会方面で、2019年7月にPower BI Report BuilderがPremiumライセンスでなくても使えるようになった(*1)と読んで試してみました。
以下は2019年8月のPower Query 秘密特訓「虎の穴」#5に参加した際の発表の一部について、2019年9月リリース Report Builder 15.0.1425.0 で再確認した結果です。記事用データとして、Qiitaで公開いただいている記事(*2)から、地区都道府県データを拝借しています。
参照先:
(*1) Power BI Premium がなくてもローカルなら Paginated Report (帳票) が作れる!
(*2) [Power Query エディターで作成したクエリを保存するには]
(https://qiita.com/PowerBIxyz/items/9aef1dc5778227cc754e)
#PremiumやProでなくても使えるか?
無償ライセンスのPower BI Desktopでも、レポートをワークスペースに発行してしまえば、Report Builderでデータソースとして指定できました。当然ですが、無償版ではワークスペースを共有できないので、Report Builderへデータソースとして取り込めるのは自分だけ、です。
Report Builderの操作は、2019年7月下旬に公開されたチュートリアルを参考にしました。
Use shared datasets in Power BI Report Builder
##Power BIで集計しワークスペースへ発行
あらかじめ、Power BI Desktopでレポートを作り、ワークスペースに発行しておきます。
無償版ライセンスだと、宛先は「マイ ワークスペース」だけが表示されるのでそのまま選んでOKで発行します。「成功しました!」と表示されたら準備完了です。
Power BI Desktopは開いたままにしておきます。
##Report Builderへの取り込み
以下はおおよその流れなので、詳しくはチュートリアルでどうぞ。
-
Report Builderを立ち上げ、作業の開始ダイアログで"空のレポート"をクリック
-
発行しておいたワークスペースのデータソースへ接続する
2-1. 左サイド[レポートデータ]ペインのデータソースを右クリック
2-2. 「Power BIデータ接続設定の追加...」を選び、ワークスペースから選択 -
BI Desktopのテーブルでクエリをコピーする
3-1. 表示タブで、Performance Analyzerにチェック
3-2. 記録の開始 → ビジュアルを更新 → テーブルの"+"を展開 → クエリのコピー
-
クエリデザイナーを開く
Report Builderで、2.で接続したデータソースを右クリックし、データセットを追加...を選んでクエリデザイナーを開きます。 -
DAXクエリを貼り付ける
クエリデザイナーでデザインモードの選択を外し(緑線で囲んだアイコンをクリック)、3.でコピーしておいたクエリを右上ボックスに貼り付けます。
Power BIのレポートの裏で動いているDAX式がばっちり見えて感動です。
DAX式を観察したら、OK→OKと順次クリックして、クエリデザイナーとデータセットのプロパティを閉じます。
-
Report Builderのレポートにテーブルを配置する
Report Builderの挿入タブにある、テーブルメニューから、テーブルウィザードを開きます。4.で追加したデータセットを選択して、値ボックス等にドラッグして配置します。小計などのオプションはウィザードがガイドしてくれます。
日本語データの場合、ウィザードを閉じたら、フォントだけはメイリオ等に設定しておくといいです。デフォルトのフォントのままだとレポートを実行しても文字の位置に□が並ぶだけで、うまくいけたか分かりません。練習中は英語データを用意するとラクかも。 -
Report Builderで「ホーム」タブにある実行をクリック
書式などをあれこれ調整する前に、いったんデータセットの集計を実行してみる方がいいと思います。 -
結果を見て、書式設定を試行錯誤する
実行結果が表示された「実行」タブのリボン部分にあるデザインや、印刷レイアウトをあれこれ試します。- デフォルトのフォントをメイリオ等に設定できるのかは分かりませんでした。
- 重なったアイテムはマウスでは選択しにくいですが、ESCキーで選択アイテムが切り替わります。
フィルター付きのテーブルなら、Report Builderでもフィルターが実行された状態でレポートができます。フィルター条件を変えたいときは、クエリを貼り付け直しました。Report Builderの中でのTablixのプロパティ設定という道もありそうですが今回は省略。
#レポートの出来栄えは...
SQL Serverの心得もなにもない初めてさんが試せた範囲では、Power BIのような見栄えのよいレイアウトの帳票を作れませんでした。
Power BI Desktopでは、フィルターや値、凡例にさくさくとドロップしてすぐに結果が見えますが、Report Builderのウィザードは設定をあれこれしたら、実行してみないと期待の集計ができているか分かりません。設定直後に表示されるプレビューは、実行結果とは別で、いれものの区別がつく程度という感じでした。
そして、ウィザードの設定が直感的か?というと、たとえば、BIの環状グラフで凡例フィールドに置くだけでよかった"地方"は、Builderでは値の集計関数としてFirstを指定(DAX実行結果の先頭の値を指定?)して、ようやくグラフで凡例として表示されました。
一度ウィザードを閉じてしまうと、レポートアイテムに対して再度ウィザードを開くことができないようで、何度も削除しては作り直しすることになりました。
BIからコピーしてきたDAXをきちんと理解できていないから、無駄に反復してしまうのかと思いました。
// DAX Query
EVALUATE
TOPN(
1002,
SUMMARIZECOLUMNS('地方都道府県'[地方], "Count都道府県", CALCULATE(COUNTA('地方都道府県'[都道府県]))),
[Count都道府県],
0,
'地方都道府県'[地方],
1
)
ORDER BY
[Count都道府県] DESC, '地方都道府県'[地方]
集計以外では、挿入したテーブルの行数などは実行してみないと分からないこともあり、列名と並び順だけで書式やレイアウトを設定するのが難しかったです。些末ですがフォント指定時のリストの並び順が、Officeとは違って残念でした。
なんとか形になったグラフは、Power BIとは異なる懐かしいExcel風ですが、頑張り甲斐がいまひとつ...
帳票ではあまりグラフは使いませんが、テーブルも似たり寄ったりだったので、いまのところ帳票形式ならば、Excel+Power Queryの方がラクにレイアウトできると思います。
Power BIとRepoer Builderとで書式メニューなどが統一されたり、レポートアイテムのビジュアルをインポートできるようになると面白いので、様子を見て再挑戦かな?
いろいろ試行錯誤していると、すぐワークスペースへの接続がタイムアウトし、そのつどReport Builderを再起動していたので、まずはタイムアウト設定を探した方がよさそうです。