【PowerQuery】フォルダパス列から最終保存フォルダを抜き出した列を作成

大した内容ではないのですが、備忘も含め書いておこうと思います。

(1) やりたいこと

下図の通り、フォルダからPowerQueryエディターへファイルを読み込んだ後、そのファイルの一覧のフォルダパスから最終保存先フォルダのみを新たな列に抜き出す方法となります。単純に「列の分割」で区切り記号毎に分割してしまうと各行のフォルダ数が合わない場合(下図3,4行目のように)はうまくいきませんのでそこも考慮した書き方にしています。

f:id:shusoshin:20211112173856g:plain

(2) 実践

下図はフォルダからファイルを取り込んだ後、適当な列を削除した状態です。

f:id:shusoshin:20211112173906g:plain

列の追加タブ → カスタム列 をクリックします。

f:id:shusoshin:20211112173912g:plain

カスタム列の式に以下の式を入力しOKをクリックします。

= List.First( List.Skip( List.Reverse( Text.Split( [Folder Path],"\")))) 

f:id:shusoshin:20211112173918g:plain

下図の通り最終保存フォルダのみを抜き出した列ができました。

f:id:shusoshin:20211112173924g:plain

(3) 解説

カスタム列の追加の式をText.Split関数からひとつずつ増やしていく形で、以下の画像上で簡単に解説します。

※下図式のTable.Addcolumn~eachまではカスタム列の追加により自動生成されるもの

f:id:shusoshin:20211112173930g:plain

f:id:shusoshin:20211112173941g:plain

f:id:shusoshin:20211112173948g:plain

f:id:shusoshin:20211112173953g:plain

以上です。