複数のCSVファイルを結合

はじめまして。中小企業で社内SEをやっています。社員からITに関する色んな相談を受けるのですが、先日、社員から喜ばれたので、便利機能を一つご紹介します。枯れた技術かもしれませんが、DOSコマンド(コマンドプロンプト)を使ったものです。たくさん紹介されているので、ご存じの方も多いかと思いますが少しでも分かりやすく記載できたらと思います。

社員「(同じ形式の)CSVファイルがたくさんあってさ、簡単にパパっと1つにまとまらない?」

部署毎や拠点毎などの単位で、同じようなCSVファイルが複数あって、それを1つにまとめないといけない時がありませんか?

普通にやるなら、CSV①とCSV②を開いて、CSV①の一番下の行にCSV②を貼り付ける。次に、CSV③を開いて、先ほどのCSV②を貼り付けた行の下にCSV③を貼り付ける・・・を繰り返すと思います。

そんなときは、DOSコマンドで解決できます。

DOSコマンド(コマンドプロンプト)を使うと、複数のCSVファイルを1つにまとめることができます!
コマンドプロンプトは、スタートメニューを開いて、「cmd」と入力すると上側にコマンドプロンプトが表示されますので、クリックすると開きます。

画像1

下のような黒い画面が開いてきます。この画面を触っていると「ハッカーみたい」と尊敬の眼差しを向けられます(優越感w)。
さて、黒い画面の最初に書かれている「C:¥Users¥Public¥Documents>」はそれぞれのパソコンの環境によって異なりますので気にしないで下さい。
さぁ、このコマンドプロンプトを使って結合していきますよー

画像2

例えば、各営業所ごとの売上額のCSVがあったとします。下のように1つのフォルダにまとめて入れておきます。

画像3

開くとこんな感じのCSVです。「社員番号」「氏名」「拠点」「売上金額」の順に並んでいて、拠点ごとにCSVが分かれています。

画像4

これを1つのCSVにまとめたいと思いますが、まとめるCSVのファイル名を例えば「Fusion.csv」とします。ファイル名は何でも良いです。
作成手順は簡単で、次の動画の順に行ってみて下さい。

いざ結合!

ワーク

動画に出てきた「コマンド」が2つあります。

pushd

copy *.csv Fusion.csv

pushdは、ディレクトリ(フォルダ)を移動するコマンドです。プッシュディレクトリと覚えて下さい。黒い画面の中で、どのフォルダを操作しているか明示するために、操作しているフォルダに「移動」します。
pushdの詳しい解説は「コマンド pushd」でググって下さい。
pushdの後ろに空白を1つ入力したあと、移動したいフォルダを記入します。ここで、移動したいフォルダをいちいち手入力せずに、移動したいフォルダを黒い画面にドラッグ&ドロップすることで入力されます。今回ですと、「pushd F:¥CSV」となります。

copy *.csv Fusion.csvは、「copy」と「*.csv」と「Fusion.csv」の3つに分かれていて間に空白が入っています。
『①「copy」します』『②「*.csv」を』『③「Fusion.csv」に』と言う書き方です。
②の「*.csv」は「*」が全てと言う意味があるので、「*.csv」ですと(フォルダ内の)全てのCSVと言う意味になります。つまり、「フォルダ内の全てのCSVをFusion.csvにコピーします」と言うコマンドですね。
理屈が分かれば簡単ですね!

FusionしたCSV

結合してできたFusion.csvを開くと、それぞれのCSVの1行目に記入されていたタイトル行も一緒に結合されていますのでご注意下さい。必要に応じて削除して下さいね。また、最終行にも余計な「文字列」がありますので、こちらも削除して下さい。

画像6

こんなところで、今回の記事は終わりたいと思います。
この記事がどなたかの参考になれましたら幸いです。
また近々投稿したいと思います。
最後まで読んでいただき誠にありがとうございました。


この記事が気に入ったらサポートをしてみませんか?