特別企画

「Excel」より軽快、高機能!「EmEditor」の“CSVモード”を徹底解説

脱「Excel」のための基礎から応用まで、テキストテーブルデータの扱い方を解説

「EmEditor Professional」v18.9.12

 CSV形式のテーブル(表)データを、「Microsoft Excel」でそのまま扱っているというユーザーは少なくないだろう。「Excel」をインストールすると拡張子“*.csv”に関連付けられるし、「Excel」自体高機能ではあるので、“これでいいじゃないか”と思うのも無理からぬことだ。

 しかし、「Excel」はあくまでも表“計算”ソフトだ。入力されたテキストデータをなるべく数値や日付として解釈し、“計算”できるように試みる。その結果、以下のような問題が発生することがある。

  • 先頭の“0”が消える(電話番号から最初の“0”が消える)
  • 桁数の多い数字が“E+”(指数表記)で表示される
  • 括弧付きの数がマイナスの数になる(米国の財務諸表ではマイナスの数値を括弧で括って表記するため)
  • 住所の一部が日付に変換される(“1-2-3”→“2001/2/3”)
  • 分数が勝手に約分される(“販売実績/在庫数”という意味で“2/10”と記録しておいたものが、勝手に“1/5”と約分される)

 このようなお節介をするのも、「Excel」が表“計算”ソフトであるが故だ。きちんと手順を踏んでインポートすればトラブルを避けることができるが、“計算”を必要としないテキストテーブルであれば、テキストの処理に長けたソフトで扱うのがよりよい選択といえるだろう。

 そこでお勧めしたいのが「EmEditor Professional」だ。「EmEditor」は基本的にテキストエディターだが、このようなテキストテーブルデータを扱うために設計された“CSVモード”も備わっている。もともとがテキストエディターであるため、テキストの検索や置換といった操作は得意中の得意だ。

 さらに、「Excel」でお馴染みのフィルタリング、オートフィル、フラッシュフィルといった操作も可能。また、“巨大ファイル コントローラー”でGB単位のファイルも省メモリでサクサクと閲覧・編集できるのもうれしいポイントといえるだろう。サイズの大きな顧客名簿や商品データ、ログファイルを扱う機会が多い場合は、軽量でテキスト編集に長けた「EmEditor」の方が有利な局面が多い。

 そこで本稿では「EmEditor」の“CSVモード”の使い方を紹介する。実践的な例を挙げながら、基礎から応用までを一通り解説するので、お役に立てば幸いだ。「Excel」の代替として十分、むしろそれ以上に有用なのがおわかりいただけるだろう。

基本1:「EmEditor」をCSVモードにして新規にテーブル(表)を作成する

 それではまず、「EmEditor」をCSVモードにして新規にテーブルを作成する方法を学んでいこう。

 「EmEditor」の初期設定はテキストを編集するための“通常モード”になっている。CSVモードを利用するには、まず[表示]-[CSV]メニューや[CSV/並び替え]ツールバーのボタンで“CSVモード”へ切り替える。

[CSV/並び替え]ツールバーのボタンで“CSVモード”へ切り替え

 ちなみに、「EmEditor」では、以下のCSVフォーマットが標準でサポートされている。

  • カンマ区切り:行を改行で、列をカンマ(,)で区切る方式。“CSV(comma-separated values)”とは本来この方式のみを指すが、他の方式も含めて“character-separated values (CSV)”や“delimiter-separated values(DSV)”と呼ぶこともある
  • タブ区切り:行を改行で、列をタブ(¥t)で区切る方式。“TSV(tab-separated values)”と呼ばれる
  • ユーザー定義区切り:列を区切る文字をユーザーで定義する。初期状態はセミコロン“;”が指定されているが、スペース(¥s)や“|”といった文字も区切り文字として利用できる

 なお、区切り文字などの設定は[ツール]-[カスタマイズ]ダイアログの[CSV]セクションでカスタマイズすることが可能。CSVフォーマットの定義は8種類まで、区切り文字は39文字まで指定できる。このように「EmEditor」では多種多彩なCSVフォーマットを扱えるが、本稿では基本的にカンマ区切りのみを扱う。

[CSV/並び替え]ツールバーのボタンで“CSVモード”へ切り替え

 さて、「EmEditor」を“CSVモード”へ切り替えると、編集画面に1×1マスのセルが現れる。エディターの適当な部分をダブルクリックすれば、列や行を拡張できる。行番号(初期設定で非表示)や列ヘッダーをクリックすれば、行や列全体を選択可能。右クリックメニューで行や列を追加したり、削除することができる。テーブル全体を選択したい場合は、行番号と列ヘッダーが交差する左上のエリアをクリックすればよい。

