特別企画

「Excel」でCSV編集はNG? 脱エクセルを実現する「EmEditor」の実力を徹底検証

数値範囲の指定、JavaScriptによる置換で「EmEditor」のCSV機能は表計算ソフトレベルに

CSV形式のテーブルデータファイル(左)とXLSX形式の「Excel」ブックファイル(右)

 上のスクリーンショットを見てほしい。デスクトップに、2つのファイルが配置されている。ファイルアイコンは2つとも似通っており、ダブルクリックすればどちらも「Excel」で開き、編集することができる。

 しかし、左側のCSVファイルを「Excel」で開いてしまうのは、実はあまりお勧めできない方法だ。データが意図せず変更されてしまうリスクが常に付きまとうし、そもそも「Excel」の起動はそんなに速くない。もっとシンプルでカジュアルな方法をとるべきだろう。

 本特集では、「Excel」に代わってCSVエディターとしてお勧めできる「EmEditor」を改めて紹介する。「Excel」から「EmEditor」へ乗り換えるにあたり、ユーザーが不安に感じたり、疑問に思うであろうポイントについても解説していきたい。

【コラム】CSVとは?

「EmEditor」で開いたCSVファイル(CSVモードを解除し、通常モードにした様子)

 CSVとは、テーブル(表:行と列から成る)形式のデータを表現したフォーマットの1つ。行に含まれる値が“カンマ(comma)”で区切られていることから、“CSV(comma-separated values)”と呼ばれる(以下は、都道府県別人口の上位をCSVで表した例)。

順位,都道府県,2015年,2010年,2005年
1,東京都,"13,515,271","13,159,388","12,576,601"
2,神奈川県,"9,126,214","9,048,331","8,791,597"
3,大阪府,"8,839,469","8,865,245","8,817,166"
4,愛知県,"7,483,128","7,410,719","7,254,704"
5,埼玉県,"7,266,534","7,194,556","7,054,243"
6,千葉県,"6,222,666","6,216,289","6,056,462"
7,兵庫県,"5,534,800","5,588,133","5,590,601"
8,北海道,"5,381,733","5,506,419","5,627,737"
9,福岡県,"5,101,556","5,071,968","5,049,908"
10,静岡県,"3,700,305","3,765,007","3,792,377"

 値がタブで区切られているフォーマット“TSV”も広く用いられており、“CSV”や“TSV”など、何らかの“区切り文字(delimiter)”で値が分けられているデータフォーマットを総称して“DSV(delimiter-separated values)”と呼ぶこともある。「EmEditor」では、どんな区切り文字を使った“DSV”でも扱うことが可能だ。


「Excel」で開けるCSVデータ、実は「Excel」で扱わない方がいい理由

「Excel」で開けるCSVデータを開くと、データの誤解釈や文字化けが発生することがある(データはサンプル)

 さて、そもそもCSVファイルを「Excel」で開いてしまうのはなぜいけないのだろうか。「Excel」がインストールされた環境であればダブルクリックで簡単に開けるのだから、そのまま使えばよいというのももっともな意見だ。

 しかし、「Excel」でCSVデータを開くと、いくつかの問題に直面する。なかでもっともポピュラーなのが、“データを勝手に解釈”してしまうことだろう。ダブルクリックでそのままCSVデータを「Excel」で開くと、「Excel」はテキストをなるべく数値や日付として解釈しようとする。そのため、以下のような問題が生じることがある。


最初の“0”が消える、数字が“E+”などに変換される

 電話番号や製品番号など、桁が決まっているデータは先頭の“0”にも意味がある。しかし、「Excel」はそれを勝手に削除してしまうことがある。また、数字の桁数が多い場合、指数表示になることもある。


括弧付きの数がマイナスの数になる

 米国の財務諸表では、マイナスの数値を括弧で括って表記する。「Excel」のセル書式にはこれに由来するルールが含まれているが、そのおかげで“(1)”は“-1”と解釈される。


住所の一部が日付に変換される

 番地を専用の行で“1-2-3”などと管理していようものなら、“2001/2/3”という“日付”と解釈される覚悟をしておかなければならない。月ごとの売り上げを管理するために“2018年1月”のつもりで“2018-01”と表現しているデータが、“2018年1月1日”と解釈されることもある。

 これらのトラブルの多くは、セルの書式設定を変更すれば解決される。また、ちゃんと「Excel」の“データの取得”機能を利用して開けば、誤解釈の問題は避けられる。

