Excelマクロを使わないでcsvファイルを結合する方法

IT

インターネットなどから月別のcsvファイルをダウンロードした後に、一つのファイルにまとめたいと思ったことはありませんか。

Excelのマクロ(VBA)のコードを書ける人だったら、すぐできそうですが、普段Excelは使うけどマクロとなるとちょっと、、という人を多いのではと思います。

今回はExcelのマクロ(VBA)を使わないで、複数のcsvファイルを一つに結合するやり方を紹介します。

Excelマクロ(VBA)より楽?

Excelマクロ(VBA)を使ったことがない場合は、まずExcelの設定でマクロを使えるように下準備が必要です。

今回はそういった下準備の必要がなく、MacやWindowsに標準でインストールされているソフトでさくっとできるやり方になります。

Macでcsvファイルを結合する

このような流れです。

  1. 適当なフォルダに結合したいcsvファイルを保存する
  2. 1のフォルダパスをコピーする
  3. ターミナルを起動する
  4. 呪文を唱える

順番に説明していきます。

1. 適当なフォルダに結合したいcsvファイルを保存する

デスクトップでもどこでもいいので適当にフォルダを作り、そこひとまとめにしたいcsvファイルを放り込みます。csvファイルは上から順番に結合されますので、順番を気にする場合はファイル名を修正して順番を変える必要があります。

今回はフォルダ名をtestにしています。

2. 1のフォルダパスをコピーする

ファルダのパスをコピーします。

パスといってもパスワードではなく、場所のことです。フォルダの場所の情報です。

該当するフォルダにカーソルを合わせた状態で、副ボタンのクリック(通常はおそらく二本指タップ)をすると、こういったものが出てくると思いますが、

その状態で⌥を押すと、「コピー」の部分が「”test”のパスをコピー」に変化します。

「”test”のパスをコピー」をクリックすると、フォルダのパスをコピーできます。

3. ターミナルを起動する

アプリからターミぐらいまで入れて検索すると出てきます。

起動させます。

ターミナルはコマンドを入力することによってパソコンを操作するソフトです。プログラマーとかじゃない人はおそらく使うことないと思います。

4. 呪文を唱える

最後に呪文を唱えます(コマンドを入力します。)

なんかハードル高そうだと思うかもしれませが、二行だけです。

まず、半角で「cd 」と入力します。cdのあとに半角のスペースが入ります。

その後、さきほどコピーしたフォルダパスを入力(貼り付けます。)後、enter(return)を押します。

赤枠部分が1行目の部分で、/Users以降はフォルダのパスです。

続いて、「cat *.csv>all.csv」と入力後、enterを押します。

ちなみに、catのあとに半角スペースが入ります。

allの部分は結合後のファイル名ですので、自分の好きなファイル名にしましょう。

これで複数のcsvファイルが一つに結合されたallファイルができています。ちなみに元のcsvファイルそのまま残っています。

Windowsでcsvファイルを結合する

Windowsの場合もMacとほぼ同じやり方でできます。

フォルダにcsvファイルを保存するところは同じです。

フォルダパスのコピーの仕方は少し違っていて、

Windows11の場合は、右クリックするだけで一発でフォルダパスのコピーのコマンドが出ますが、

Windows10の場合は、altを押しながら右クリックをしないとフォルダパスのコピーが出ません。

隠しコマンドみたいになっています。

あとは使うソフトがMacはターミナルでしたが、Windowsはコマンドプロンプトです。

これも標準でインストールされていますので、アプリ検索できる状態でcmdと打ち込むと出てきます。

ターミナルは画面が白かったですが、コマンドプロンプトは真っ黒です。(色は変えることができます。)

あと入力するコマンドの二行目が異なります。

Macのターミナル→「cat *.csv>all.csv」

Windowsのコマンドプロンプト→「copy *.csv all.csv」

cat→copy、>→半角スペース、と微妙に違うので注意が必要です。

あとは、Windowsのコマンドプロンプトの場合はcsv結合が成功した場合は、メッセージが出てくるのですぐわかるのですが、Macのターミナルの場合は何も言ってくれないので不安にはなります。

まとめ

ExcelマクロVBAよりも敷居は低いとは思いますが、この方法だと、csvファイルの1行目の項目も結合してしまいますので、そこがデメリットではあります。結合したあとフィルターで抽出して項目だけ削除する必要があります。

とりあえず複数のcsvファイルを結合だけしたいといった場合には使えるかと思います。

参考にしてみていただければと思います。

ではまた。

タイトルとURLをコピーしました