仕事をしているとファイル共有などは、ファイルサーバーを使うことが多いと思います。
ファイルサーバーは便利なのですが、複数人が使うためファイルがどんどん増えていきます。
定期的に削除が必要ですが、ただ単に消してくださいと連絡しても、中々消してくれないのが実情だと思います。
(自分が作ったファイルなら自分の判断で消せますが、他人が作ったファイルは削除しにくいですよね。)
そういうときは、フォルダーごとに使用容量を可視化して、どのフォルダーが容量を圧迫しているのかを調べるのは効果的です。
フォルダーごとに使う人って限られていたりしますし、使用容量が大きいところから削除するほうが効果的だからです。
本記事は、「Power Queryでフォルダー内のファイル一覧を取得する」の応用的な話になります。
事前準備
Power BI Desktopをインストールする
Power BI Desktopのインストール方法は2つあります。
- Microsoft Storeからインストールする
- インストーラーをダウンロードしてインストールする(ダウンロードページ)
Microsoft公式の「Power BI Desktop の取得」でも解説されています。
当ブログで詳しく解説しているので、もし分からなければ次の記事を見てください。
使用容量を調べたいフォルダーを決める
フォルダーにあるファイルごとのサイズを調べて、フォルダーの使用容量を計算します。
サブフォルダーも含めたファイルが全て取得することになるため、ファイル数が多い場合はルートフォルダー(一番上位の階層)ではなく、いくつか下の階層を指定して対象を絞るほうが良いです。
フォルダーのアクセス権限を確認する
フォルダーのアクセス権限が必要になります。フォルダーが参照できない、フォルダーにあるファイルの情報が取得できないためです。
アクセス権限があることは事前に確認しましょう。
フォルダー内のファイル情報を取得する
フォルダー内のファイル一覧を取得する
「ホーム」タブの「データを取得」をクリックします。

「フォルダー」をクリックし、「接続」をクリックします。

「フォルダーパス」に使用容量を調べたいフォルダーのパスを入力し、OKをクリックします。

「データの変換」をクリックします。

この時点で、接続したフォルダーのサブフォルダーを含む全ファイルが取得されます。
「Content」列はファイルの中身になります。今回は不要のため列を右クリックして「削除」をクリックします。

ファイルサイズを取得する
ファイルサイズは「Attributes」列に格納されています。
「Attributes」列の↔️ボタンをクリックし、「すべての列の選択」のチェックを外し、「Size」のみをチェックしてOKをクリックします。

ファイルサイズが取得できました。

デフォルトではデータ型が「すべて」になっているため、「整数」に変更します。
ファイルサイズ列をクリックし、「変換」タブー「データ型」ー「整数」をクリックします。

フォルダーを階層ごとに区切る
フォルダーの階層ごとにドリルダウンして、使用容量が大きいフォルダを特定することがあります。
階層ごとに区切ったほうが分析しやすいため、「Folder Path」列を右クリックして「列の分割」ー「区切り記号による分割」をクリックします。

区切り記号:「カスタム」を選択し、バックスラッシュを入力します。
分割:「区切り記号の出現ごと」を選択します。
詳細設定オプション:▼ボタンをクリックして中身を展開し、分割後の列数が少なければ数を増やしましょう。
設定が終わればOKをクリックします。

フォルダーが階層ごとに分割できました。

ファイルサイズをキロ、メガなどの単位変換する
ファイルサイズを取得しましたが、単位がバイトです。1ファイルはキロバイトやメガバイトが多いと思いますので、これでは分析しにくいです。
キロ、メガなどの単位変換しましょう。単位変換した列を追加します。
「列の追加」タブを開き、「カスタム列」をクリックします。

「新しい列名」に「ファイルサイズ(KB)」を入力、「カスタム列の式」に次の式を入力し、OKをクリックします
=[Attributes.Size] / Number.Power(2, 10)
Number.Power関数を使っていますが、2^10(2の10乗)という意味です。2^10=1,024になります。
これは、1,024バイトが1キロバイトになるためです。

キロバイトの単位変換した列が追加されました。

次はメガバイトに単位変換した列を追加します。
「新しい列名」に「ファイルサイズ(MB)」を入力、「カスタム列の式」に次の式を入力し、OKをクリックします。
=[Attributes.Size] / Number.Power(2, 20)
2^20(2の20乗)なので、1,048,576になります。これは、1,024キロバイトが1メガバイトになるためです。つまり1バイト=1,024×1,024で1,048,576というわけですね。

メガバイトの単位変換した列が追加されました。

列を追加した時点では数値型になっていないため、データ型を変換します。
先ほど追加した「ファイルサイズ(KB)」、「ファイルサイズ(MB)」列を選択し、「変換」タブー「データ型」ー「10進数」をクリックします。

データ型が変換されました。

列名を日本語名に変更する
列名が英語のため、分かりやすいように日本語に変更しましょう。

変更例は下表になります。
変更前 | 変更後 |
---|---|
Name | ファイル名 |
Extension | 拡張子 |
Date accessed | 最終アクセス日時 |
Date modified | 最終更新日時 |
Date created | 作成日時 |
Attributes.Size | ファイルサイズ(Byte) |
Folder Path.1 | 第1階層 |
Folder Path.2 | 第2階層 |
Folder Path.3 | 第3階層 |
Folder Path.4 | 第4階層 |
Folder Path.5 | 第5階層 |
データの取得・加工が終わりました。グラフなどに出力します。
「ホーム」タブを開き、「閉じて適用」をクリックします。

グラフなどを作成して分析する準備が整いました。

フォルダー階層ごとにドリルダウンできるレポートを作成する
フォルダーの階層を作成する
フォルダーの第1~第5までの階層ごとに列を作成しましたが、分析するときにドリルダウン出来るように階層構造にします。
第1階層を右クリックして、「階層の作成」をクリックします。

「第1階層 階層」という名前の階層ができました。分かりにくいので、右クリックして「名前の変更」からフォルダーに変更します。

名前が変更できました。

第2階層以降も階層に追加していきます。第2階層を右クリックー「階層に追加」ー「フォルダー」をクリックします。

第5階層まで追加すると次のような画面になります。

どのフォルダーの使用容量が大きいか分かるための円グラフを作成する
「視覚化」ー「ビジュアルのビルド」の中にある「円グラフ」をクリックします。

円グラフが追加されます。
「凡例」に「フォルダー」を追加、「値」に「ファイルサイズ(MB)」を追加します。
「データ」からドラッグアンドドロップで持ってくるか、チェックをつけると追加されます。
これでフォルダーごとの使用容量が可視化される円グラフが作成できました。

ファイル一覧を表示するテーブルを作成する
「視覚化」ー「ビジュアルのビルド」の中にある「テーブル」をクリックします。

テーブルが追加されます。
「列」に「フォルダー」、「ファイルサイズ(MB)」、「ファイルサイズ」を追加します。これでファイル一覧の表が作成できました。

分析する
円グラフを右クリックして「ドリルダウン」をクリックします。

ドリルダウンしたフォルダーにあるサブフォルダーが表示されます。使用容量が大きいフォルダーが視覚的に分かります。ドリルダウンで下の階層に辿っていきます。

テーブルが、ドリルダウンした階層のフォルダーにあるファイルのみに絞られます。
これでファイルサイズが大きいファイルが見つけやすくなります。