「EmEditor」を“CSVモード”へ切り替え。初期設定では“セル選択モード”(後述)も同時に有効化される

 また、初期設定では“セル選択モード”も同時に有効化されるが、これは編集画面における選択対象をテキスト単位からセル単位へと切り替える機能だ。選択された“セル”が緑色にハイライトされ、キーボードの矢印キーで上下左右に選択の移動が可能となる。区切り文字も非表示になるため、誤って区切り文字を消すなどしてデータ構造を破壊してしまうことも防止できる。

“CSVモード”+“セル選択モード”で「Excel」風の操作が可能に

 選択したセルの内容を編集したい場合は[F2]キー、内容を確定したい場合は[Enter]キーが利用できるのも「Excel」と同じだ。選択したセルや行、列の枠をつかんでドラッグ&ドロップしたり、行ヘッダーのカラム境界をドラッグしてセルの幅を調整することもできる。[フィルター]ツールバーの[列/セパレーター]-[区切り位置を調節]コマンドを利用すれば、列の幅を自動で調節するのも簡単だ。

選択したセルや行、列の枠をつかんでドラッグ

 “CSVモード”と“セル選択モード”の関係は少し難しいかもしれないが、エディターの“表示”を「Excel」風にするのが“CSVモード”で、“操作”を「Excel」風にするのが“セル選択モード”と捉えておけばいいだろう。“セル選択モード”は一時的に解除することも可能。行や列を移動するには“セル選択モード”が便利だが、“カンマを削除してセルを結合したい”といった場合は、“セル選択モード”だけを解除してテキストエディターっぽく使う方がやりやすい。

“セル選択モード”だけを解除した様子。“CSVモード”によりテーブル表示は有効のままだが、選択は文字単位となり、通常のテキストエディターに近い操作となる。区切り文字も削除可能だ

 試しに“CSVモード”も解除して、「EmEditor」を一旦“通常モード”へ戻してみよう。CSVデータを一般のテキストエディターで表示したときの状態に戻るのがわかる。改行文字を含む置換を行う場合など、状況によっては“通常モード”の方が編集しやすいケースもあるので、覚えておくとよい。

“通常モード”で表示した様子

 再び“CSVモード”へ切り替えると、区切り文字で行が分割され、“セパレーター(薄いグレーで描かれる縦線)”で同じカラムがそろえて表示される(つまり「Excel」風のテーブル表示になる)。こうした柔軟性の高さも「EmEditor」の魅力といえるだろう。

 ちなみに、“セル選択モード”を有効化したときにあらわれる[セル]ツールバーは、セルの内容を表示・編集するためのコントロールだ。区切り文字を含むデータを入力すると自動で引用符で括ってくれたり、[Ctrl]+[Enter]キーで改行を挿入できたりするなど、高度なセル編集を行うときには役立つ。もちろん、邪魔な場合は非表示にすることもできる。

セルの内容を表示・編集する[セル]ツールバーでは、区切り文字であるカンマ(,)や改行も挿入できる

幽霊セルに注意!

 「EmEditor」の“CSVモード”+“セル選択モード”では、右下の方の空白をダブルクリックするとテーブルが拡張される。たとえば、以下のスクリーンショットではダブルクリックで8×4のテーブルが作成された(ようにみえる)。

 しかし、改行記号をよく見るとわかる通り、ちゃんと4列あるのは最後の行だけで、上7行は1列しかない。マス目は区切ってあるものの、データがないのだ。この挙動は「Excel」にはないので、少し戸惑うかもしれない。

マス目は区切ってあるものの、データがない“幽霊セル”ができることがある

 この場合、列の足りない行で[Tab]キーを押せば、右隣に空のセルが追加される。また、[CSV/並び替え]ツールバーの[列/セパレーター]にある[列数をそろえる]コマンドを利用すれば、足りないセルを補って、すべての行を同じ列数にすることができる。

[列数をそろえる]コマンドで解決

応用1:オートフィルで連番を挿入する

 それでは、応用例として“新規に製品リスト”を作成するケースを考えてみよう。この製品リストは1列目が“製品ID”、2列目が“製品名”になっており、“製品ID”は連番になっている。“001”、“002”、“003”といった具合だ。

連番の“製品ID”を手軽に入力したい

 こういう時に便利なのが「Excel」の“オートフィル”機能だが、これは「EmEditor」でも利用できる。選択したセルの枠の右下の角にある“フィル ハンドル”をマウスでドラッグすると、当該セルと同じ値を上下左右の隣接セルにコピーすることができる。

“フィル ハンドル”をマウスでドラッグすると、当該セルと同じ値を上下左右の隣接セルにコピーできる

 連続した数字を含む2個以上セルを選択した状態で“フィル ハンドル”をドラッグすると、連番も簡単に入力できる。

