Excelの「データの取得と変換」機能で、単体のCSVファイルやテキストファイルの読み込みをする機会は多いと思いますが、読み込むファイルを可変にしたい…といった場合があるかと思います。
例えば日々出力されるログファイルの最新だけ読み込みたい、など。
そんな時は「フォルダーから」の読み込みが便利です。
事前に
Excelでの操作を始める前に、今回読込対象としたいファイルを準備します。
もし現時点で読込対象とするファイルが1つしかない場合、コピペで構わないので👇こんな感じに3ファイルぐらいに増やしておきましょう。
ファイルの中身は全く同じで構いません。
読込対象のフォルダーを指定
新規のExcelブックを開き、[データ]タブ – [データの取得] – [ファイルから] – [フォルダーから]をクリック。
フォルダー選択ダイアログが開くので、対象とするCSV/TXTファイルが格納されたフォルダを指定します。
フォルダを選択すると下図のようにフォルダ内のファイル一覧データが表示されるので、[データの変換]をクリックしてファイル情報を取り込みます。
読込対象ファイルの絞り込み
次に読み込んだファイルのリストから、対象とするファイルを絞り込みます。
例えば今回指定したフォルダの場合、毎日「入荷リスト_[日付].txt」という名前でファイルが保存されるとします。
また、このフォルダには「入荷リスト_[日付].txt」以外にも雑多なファイルが保存される可能性があります。
なので、今回まずはファイル名で絞り込み。
ファイル名(Name)カラムの[▼]から[テキストフィルター]を開き、[指定の値で始まる]をクリックします。
行のフィルターの[指定の値で始まる]の値に、「入荷リスト_」と設定し、[OK]をクリック。
これでファイル名での絞り込みが完了。
さらにExtension(拡張子)カラムで対象とする拡張子を制限するのも良いかもしれません。
”最新”のファイルのみに絞り込み
次に対象とするファイルのリストから、最新のファイル1件のみに絞り込みます。
Date modified(ファイル変更日時)カラム、またはDate created(ファイル作成日時)カラムの[▼]から[降順で並び替え]を指定します。
ファイルの一覧を並び替えただけでは最新のファイルのみに絞ることはできませんので、このファイル一覧にインデックス(番号)を振ります。
[列の追加]タブ – [全般] – [インデックス列]をクリックし、[0から]を指定します。
するとインデックス列が挿入され、上から順に連番(0始まり)が振られます。
つまり、最新のファイルの行(=先頭行)のインデックスは”0″になっている状態です。
このインデックス列を”0″のみでフィルタリングします。
これで、下図のように最新のファイル1件に絞り込むことができました。
最新ファイルのデータの読み込み
ファイルを最新の1件まで絞ったら、あとはファイル内のデータを読み込むだけです。
Contentカラム右端の[↓↓]をクリックします。
[サンプルファイル]に「最初のファイル」を指定し、[OK]をクリックします。
ファイルの内容が展開されます。これ以降は以下のように通常のデータ読込と同じ操作となります。