「Excel」の“データの取得”機能でデータの解釈を無効化すれば、問題を避けることはできる

 しかし、内容をちょっと閲覧したいだけなのに、そんな手間をかけるのは面倒だろう。また、ファイルの文字エンコードによっては閲覧や保存の際に文字化けが発生することもあり、それはそれで別の対策が必要だ。


CSVデータ≒ちょっと特殊なテキストファイル ~専用モードもある「EmEditor」にお任せ!

 このように、CSVデータを単にダブルクリックして「Excel」で開いてしまうと、

  • 起動が遅い
  • データの誤解釈が生じる
  • 文字化け

などの問題を引き起こす。そこでお勧めなのが、「Excel」より軽快に動作し、テキスト処理に特化したテキストエディターを活用することだ。XLSXデータと異なり、CSVデータは中身は完全なプレーンテキストだ。中身がテキストなのであれば、編集には「Excel」などよりテキストエディターの方が向いている。

「EmEditor Professional」へCSVファイルをドラッグ&ドロップして開いた様子

 なかでも「EmEditor Professional」は、CSVデータを編集するための専用モードを備えている。CSVファイルを「EmEditor」へドラッグ&ドロップすれば、「Excel」のようなテーブル表示に早変わり。カーソルキーで“セル”を移動したり、右クリックメニューで行や列を挿入したりといった処理も思いのままだ。

 「EmEditor」はもともとテキストエディターなので、検索・置換といった処理はお手の物。条件に合致するデータのみを抽出するフィルタリングや、GB単位の巨大ファイルを扱うための“巨大ファイルコントローラー”といった機能も充実している。グラフの作図などをしないのであれば、「Excel」よりも小回りが利き、状況によっては「Excel」をしのぐ能力を発揮する。有償ソフトではあるものの、採用を検討するに値するソフトといえるだろう。


「Excel」から「EmEditor」へ乗り換えて大丈夫? ~疑問を個別に解決

 しかし、「EmEditor」は所詮テキストエディターだ。「Excel」に劣る部分や、使い勝手が異なるところもあるのではないだろうか。

 たとえば、テキストエディターは“文字”を扱うのが専門で、“数値”や“日付”はうまく扱えないのが普通だ。“あいうえお”順での並び替えならばともかく、“整数データを小さい順に”“日付の古い順に”といった並び替えには対応していない。ましてや、「Excel」でお馴染みの、セルをドラッグしてデータを入力する機能(オートフィルやフラッシュフィル)や、セルの計算などは望むべくもない――というのが、大方の見方だろう。

 ところが、それは「EmEditor」の能力を低く見積もりすぎている。例を交えながら、その誤解を一つずつ解いていくことにしよう。

一般のテキストエディターが苦手とする“数値”や“日付”の比較ができるのが「EmEditor」の強みだ([複数行の並び替え]機能)


オートフィルやフラッシュフィルは利用できるか?

「EmEditor」は“オートフィル”をサポート

 セルのドラッグ操作で簡単に連番を挿入できる“オートフィル”は「Excel」でよく使われる機能の1つだが、CSVの編集に特化した“CSVエディター”でもこの機能をサポートするものは少ない。

 しかし、「EmEditor」は当然のようにサポートしている。既存データから法則を見つけ出し、それに従って自動入力する“フラッシュフィル”を利用すれば、氏名フィールドを姓と名、2つのフィールドに分割したり、逆に姓フィールドと名フィールドを結合して1つの氏名フィールドを作成するといった処理もお手の物だ。


フィルターは「Excel」並みか?

名前に“山”を含む都道府県の人口のみを抽出

 必要なデータのみを表示したり、取り出したりする“フィルター”機能は、データの分析に欠かせない。一般的なテキストエディターの場合、“特定の文字列を含む”フィルターは比較的得意としており、「EmEditor」も特定の文字列や正規表現を利用した条件の設定が可能。CSVモードならば、特定の列だけを対象としたり、“列XにAを含むが、列YにはBを含まない”といった複雑なフィルタリングも可能だ。状況によっては「Excel」よりも使い勝手がよいのではないだろうか。

 さらに、「EmEditor」v18.4.0ではフィルター機能で数値範囲の指定がサポートされた。普通、テキストエディターでは数値の比較はできない。しかし、「EmEditor」であればそれすらも可能だ。

 たとえば、都道府県別の人口データで“[5000000, ]”というフィルターを適用すれば、人口が500万人以上の都道府県のみを抽出することが可能。“[5000000, 8000000)”とすれば、500万人以上800万人未満のみをフィルタリングすることもできる。

