ハマログ

株式会社イーツー・インフォの社員ブログ

テストに役立つ機能紹介 – Excelで全ての値にダブルクオーテーションが付いたCSVを作る方法

つーじーです。最近はコロナだったり地震だったり花粉だったり世の中大変です。

さて、テストを行っているとCSV作成が必要になってきます。CSVを作る際はExcelスプレッドシートを活用すると思いますが、その中でたまに困ることがあります。

それは、「全ての入力値をダブルクォーテーション( ” )でくくらないといけないことがある」ということです。

CSVの仕様はプロジェクトによりけりですが、その仕様パターンの1つに「データをダブルクォーテーションで囲む」というのがあります。
それならばと意気揚々とExcelでCSVで書き出そうとしてみると、なんとExcelには「CSV書き出し時にデータをダブルクオーテーションで囲む」といったオプションがありません。

良い方法が無いかとネットの海を散策してみるのですが、意外とスマートな方法がヒットしません。方法を大まかに分けると、

  • Excelの書式でダブルクオーテーションが付くようにし、それをテキストエディタにコピーした後、タブをカンマに置換する
  • データの両隣に空列を追加し、その列を「”」で埋める
  • CSV書き出し後、テキストエディタで「,」を「”,”」に置換。さらに改行部分や行の頭に「”」が入るよう正規表現で改行コードなどを置換する

になります。

今回はそれらの方法をさらに私なりにアレンジした「ダブルクォーテーションで囲む方法」をご紹介します。

Excelで全ての値にダブルクオーテーションが付いたCSVを作る方法

  1. セルの書式設定に
    ユーザー定義:「!”G/標準!”;!”G/標準!”;!”G/標準!”;!”G/標準!”
    と入力します。

    ユーザー定義は「;(セミコロン)」を使うことで、1つのセルに対して最大4つまで表示形式を指定することが可能で、「○○○;○○○;○○○;○○○」の場合、以下のように定義されます。
    ・1番目の「○○○」:正の数の表示形式
    ・2番目の「○○○」:負の数の表示形式
    ・3番目の「○○○」:ゼロのときの表示形式
    ・4番目の「○○○」:文字列のときの表示形式
    つまり上記のようにセミコロン区切りで全ての形式で「!”G/標準!”」と記述すれば、文字列でも正数でも負数でも「!”G/標準!”」の形式が適用されます。
    「”」だけだと書式として認識されてしまうので、「!”」というエスケープ文字を付けることで「文字としての『”』」と認識させられます。「G/標準」はセル内のデータを表します。
     「!”G/標準!”」=文字列の「”」 + セルのデータ + 文字列の「”」
    この書式設定を全セルに適用すればすべてのデータに「””」が付きます。空白セルは空白のままになるのが長所です。
  2. 名前を付けて保存で「CSV (コンマ区切り) (*.csv)」で保存します。
  3. まだCSVとして使える形式になっていないので、
    テキストエディタで書き出したCSVファイルを開いて
    置換コマンドで「 “”” 」を「 ” 」に置換します。

  4. もし「空白データにも『””』を定義しないといけない」という仕様の場合は、
    置換コマンドで「 ,, 」を「 ,””, 」に置換します。
    これを 2回行います (1回だと全部が置換されないことがある)

あとは任意のCSV形式で保存すれば完成です。テキストエディタでの編集は必要になりますが、「面倒な正規表現を使用せずとも対応できる」「書式は一度設定すれば流用ができる」などの利点があります。

ExcelにもっとCSV特化のオプション欲しいですよね。

今回はこれにて

CSVExcelエクセルダブルクオーテーション

  つーじー   2021年2月16日


関連記事

テストに役立つ機能紹介 -マウスドラッグなしでオートフィルする方法-

おいしい飯屋を探すのが好きです。つーじーです。 テストをしているとよくDBデータ…

QAエンジニア向けイベントに行ってきました!

どうもーyasuです~ 寒くなりました。コートを用意しないとー まず一つご報告。…

QA/テスト関連の動画視聴_202302

QAエンジニアやテストエンジニアのトレンドを追ったり知識を得たりするため、you…


← 前の投稿

次の投稿 →