連続した数字を含む2個以上セルを選択した状態で“フィル ハンドル”をドラッグすると、連番も簡単に入力できる

 “製品ID”には連番のアルファベットが付いている(接頭辞)こともあるが、こういう場合にも“オートフィル”機能が利用できる。たとえば“ITEM001”、“ITEM002”というセルを選択した状態で“フィル ハンドル”をドラッグすれば、“ITEM003”、“ITEM004”……を簡単に入力可能。応用範囲は広いので、ぜひ覚えておきたいワザだ。

接頭辞付きの連番を入力した例

基本2:既存のファイルを「EmEditor」をCSVモードで開く

 さて、新規にCSVファイルを作成する方法についてはこれでわかった。しかし、すでにあるCSVファイルを開く場合はどうすればいいのだろうか。

 実はこれは簡単で、「EmEditor」へドラッグ&ドロップするだけでよい。「EmEditor」は自動で“CSVモード”+“セル選択モード”に切り替わる。区切り文字も自動で認識してくれるため、ユーザーは意識しなくてもよい。

既存のCSVファイルを「EmEditor」へドラッグ&ドロップすれば、自動で“CSVモード”+“セル選択モード”に

 ただし、テーブルデータに見出し(ヘディング)がついている場合は、少し工夫が必要だ。見出しはデータではないので、後述する検索や置換、並べ替え、フィルタリングでは除外しておきたい。

 「EmEditor」は指定した行を見出しとして扱う機能が備わっているので、それを活用しよう。[CSV/並び替え]ツールバー右端にある[ヘディング]ボタンを押すと[ヘディング(数字)]というメニューが現れるが、これを選択すると(数字)の分だけ最上部の指定行数がデータ行ではなく見出し行として扱われるようになる。見出し行はデータ行を上下にスクロールしても必ず最上部に表示される。

[ヘディング(数字)]オプションで最上部の指定行数がデータ行ではなく見出し行として扱われるように

応用2:CSVデータを見やすく並び替え・フィルタリングする

 すでにあるCSVファイルを渡されたら、まずやってみたいのは並び替えやフィルタリングだろう。「Excel」ではもちろんできるが、「EmEditor」ではどうであろうか。

充実した「EmEditor」の並び替え機能

 「EmEditor」の場合、以下の並び替え(ソート)がサポートされており、それぞれ昇順・降順に並べることができる。

  • アルファベット
  • 数値
  • 文字列の長さ
  • 日時
  • 出現頻度
  • IPv4/IPv6アドレス
  • ランダム

 とくに“出現頻度”と“IPアドレス”のソートは「Excel」で実現するにはひと工夫必要となるので、「EmEditor」に一日の長があるといえる。アクセスログを分析する場合などに役立ちそうだ。

 ソート処理を行うにはヘッダー行をダブルクリックして列を選択し、右クリックメニューから並び替えの方法を選択する。“列2で並び替えた後に列3で並び替えたい”といった場合は、[複数列で並び替え]ダイアログが便利だ。

[複数列で並び替え]ダイアログ

 また、「EmEditor」はフィルター機能も充実している。指定したキーワードが含まれている行だけを抽出して表示することができるので、特定のデータのみを閲覧したい場合に役立つ。

 フィルター機能を利用するときは、[フィルター]ツールバーを表示しておくとよいだろう。テキストボックスにキーワードを入力すれば、それに合致する行のみが表示される。テキストボックスの右隣にあるプルダウンメニューを操作すれば、特定の列にキーワードが含まれる場合だけ抽出できる。フィルタリングされた行を新しいタブへ抽出したり、まとめてブックマークを付けることも可能だ。テキストエディターから進化しただけあって、「EmEditor」では正規表現によるフィルタリングも行える。

指定したキーワードが含まれている行だけを抽出する[フィルター]ツールバー

 さらに、キーワード欄にクエリを記述すれば、複数のキーワードを含む場合や、特定のキーワードは除外したい場合、条件が複数の列にまたがる場合など、より高度なフィルタリングも行える。クエリは直書きすることもできるが、慣れないうちは[高度なフィルター]ダイアログを利用するのがおすすめ。これはいわばGUIのクエリビルダーで、AND検索・OR検索を組み合わせて高度なクエリを記述することができる。正規表現が苦手でも、同等の検索条件を実現できる。

[高度なフィルター]ダイアログで複雑なフィルター条件(クエリ)をGUIで

一致する行の上下指定行のみを表示する

 フィルター機能を利用すれば、“指定したキーワード(シンボル)がソースコードで使われている箇所”を抽出するのも簡単だ。

