ドライブ直下のフォルダのファイル数と最終更新日時の取得


下記の通りドライブ直下にフォルダがあるとします。

  * C:\A
  * C:\B
  * C:\C

これらのドライブ直下のフォルダA,B,Cのみの、ファイル数と最終更新日時を下記の通りEXCEL上に集計したいと考えています。  
（A,B,C内のサブフォルダは対象外）

フォルダ名 | ファイル数 | 最終更新日時  
---|---|---  
A | 10 | 2021/3/2  
B | 100 | 2021/3/4  
C | 1000 | 2021/3/9  
  
上記のような処理は可能でしょうか？




ちなみにExcelには[Power Query](https://support.microsoft.com/ja-
jp/office/excel-%E3%81%A7-power-
query-%E5%BC%8F%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B-8e5e49a2-01c2-496e-b639-41f98f163238)という機能が搭載されています。これは様々なデータを取得加工しExcel上にテーブルの形で出力する独自言語です。これを使うと求められている表を実現できます。

[データ] - [データの取得] - [Power Queryエディターの起動] を実行し、  
[ホーム] - [新しいソース] - [その他のソース] - [空のクエリ] を選択し、  
[ホーム] - [詳細エディター] に次のコードを入力し、  
[ホーム] - [閉じて読み込む] を実行します。

[code]

    let
        ソース = Folder.Contents("C:\"),
        絞り込み = Table.SelectRows(ソース, each List.Contains({"A", "B", "C"}, [Name])),
        ファイル数追加 = Table.AddColumn(絞り込み, "ファイル数", each List.Count(List.Select([Content][Attributes], each [Kind] <> "Folder"))),
        列順序 = Table.SelectColumns(ファイル数追加,{"Name", "ファイル数", "Date modified"}),
        列名変更 = Table.RenameColumns(列順序,{{"Name", "フォルダ名"}, {"Date modified", "最終更新日時"}})
    in
        列名変更
    
[/code]

これで、次のようなテーブルが入力されるはずです。

[![画像の説明をここに入力](https://i.stack.imgur.com/1FZLH.png)](https://i.stack.imgur.com/1FZLH.png)

[データ] - [すべて更新] を実行すると、テーブルの内容が更新され、この場合、ファイル名や最終更新日時が書き変わります。

* * *

VBAと異なり、どのセルに何のデータが、といった対応情報は不要で、純粋にデータを処理できるたため使いこなせると便利です。