[高度なフィルター]コマンドでフィルタリングモードを“数値範囲”へ切り替えると、最小値と最大値を条件に加えることができる
人口が500万人以上の都道府県のみを抽出


セルの参照や計算は?

 「Excel」ではセルに“=A2+B3”といった式を入力することで他のセルの値を利用した自動計算が可能だが、これも「EmEditor」で行えるだろうか。

 結論から言えば、さすがにそこまではできない。しかし、置換コマンドでJavaScriptを利用することによりある程度機能を代替することはできる。

 たとえば、“列1”の値と“列2”の値を足して、“列3”に代入するケースを考えよう。「EmEditor」では、“¥J”を先頭に付けることで置換にJavaScriptの式を埋め込むことができる。左隣のセルを参照する“cell( -1 )”と併用すれば、以下のような表現で“列1”と“列2”の値の合計を“列3”に代入できる。

\J parseFloat( cell( -1 ) ) + parseFloat( cell( -2 ) )

 これを応用すれば、正規表現の置換では実現できない高度な処理も行える。合計や平均を求めたり、日付の表現を一括置換したり、条件を含んだデータの加工なども行えるだろう。

置換コマンドでJavaScriptを利用

 「Excel」のように“セルの数値を変更すれば、それに応じて計算式を含んだセルの値も更新される”仕組みを「EmEditor」で実現するのは不可能だが、そもそもCSVデータファイルをスプレッドシートの代用とすることには無理がある。CSVはあくまでもデータの表現形式であり、“単価と数量を入力すれば金額を算出してくれる請求書”といった計算式を含んだフォーマットではない。数値の変更に応じて計算を行うといったシチュエーションであれば「Excel」を使うべきだし、「EmEditor」のようなCSVエディターはデータの閲覧と逐次加工ができれば十分だ。そう考えれば、このJavaScriptを用いた置換機能は十分高機能といえる。

 なお、“cell”関数では左や右のセルだけでなく、上や下のセルも指定可能。詳しい使い方は、「EmEditor」のヘルプを参照のこと。

 また、定型的な処理であればマクロを利用して自動化することも可能だ。これについては以前の特集で解説したので参照してほしい。


いまさら新しいショートカットは覚えたくない

 機能面では「EmEditor」で満足できるとしても、キーボードショートカットの違いなど、使い勝手が大きく変わることを恐れているユーザーもいるかもしない。

 実際、かつての「EmEditor」はセルの編集中に矢印キーを押すとフォーカスのあるセルが移動してしまうなど、「Excel」とは異なる挙動をする部分があった(「Excel」は編集中セルのなかでカーソルの移動が行われるのみだ)。

 しかし、最新の「EmEditor」v18.5で一部のコマンドに“CSV セル選択モード”でのみ有効なキーボードショートカットを割り当てる機能が追加された。初期設定では以下のキーボードショートカットが利用可能で、より「Excel」に近い操作が可能となっている。

  • [セルの編集]コマンド:[F2]キー
  • [右端へ]コマンド:[Ctrl]+[→]キー(上下左右の矢印キーが利用可能)
  • [選択範囲を右端へ]コマンド:[Ctrl]+[Shift]+[→]キー(上下左右の矢印キーが利用可能)

 「Excel」とまったく同じというわけにはいかないが、あまり違和感なく使いこなせるはずだ。


まとめ

 基本的にテキストデータであるCSVを扱うのであれば、「Excel」を使うよりも、テキストエディターを使う方が何かと便利だ。なかでも「EmEditor」は通常のテキスト処理に加え、CSVを処理するための専用モードを備えている、一般のテキストエディターが苦手とする数値の扱い(比較、並び替え)も可能で、データの閲覧・分析・加工においては一日の長がある。

 さらに最近のバージョンでは、数値の範囲を指定した検索・置換・フィルタリングをサポート。「Excel」のオートフィルターのような操作が可能になった。また、JavaScriptを利用した置換機能により、セル内のデータを用いた計算も可能となった。もはや重量級の「Excel」にこだわる必要はない。たいていのことであれば、サクッと起動できる「EmEditor」で事足りるのだ。

 高度な利用で正規表現やJavaScriptの知識が必要になる点はネックになるかもしれないが、あまり「Excel」の関数に習熟していないユーザーであればJavaScriptの方がかえって扱いやすいこともあるだろう。また、「EmEditor」は“巨大ファイルコントローラー”でGB単位のファイルも楽々と扱える。大量のログデータを扱う機会の多いサーバー管理者、データアナリスト、SEなどにはうってつけのソフトといえるだろう。

[制作協力:Emurasoft, Inc.]