CSVを開く前の分割
50MiB以下のCSVがExcelで重いとき、行数かサイズで分ける
販売管理システムから出したCSVをExcelで開くと、並べ替えやフィルターのたびに待たされる。そんなときは、元CSVを上書きせず、作業単位に合わせて分けます。Web Freeの入力上限は1ファイル50MiBです。50MiBを超えるファイルを扱えるという意味ではありません。
分ける基準は、後工程から決める
Excelへ渡すなら、1ファイルのデータ行数を決める方法が分かりやすいです。メールや取込システムに容量指定があるなら目標サイズを使います。店舗別・担当者別に渡したい場合は、別機能の「値ごとに分割」が適しています。
| 方法 | 向く作業 | 確認点 |
|---|---|---|
| 行数 | Excelで確認する単位をそろえる | ヘッダーはデータ行数に含まない |
| 目標サイズ | 取込上限や添付上限へ近づける | 1行の途中では分割しない |
| 値ごとに分割 | 店舗・部署・担当者ごとに配る | 対象列は1列、出力は最大100ファイル |
行数
- 向く作業
- Excelで確認する単位をそろえる
- 確認点
- ヘッダーはデータ行数に含まない
目標サイズ
- 向く作業
- 取込上限や添付上限へ近づける
- 確認点
- 1行の途中では分割しない
値ごとに分割
- 向く作業
- 店舗・部署・担当者ごとに配る
- 確認点
- 対象列は1列、出力は最大100ファイル
セル内改行があっても1つのデータ行として数える
下のCSVは4つのデータ行です。備考欄の改行を別の行として数えて切ると、3件目のデータが壊れます。セル内の改行を判別できる方法で分割してください。
受注ID,店舗,備考
A001,東京,通常
A002,大阪,
A003,東京,"午前指定
受付で確認"
A004,福岡,通常LocaCSVで分割する
- CSV分割を開き、50MiB以下のCSVを選ぶ。
- UTF-8などの文字コード、区切り文字、ヘッダー、セル内改行のプレビューを確認する。
- データ行数または目標サイズを指定して実行する。
- すべての入力行が分割結果または除外のどちらかに入ったことと、各ファイルの件数を確認してZIPを保存する。
期待どおりにならないとき
- 先頭ファイルだけ列がずれる:入力文字コードか区切り文字を見直す。
- 目標サイズを超える出力がある:1つのデータ行だけで、ヘッダー込みの目標を超えていないか確認する。データ行の途中では分割しない。
- 店舗別にならない:CSV分割ではなく「値ごとに分割」を使う。
- 入力が50MiBを超える:LocaCSV Web Freeの対象外。PowerShellなどのローカル処理か、出力元システムの期間分割を使う。
別の方法が向くケース
一度だけでコードを書きたくない場合はLocaCSV、毎月同じ処理を繰り返すならPowerShellやPython、Excel内で更新する定型取込ならPower Queryが向きます。処理後はどの方法でも元件数との一致を確認します。
| 方法 | 向く作業 | 注意 |
|---|---|---|
| Excel / Power Query | Excel内の定型取込 | 複数ファイル出力には追加手順が必要 |
| PowerShell | Windowsで繰り返す処理 | CSVの引用符と文字コードを扱える実装にする |
| Python | 自動化と独自検査 | 実行環境とコードを保守する |
| LocaCSV | 50MiB以下を一度分ける | Web Freeの入力上限を超えられない |
Excel / Power Query
- 向く作業
- Excel内の定型取込
- 注意
- 複数ファイル出力には追加手順が必要
PowerShell
- 向く作業
- Windowsで繰り返す処理
- 注意
- CSVの引用符と文字コードを扱える実装にする
Python
- 向く作業
- 自動化と独自検査
- 注意
- 実行環境とコードを保守する
LocaCSV
- 向く作業
- 50MiB以下を一度分ける
- 注意
- Web Freeの入力上限を超えられない