ハマログ

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

テストに役立つ機能紹介 – 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日


関連記事

業務円滑化テクニック – スタートアップ

最近自分が大好きなイベントが潰れてへこみまくりのつーじーです。それでも地球は回り…

テストに役立つツール紹介 -Snipping Tool-

二度目まして、つーじーです。どうすれば文章が面白くなるのか日々研究中。 今回の記…

ITツールの機能紹介-画像のテキストを翻訳する方法-

つ~じ~です。感性が独特とよく言われます。 今回は「翻訳ツール」に関する機能の紹…


← 前の投稿

次の投稿 →