PowerShellによるCSV統合処理の自動化

目次
1. 導入
日次や月次で出力されるCSVファイルを、一括で1つのファイルに統合したいという場面は多くあります。しかし、各ファイルのデータがどこから来たのかわからないと分析が難しくなることもあります。
本記事では、PowerShellを使って複数のCSVファイルを自動で統合し、元のファイル名を1列として追加する方法を紹介します。
2. 解決したい課題
- 複数のCSVファイルを1つに統合したい
- 各レコードの出所(元ファイル名)を明記したい
- CSVファイルの先頭にあるヘッダー行をスキップしたい
- 共通のヘッダーを出力ファイルに付けたい
3. スクリプトの構成と処理の流れ
以下の処理をPowerShellで自動化します:
処理内容 | 詳細 |
① CSVの取得 | 指定フォルダ内のCSVファイルを一括取得(ファイル名パターン指定可) |
② スキップ処理 | ヘッダー行など先頭n行を読み飛ばす |
③ ファイル名追加 | 各レコードの末尾に元ファイル名を追加 |
④ ヘッダー追加 | 出力ファイルの先頭に共通ヘッダーを追加 |
⑤ ファイル出力 | 1つのCSVにまとめて保存 |
4. 入出力ファイルのイメージ
📁 入力ファイル(例)
C:\Users\your_name\Downloads\csv_folder に以下のCSVがあると仮定します:
SALES_202401.csv:
項目A,項目B,日付
単価(円),カテゴリ,出荷日
1000,家電,2024/01/01
2000,家具,2024/01/02
SALES_202402.csv:
項目A,項目B,日付
単価(円),カテゴリ,出荷日
1500,家電,2024/02/01
2500,雑貨,2024/02/02
✅ 出力ファイル(merged_output_with_filename.csv):
項目A,項目B,日付,元ファイル名
1000,家電,2024/01/01,SALES_202401.csv
2000,家具,2024/01/02,SALES_202401.csv
1500,家電,2024/02/01,SALES_202402.csv
2500,雑貨,2024/02/02,SALES_202402.csv
5. スクリプト全文と解説
$inputFolder = "C:\\Users\\your_name\\Downloads\\csv_folder"
$outputFolder = "$inputFolder\\output"
$outputFile = "$outputFolder\\merged_output_with_filename.csv"
$filePattern = "SALES*.csv"
$skipLines = 1
$headerLine = "項目A,項目B,日付,元ファイル名"
if (!(Test-Path $outputFolder)) {
New-Item -ItemType Directory -Path $outputFolder | Out-Null
}
if (Test-Path $outputFile) {
Remove-Item $outputFile
}
$headerLine | Set-Content -Encoding UTF8 $outputFile
Get-ChildItem -Path $inputFolder -Filter $filePattern | ForEach-Object {
$file = $_
$filePath = $file.FullName
$fileName = $file.Name
$lines = Get-Content $filePath | Select-Object -Skip $skipLines
foreach ($line in $lines) {
"$line,$fileName" | Add-Content -Encoding UTF8 $outputFile
}
}
Write-Host "✅ 統合完了:$outputFile"
6. カスタマイズ方法
目的 | カスタマイズ方法 |
拡張子なしのファイル名を追加 | `$file.BaseName` に変更 |
スキップ行数を変更 | `$skipLines = 2` や `3` などに調整 |
動的なヘッダー取得 | 最初のCSVファイルから読み込む処理に変更 |
7. まとめ
- PowerShellでCSV統合処理を自動化することで、手作業の手間を大幅に削減できます。
- ファイル名の追加や共通ヘッダーの挿入も自由にカスタマイズ可能です。
- 日次業務や月次レポート作成の効率化に役立ちます。
UNCOVER TRUTHは、顧客分析やデータ活用の支援を行っている会社です。
分析設計やデータの整理・自動化など、業務でお困りのことがありましたら、ぜひお気軽にご相談ください。
お問い合わせ
より具体的な施策の実践方法についてのご相談は、こちらからお問い合わせください。

この記事を書いた人
米村 建城(よねむら たてき)
コンサルティンググループ
アナリストチーム リーダー
2020年にUNCOVER TRUTHに入社。Google AnalyticsやAdobe Analyticsを活用したCRO(コンバージョン率最適化)のアナリストとして数多くの案件を担当。現在は、CDP(カスタマーデータプラットフォーム)内のワークフロー設計などのデータ基盤の整備に加え、CRMに基づく顧客分析から施策提案までを幅広く担当。
メルマガ登録はこちらから