![見出し画像](https://assets.st-note.com/production/uploads/images/68575804/rectangle_large_type_2_b2cfc1f0ebb74fd941031b3c7d8743f2.png?width=1200)
Power Queryで月別フォルダに保存されたCSVを統合してみたハナシ
CSVファイルの統合。WinActorか、Power Queryか…
ただのCSVファイルの統合ならばPower Queryが断然いいのはわかっていたけど、今回はそこにちょっと ひと手間加えたい。
そもそもそれが実現可能なのか?ノンプロ研の有識者に質問。
WinActorでやろうとしていたことが、もしかしたらPower Queryでも実現できるものなのかと質問してみたら、まさかの百人組手に発展した😳
— まる🍑5550 (@wa_maru_gm) December 11, 2021
実現できることがわかれば自分で調べてみようと思っていたので、ありがたい限り😭✨
WinActorかPower Queryか、どちらがユーザーさんに優しいか考えよう😍
押忍!
できるとの回答をいただけた!!😍 しかも、
今日はお仕事MTGのあとに、Power Queryの百人組手してもらうんだ😍
— まる🍑5550 (@wa_maru_gm) December 26, 2021
そういえば、ペアプロと百人組手は何が違うのだろうw
本気でPower Query何もわからない状態だけど、大丈夫なのだろか🥺
keitaroさんが行っている「百人組手」で教えていただけることに😭
(リンク開くと怪しいマスクマンが出て来ますが、決して怪しい人ではありませぬw)
優しい世界…😭✨
「百人組手」は、以下「組手」と呼びますが、ついて来てくださいw🤣
では!自分の覚えのために、記録しておきますよ~✊
① 事前準備
CSVファイルを、ひとつのフォルダの中に 年月別で保存しておきます。
![](https://assets.st-note.com/img/1640558341033-UK15IS1x0k.png)
② やりたいこと
このCSVファイルをひとつのExcelにファイルに統合したい訳ですが、ただ転記したいだけではなく 条件があります。
CSVファイルの更新日時順の昇順で統合したい
ファイル名の一部(テストデータでいう「10001」の部分)を統合したExcelファイルに新たな列として追加したい
どの年月フォルダのレコードなのか、わかるようにしたい
1.2.は、私がPower Queryで実現可能なのか わからなかったこと。
3.は、やりたいことの実現のために組手の中で提案いただいたこと。
です。
有識者のアドバイス、大変ありがたい…😭✨
③ 中身が空っぽのExcelファイルを用意する
CSVファイルを統合するExcelファイルを用意します。
![](https://assets.st-note.com/img/1640558897955-h12mFBO7X2.png)
このExcelファイルに、Power Queryを仕込んでゆきます。
④ フォルダごと読み込む
あ、ちなみに私のExcelは2016です…
Power Queryは、Excelのバージョンによって かなり表示される項目が違うようです。
そして2016でPower Queryやるのは微妙な感じでしたが、今回の内容は問題なく作業できました✨
データメニュー→新しいクエリ→ファイルから→フォルダーから を選択。
(ここの表示が、すでに他のバージョンと違いますがご勘弁を🙇♀️)
![](https://assets.st-note.com/img/1640559165571-s7nug3jqgu.png)
転記元データフォルダを選択して「開く」。
![](https://assets.st-note.com/img/1640559320715-6Bh8VlJh1G.png?width=1200)
こんな感じで、年月フォルダ内のCSVファイルが ごそっと読み込まれます。
![](https://assets.st-note.com/img/1640559401231-lBBePs2hzV.png?width=1200)
右下の「結合」から「データの結合と変換」。
![](https://assets.st-note.com/img/1640559773235-MYzoWCMYsf.png)
「Fileの結合」ウィンドウは、そのまま「OK」。
![](https://assets.st-note.com/img/1640559843556-x4YxWduol4.png?width=1200)
⑤ 年月フォルダのパスと、CSVファイルの更新日時を表示する
こんな感じでデータが読み込まれる訳ですが、このままだと年月と更新日時がわかりません。
![](https://assets.st-note.com/img/1640560032644-Q2mTG9ov03.png?width=1200)
右側の「適用したステップ」を変更して、Power Queryが気を利かせて削除してくれた列を変更します。
![](https://assets.st-note.com/img/1640560143413-rEjVjrSTmS.png)
「Data modified」と「Folder Path」にチェックを入れて「OK」
![](https://assets.st-note.com/img/1640560258968-XAJlUjBybj.png)
おぉ👀 出た!!
![](https://assets.st-note.com/img/1640560343473-FEmmB8QN6W.png?width=1200)
Power Queryはソートに時間がかかるので、CSVファイルの中身を展開する前に並べ替えを行っておいた方がいいそうです。
年月フォルダ内で更新日時順に並べ替えたい。
先にFolder Pathで昇順に並べ替え。
![](https://assets.st-note.com/img/1640560741456-HSCDxQG8SC.png?width=1200)
お、なんか言われた。
![](https://assets.st-note.com/img/1640560514732-PDopajxF9F.png)
やらねばならぬので「挿入」。
続いて Data modified でも昇順に並べ替え。
![](https://assets.st-note.com/img/1640560802596-XVBXCrDddX.png)
またステップの挿入の確認が出るので「挿入」。
そうそう、この順番!
![](https://assets.st-note.com/img/1640560887413-jWrlNhrMWq.png?width=1200)
⑥ ファイル名の一部を取り出す
Source.Nameを利用して、数字の「10001」の部分のみ取り出します。
Source.Nameを選択して、変換タブ→抽出→区切り記号の間のテキスト。
![](https://assets.st-note.com/img/1640561225962-GlH2Dm0OkL.png?width=1200)
またステップの挿入の確認が出るので「挿入」。
区切り記号の間のテキストを、こんな感じに設定して「OK」。
![](https://assets.st-note.com/img/1640561326505-tG5W8DYNTI.png?width=1200)
すごいっ!!👏✨
![](https://assets.st-note.com/img/1640561362606-s6NDJiaxIx.png)
同じようにFolder Pathも年月のみの表示に変更します。
![](https://assets.st-note.com/img/1640561489187-OdGZcu8n7V.png?width=1200)
いいね いいね!!👏✨
![](https://assets.st-note.com/img/1640561536443-uJAhKw74U4.png)
⑦ データの確認
「適用したステップ」の「変更された型」に戻ります。
![](https://assets.st-note.com/img/1640561614411-rzRDES7SAm.png)
データ型は、Power Queryが よしなに判断してくれています。
もし変更したかったら、列名の横をクリックして変更。
![](https://assets.st-note.com/img/1640561732991-75DWOidtGp.png)
列名は、ダブルクリックで変更できます。
![](https://assets.st-note.com/img/1640561998266-yXJutTiwnp.png?width=1200)
ダミーデータなので、列名とデータが合ってなさ過ぎですがお許しを🤣
列の順番は、ドラッグ&ドロップで変更できます。
![](https://assets.st-note.com/img/1640562092207-BhEMCq1bKw.png?width=1200)
⑧ 読み込み
最後に、ホームメニュー→閉じて読み込む!!
![](https://assets.st-note.com/img/1640562187268-zY1nbTWYr8.png)
(*゚Д゚)*゚Д゚)(*゚Д゚)ォォォオオ
(2016では、なにもせずともテーブルになりました)
![](https://assets.st-note.com/img/1640562243617-h7rY0bLMqf.png?width=1200)
年月別で表示したいときは、フィルタすればOK🙆♀️
![](https://assets.st-note.com/img/1640562385164-twQ6UOYlMn.png)
⑨ データの更新
転記元データに新しい年月フォルダが出来たときは…
![](https://assets.st-note.com/img/1640562461777-mwyPkW6Rqr.png)
「最新の情報に更新」を押せばOK✨
![](https://assets.st-note.com/img/1640562533568-AvqqIgiiHO.png)
じゃんっ✨
![](https://assets.st-note.com/img/1640562572097-r4HAHGwJx3.png)
⑩ 所感
できた!早い!!🙌✨
「区切り記号の間のテキスト」が便利すぎて最高!!
いいっすね~、Power Query。
これ以上のことは、今の知識でやるとエラー起きたときに対処ができないので、とりあえず ここまでで十分かな🎵
ステップが多いのは見る気がなくなる!
— まる🍑5550 (@wa_maru_gm) December 11, 2021
みんながcsvを取り込めるだけで拍手喝采👏✨#ノンプロ研 #PowerQuery講座
卒業LTでaliceさんが発表していた内容、うなずける。
まさに拍手喝采!👏✨
Power Queryのいいところ。
元データが変わらないってところ、ホントPower Queryのいいところよね~😍#ノンプロ研 #PowerQuery講座
— まる🍑5550 (@wa_maru_gm) December 11, 2021
自分でやるなら、断然Power Queryを使いますが…
業務ユーザーにやってもらうとなると、Power Queryの画面自体に抵抗感ありそうかな~と感じました。
でもこの便利さを知ってもらったら、Power Query使ってみる!ってなるかな?
Power Queryすごい~!ノンプロ研すごい~!✨
— まる🍑5550 (@wa_maru_gm) December 26, 2021
これ、できるのかなぁ?って思ってたことも、なんなくできてすごい~😍
相談してよかった🙌✨私の知見が広がった😍
明日もう一度復習して、説明できるようにしておきます🎵@MaskDePQuery ありがとうございました!!#ノンプロ研 https://t.co/80WgKRA4uW
改めて ノンプロ研のみなさま、ありがとうございました!!
百人組手 最高✨ 押忍!!
いいなと思ったら応援しよう!
![まる🍑](https://assets.st-note.com/production/uploads/images/62162937/profile_71402032146a6ed886f774e73aeefc50.png?width=600&crop=1:1,smart)