CSVを別の仕組みへ取り込むために整形するときは、元の列と出力先の列を結び付ける表を作ります。列順だけでなく、値の意味、変換、空欄時の扱いも記録します。
私は、複数の業務データを取込用に整える処理を依頼してきました。この記事では、特定の画面の仕様を示さず、変換条件を整理する書式を紹介します。下の表は説明用の項目で、実データの構成ではありません。
出力見本の意味を確認する
見本に列が並んでいても、何を入れる列か分からない場合があります。取り込み先の現在の仕様と見本で、必要な内容を確かめます。
| 出力の項目 | 確認すること |
|---|---|
| 識別項目 | 商品、注文、書類のどの番号か |
| 日付 | 発生日、対象日、作成日のどれか |
| 数量 | 単位や符号の意味 |
| 区分 | 使える値と未設定時の扱い |
| 必須項目 | 空欄を許すか、確認待ちにするか |
確認できない仕様を、見た目から推測して埋めないようにします。似た名称の列でも同じ意味とは限りません。
列対応表のひな型
| 出力列 | 元ファイル・列 | 変換条件 | 空欄時 | 確認方法 |
|---|---|---|---|---|
| [項目] | [参照先] | [そのまま/条件] | [扱い] | [照合先] |
元の列が複数ある場合は、どの条件で採用するかを記載します。固定値を入れる場合も、その値を使う根拠と適用範囲を書きます。
「分からなければ前の行と同じ値」という補完は、明示した条件がない限り行わせません。必須項目が不明なら、取り込む前の確認待ちとして分けます。
列の位置と意味をセットで伝える
「右から二番目」だけだと、列が増えたときに参照先が変わるおそれがあります。必要な場合は列位置に加え、ファイル名、シート、見出し、役割を伝えます。
元資料が更新されて見出しが変わった場合は、対応表を見直します。同じ位置だから同じ内容だと判断せず、サンプル行の意味も確認します。
行の増減を事前に決める
一行を分割する、複数行を集計する、対象外の行を除くといった処理があるなら、列対応表とは別に行のルールを用意します。
- 入力の一行は何の明細か
- 出力の一行は何の明細か
- どの条件で行を増やすか
- どの条件でまとめるか
- 除外した行をどこへ残すか
行数が変わる処理では、入力と出力が同じ件数になるとは限りません。増減の理由を説明できるようにします。
取込前に確認するメモ
使用した出力仕様・確認日:
元データの範囲:
列対応表の版:
変換した項目:
未確認・除外の行:
照合した件数や値:
実際の取込結果:
コードを文字列として保持する条件は、商品コードの先頭ゼロを残す確認方法と合わせて記録できます。処理後は、照合結果の点検項目で元資料との対応を確認します。
まとめ
CSVの整形では、元の列、出力先、変換条件、空欄時の扱いを対応表へまとめます。私が依頼してきた取込用の整形でも、列の意味を決めることが出発点でした。
対応表ができたことと、実際に取り込めたことは別です。現在の仕様と出力を照合し、取込後も対象の値や件数を確認します。

コメント