Power BI で使っていない列を削除する方法

# はじめに
Power BI には様々なサードパーティ製ツールがありますが、今回ご紹介する Measure Killer は、不要なメジャーや列を簡単に見つけ出して削除するツールです。この「**不要な**」というのがポイントで、メジャーだけでなく列やテーブルも含めてレポート内で使用されているかどうかを一発で検出してくれます。

https://en.brunner.bi/measurekiller

素晴らしいことに、すべてのオフライン機能は、個人的にも商業的にも無料で使用できます。
これは、Power BI Desktop ファイル (.pbix) に対する操作は無料の範囲でできるということです。
有償の機能には、メジャーなどを削除するだけでなく、テナント内の Power BI アイテムの管理に関するあらゆることができるようになっているので、組織の Power BI 管理者の方が泣いて喜ぶ機能が満載です。
サイトを見ると (公開日時点で) 年間599スイスフラン (日本円で12万円くらい) で利用できるようですが、この記事では無料で使える**使用されていないメジャーや列を削除する**機能にフォーカスして紹介します。

# なぜ使っていないメジャーや列を削除するのか
Excel などのファイルからデータを集めて可視化しているくらいであれば、セマンティック モデルに多少の使っていない列が含まれていても、大した問題ではありません。ところがこれが [Viva Insights のテンプレート](https://learn.microsoft.com/ja-jp/viva/insights/advanced/analyst/templates/introduction-to-templates)のように、組織の数千～数万人ものユーザーの働き方に関するログを1年分集めて分析するともなると、自分たちが見たいのはいくつかのレポートページだけなのに、データ項目が多すぎて整理がつかないということがあるかと思います。レポートサイズの肥大化により、レポートのメンテナンスやセキュリティ (見せたくない項目がレポートに含まれていないか)、ストレージやメモリ、コンピューティング リソース (CU) の消費などの面で問題となってきます。Power BI のガイダンス資料の [インポート モデリングのデータ削減手法](https://learn.microsoft.com/ja-jp/power-bi/guidance/import-modeling-data-reduction) では、余計な列を削除することが、まず最初に挙げられていることからも、重要性が分かるかと思います。

https://learn.microsoft.com/ja-jp/power-bi/guidance/overview

メジャーについては、使用される時に計算されるので、それ自体はあまり問題にならないのですが、その元となる列の削除可否に関わってきます。

メジャーと似て非なるものが **計算列 (Calculated Column)** です。メジャーと同様に DAX 式で定義するのですが、セマンティック モデルの更新時に計算処理が実行されます。Power Query エディターで列を作成するのと比較して**圧縮率が低く**なりますし、更新にかかる時間も長くなる可能性があります。削除効果が大きいのが計算列です。

# Measure Killer の使い方
1. Measure Killer は冒頭のサイトからインストール可能です。
Microsoft Store 経由でインストールするのが楽ですが、ストアが使用できない場合はダウンロードしてインストールしてください。
1. インストールしたら、まず目的の .pbix ファイルを Power BI Desktop で開きます。レポートで使われていないものを判別したいので、使用しないレポート ページは削除します。
心配な人はファイルをあらかじめバックアップしておいてください。
1. Measure Killer を起動し、一番左の [Single report/dataset] をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/d3889d12-1836-894e-480a-df5fe678f6fe.png)

1. 接続先のセマンティック モデルを選択するダイアログが表示されるので、ひとつ前の手順で開いている .pbix ファイル名が選択されていることを確認して [Next] をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/27845cae-293f-3392-2c2f-cfaaf649c801.png)
Measure Killer の起動後に .pbix ファイルを開いた場合は、[Refresh ports] ボタンをクリックすることで、選択できるようになります。

1. 起動したら、左上の [Run] ボタンをクリックします。
(「Let Measure Killer do it's magic」という吹き出しが良いですね)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/0dc4281b-eeec-16c1-3ad3-09c8740aa8c9.png)

1. ほどなくして分析結果が表示されます。(大きなファイルの場合、それなりに時間かかります。)
緑の Used と赤の Unuserd はその名の通りですが、黄色の Used by unused というのは、メジャーで使われているものの、そのメジャーがレポートで使われていないような場合です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/aac5f7a8-69d5-5c9d-1299-0788819a46dd.png)

1. [Kill measures and Calc. columns] タブに移動すると、使用されていないメジャーと計算列を削除することが可能です。[Kill] ボタンをクリックすると .pbix ファイルから選択したメジャーを削除します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/470333f4-65e3-021f-407e-77dda48a4923.png)

1. [Kill columns] タブに移動すると、**選択したテーブルごとに**、既存のクエリに列を削除するステップを追加するMコードが表示されます。「Remove other columns」がデフォルトで選択されており、残す列を指定して、それ以外の列を削除するためのコードを生成しています。
Measure Killer からは直接クエリを編集できないため、生成されたコードをコピーして使用します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/9e18d635-b8d4-99f7-d3b7-c1547f436561.png)

1. Power BI Desktop で Power Query エディターを開いて、Measure Killer でコードを生成した対象のクエリを選択し、[ホーム] → [詳細エディター] をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/7645595d-2995-edc7-3b63-dc46d54418c9.png)

1. 詳細エディターの中身を全部削除して、コピーしたコードを貼り付け、[完了] ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/45154828-e19e-af3f-60e5-ae8bd8a9b754.png)

1. 「Columns removed by Measure Killer」というステップが追加されたのが確認できます。[ホーム] → [閉じて適用] をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2668909/49dc47fb-b1e7-bdee-71e0-ef60af584d79.png)

不要なメジャーと列を削除する流れは以上です。
なお、画面上部にある [Restore] ボタンで、削除したメジャーを選択して元に戻すことができます。選んで戻せるなんて、賢すぎる。列の削除を戻したいときは、Power Query エディターで「Columns removed by Measure Killer」というステップを削除すればOKです。

# まとめ
「Power BI の容量がひっ迫しているから、レポートのスリム化をしよう！」と思ったものの、膨れ上がった .pbix ファイルを前にどこから手を付けるべきか途方に暮れている方は、ぜひ使ってみてください！