フィルター機能で“指定したキーワード(シンボル)がソースコードで使われている箇所”を抽出

 しかし、こうした場合は“そのキーワードが使われた前後の文脈”も把握したくはならないだろうか。単にフィルタリングしただけでは、単にマッチした行が羅列されるだけで、そのキーワードがどのように使われたのかは把握しづらい。

 「EmEditor」では、[フィルター]ツールバーの右端にあるプルダウンメニューを操作して、“一致する行の上下指定行のみを表示する”ことが可能。たとえば“2”“2”と指定しておけば、マッチした行に加え上の2行、下の2行も表示される。CSVデータでこの機能を使うことはあまりないかもしれないが、覚えておけば役に立つこともあるかもしれない。

マッチする行だけでなく、その上下も表示するようにすれば、そのキーワードが使われた文脈がわかりやすい

応用3:「EmEditor」の変換機能を用いてCSVデータを整える

 さて、前節ではCSV形式のテーブルデータを並へ替えたり、フィルタリングする方法を学んだ。しかし、「EmEditor」はデータを分析するだけではなく、データを加工するのに役立つ機能も満載だ。

フラッシュフィルでセルを結合する

 「Excel」に慣れたユーザーであれば、“フラッシュ フィル”はご存じだろう。この“フラッシュ フィル”は既存データから法則を見つけ出し、それに従って自動入力できる機能だ。

 たとえば、氏名(姓+名をスペース区切りで記入)を姓と名、2つのフィールドに分割したり、逆に姓フィールドと名フィールドを結合して1つの氏名フィールドを作成するといった処理もお手の物だ。これを関数で実現しようとすると少し面倒だが、“フラッシュ フィル”ならば簡単なマウス操作で行える。

 「EmEditor」はこの“フラッシュ フィル”機能も備えており、「Excel」のような感覚でデータを加工できる。

新しい列を作成して、ひとつのセルだけデータを埋める
隣接するセルからデータの法則性を見出し、他のセルのデータも自動で埋めてくれる

大文字・小文字の統一

 「Excel」には“UPPER”、“LOWER”、“PROPER”といった文字列操作関数が用意されており、データを大文字・小文字で統一したり、単語の最初の文字だけ大文字へ揃えたりすることができる。

 「EmEditor」にも同様の[大文字に変換][小文字に変換][単語の最初の文字を大文字に変換]コマンドが選択範囲の右クリックメニューの[選択範囲の変換]メニュー以下に配置されている。これらのコマンドは“通常モード”だけでなく、“CSVモード”でも問題なく利用可能。先頭の空白や最後の空白を削除するコマンドも備えており、セルに混入した空白ゴミも簡単に除去できる。

変換したい列を選択して、右クリックメニューの[選択範囲の変換]メニューからコマンドを実行
大文字・小文字への変換が行われる

全角・半角を統一する

 最後に、全角で入力してもらったデータをあとから半角で統一したくなった場合はどうすればいいのだろうか。「Excel」であれば、“ASC”関数や“JIS”関数を利用して全角・半角の変換が可能なのだが……。

 「EmEditor」場合は、標準で[編集]-[高度な操作]-[半角/全角変換]コマンドが搭載されており、全角・半角の相互変換が可能。このコマンドは右クリックメニューからも呼び出せ、選択範囲のみを変換することも簡単だ。

変換したい列を選択して、[編集]-[高度な操作]-[半角/全角変換]コマンドを実行
ダイアログでオプションを指定
全角・半角の変換が行われる

 そのほかにも[高度な操作]コマンドでは日時や特殊文字の挿入が可能。覚えておくと役に立つこともあるだろう。

結び

 そのほかにも、「EmEditor」では以下の処理が可能だ。

  • 目的の列だけ抽出する([編集]-[CSV]-[列を抽出])
  • 重複行の削除([編集]-[高度な操作]-[重複行の削除])
  • CSVの結合([編集]-[CSV]-[結合])
  • CSVフォーマットの変換([編集]-[CSV]-[次のCSVに変換])

 もちろん、通常のテキスト検索・置換も利用できるので、CSVフォーマットを扱うならば「EmEditor」の方が楽な場合が圧倒的に多い。ことテキスト処理に関しては、「EmEditor」で代替できない処理はほぼない。また、「Excel」のようにテーブルデータを無理に数値として解釈しようとしない点も、「EmEditor」の方が扱いやすい要因といえるだろう。

 “CSVモード”+“セル選択モード”で「Excel」風の操作も可能で、「Excel」からの移行も比較的容易なので、以下のような

  • (とくに大きなサイズの)CSVのデータ編集を頻繁にユーザー
  • 「Excel」でのCSV編集に不満を持っているユーザー
  • 「Excel」より軽量なCSVエディターを求めているユーザー

にとって、「EmEditor」はよい選択肢となるだろう。もしよければ、過去の記事も参考にしていただければ幸いだ。

[制作協力:Emurasoft, Inc.]