テストに役立つ機能紹介 – Excelで全ての値にダブルクオーテーションが付いたCSVを作る方法
つーじーです。最近はコロナだったり地震だったり花粉だったり世の中大変です。
さて、テストを行っているとCSV作成が必要になってきます。CSVを作る際はExcelやスプレッドシートを活用すると思いますが、その中でたまに困ることがあります。
それは、「全ての入力値をダブルクォーテーション( ” )でくくらないといけないことがある」ということです。
CSVの仕様はプロジェクトによりけりですが、その仕様パターンの1つに「データをダブルクォーテーションで囲む」というのがあります。
それならばと意気揚々とExcelでCSVで書き出そうとしてみると、なんとExcelには「CSV書き出し時にデータをダブルクオーテーションで囲む」といったオプションがありません。
良い方法が無いかとネットの海を散策してみるのですが、意外とスマートな方法がヒットしません。方法を大まかに分けると、
- Excelの書式でダブルクオーテーションが付くようにし、それをテキストエディタにコピーした後、タブをカンマに置換する
- データの両隣に空列を追加し、その列を「”」で埋める
- CSV書き出し後、テキストエディタで「,」を「”,”」に置換。さらに改行部分や行の頭に「”」が入るよう正規表現で改行コードなどを置換する
になります。
今回はそれらの方法をさらに私なりにアレンジした「ダブルクォーテーションで囲む方法」をご紹介します。
Excelで全ての値にダブルクオーテーションが付いたCSVを作る方法
- セルの書式設定に
ユーザー定義:「!”G/標準!”;!”G/標準!”;!”G/標準!”;!”G/標準!”」
と入力します。
ユーザー定義は「;(セミコロン)」を使うことで、1つのセルに対して最大4つまで表示形式を指定することが可能で、「○○○;○○○;○○○;○○○」の場合、以下のように定義されます。
・1番目の「○○○」:正の数の表示形式
・2番目の「○○○」:負の数の表示形式
・3番目の「○○○」:ゼロのときの表示形式
・4番目の「○○○」:文字列のときの表示形式
つまり上記のようにセミコロン区切りで全ての形式で「!”G/標準!”」と記述すれば、文字列でも正数でも負数でも「!”G/標準!”」の形式が適用されます。
「”」だけだと書式として認識されてしまうので、「!”」というエスケープ文字を付けることで「文字としての『”』」と認識させられます。「G/標準」はセル内のデータを表します。
「!”G/標準!”」=文字列の「”」 + セルのデータ + 文字列の「”」
この書式設定を全セルに適用すればすべてのデータに「””」が付きます。空白セルは空白のままになるのが長所です。 - 名前を付けて保存で「CSV (コンマ区切り) (*.csv)」で保存します。
- まだCSVとして使える形式になっていないので、
テキストエディタで書き出したCSVファイルを開いて
置換コマンドで「 “”” 」を「 ” 」に置換します。 - もし「空白データにも『””』を定義しないといけない」という仕様の場合は、
置換コマンドで「 ,, 」を「 ,””, 」に置換します。
これを 2回行います (1回だと全部が置換されないことがある)
あとは任意のCSV形式で保存すれば完成です。テキストエディタでの編集は必要になりますが、「面倒な正規表現を使用せずとも対応できる」「書式は一度設定すれば流用ができる」などの利点があります。
ExcelにもっとCSV特化のオプション欲しいですよね。
今回はこれにて